@decaf-ts/utils 0.2.6 → 0.2.8
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/LICENSE.md +0 -0
- package/README.md +0 -0
- package/bin/build-scripts.cjs +1885 -1423
- package/bin/tag-release.cjs +1876 -1420
- package/bin/tag-release.sh +0 -0
- package/bin/update-scripts.cjs +1881 -1425
- package/dist/assets/slogans.json +0 -0
- package/dist/utils.cjs +86 -689
- package/dist/utils.esm.cjs +78 -674
- package/lib/assets/slogans.json +0 -0
- package/lib/bin/build-scripts.d.ts +0 -0
- package/lib/bin/tag-release.d.ts +0 -0
- package/lib/bin/update-scripts.d.ts +0 -0
- package/lib/cli/command.cjs +6 -7
- package/lib/cli/command.d.ts +5 -5
- package/lib/cli/commands/build-scripts.cjs +9 -3
- package/lib/cli/commands/build-scripts.d.ts +1 -1
- package/lib/cli/commands/index.cjs +0 -0
- package/lib/cli/commands/index.d.ts +0 -0
- package/lib/cli/commands/tag-release.cjs +1 -1
- package/lib/cli/commands/tag-release.d.ts +1 -1
- package/lib/cli/commands/update-scripts.cjs +1 -1
- package/lib/cli/commands/update-scripts.d.ts +1 -1
- package/lib/cli/constants.cjs +0 -0
- package/lib/cli/constants.d.ts +0 -0
- package/lib/cli/index.cjs +0 -0
- package/lib/cli/index.d.ts +0 -0
- package/lib/cli/types.cjs +1 -1
- package/lib/cli/types.d.ts +1 -1
- package/lib/esm/assets/slogans.json +0 -0
- package/lib/esm/bin/build-scripts.d.ts +0 -0
- package/lib/esm/bin/build-scripts.js +0 -0
- package/lib/esm/bin/tag-release.d.ts +0 -0
- package/lib/esm/bin/tag-release.js +0 -0
- package/lib/esm/bin/update-scripts.d.ts +0 -0
- package/lib/esm/bin/update-scripts.js +0 -0
- package/lib/esm/cli/command.d.ts +5 -5
- package/lib/esm/cli/command.js +2 -3
- package/lib/esm/cli/commands/build-scripts.d.ts +1 -1
- package/lib/esm/cli/commands/build-scripts.js +9 -3
- package/lib/esm/cli/commands/index.d.ts +0 -0
- package/lib/esm/cli/commands/index.js +0 -0
- package/lib/esm/cli/commands/tag-release.d.ts +1 -1
- package/lib/esm/cli/commands/tag-release.js +1 -1
- package/lib/esm/cli/commands/update-scripts.d.ts +1 -1
- package/lib/esm/cli/commands/update-scripts.js +1 -1
- package/lib/esm/cli/constants.d.ts +0 -0
- package/lib/esm/cli/constants.js +0 -0
- package/lib/esm/cli/index.d.ts +0 -0
- package/lib/esm/cli/index.js +0 -0
- package/lib/esm/cli/types.d.ts +1 -1
- package/lib/esm/cli/types.js +1 -1
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +2 -2
- package/lib/esm/input/index.d.ts +0 -0
- package/lib/esm/input/index.js +0 -0
- package/lib/esm/input/input.d.ts +1 -2
- package/lib/esm/input/input.js +2 -2
- package/lib/esm/input/types.d.ts +83 -0
- package/lib/esm/input/types.js +1 -1
- package/lib/esm/output/common.d.ts +3 -3
- package/lib/esm/output/common.js +2 -2
- package/lib/esm/output/index.d.ts +1 -3
- package/lib/esm/output/index.js +2 -4
- package/lib/esm/utils/constants.d.ts +0 -77
- package/lib/esm/utils/constants.js +1 -114
- package/lib/esm/utils/environment.d.ts +1 -1
- package/lib/esm/utils/environment.js +2 -2
- package/lib/esm/utils/fs.d.ts +0 -0
- package/lib/esm/utils/fs.js +2 -2
- package/lib/esm/utils/http.d.ts +1 -1
- package/lib/esm/utils/http.js +2 -2
- package/lib/esm/utils/index.d.ts +0 -0
- package/lib/esm/utils/index.js +0 -0
- package/lib/esm/utils/md.d.ts +0 -0
- package/lib/esm/utils/md.js +0 -0
- package/lib/esm/utils/tests.d.ts +0 -0
- package/lib/esm/utils/tests.js +0 -0
- package/lib/esm/utils/text.d.ts +0 -0
- package/lib/esm/utils/text.js +0 -0
- package/lib/esm/utils/timeout.d.ts +0 -0
- package/lib/esm/utils/timeout.js +0 -0
- package/lib/esm/utils/types.d.ts +0 -0
- package/lib/esm/utils/types.js +0 -0
- package/lib/esm/utils/utils.d.ts +2 -2
- package/lib/esm/utils/utils.js +2 -2
- package/lib/esm/utils/web.d.ts +0 -0
- package/lib/esm/utils/web.js +0 -0
- package/lib/esm/writers/OutputWriter.d.ts +0 -0
- package/lib/esm/writers/OutputWriter.js +0 -0
- package/lib/esm/writers/RegexpOutputWriter.d.ts +0 -0
- package/lib/esm/writers/RegexpOutputWriter.js +0 -0
- package/lib/esm/writers/StandardOutputWriter.d.ts +2 -2
- package/lib/esm/writers/StandardOutputWriter.js +2 -2
- package/lib/esm/writers/index.d.ts +0 -0
- package/lib/esm/writers/index.js +0 -0
- package/lib/esm/writers/types.d.ts +0 -0
- package/lib/esm/writers/types.js +0 -0
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +2 -2
- package/lib/input/index.cjs +0 -0
- package/lib/input/index.d.ts +0 -0
- package/lib/input/input.cjs +2 -2
- package/lib/input/input.d.ts +1 -2
- package/lib/input/types.cjs +1 -1
- package/lib/input/types.d.ts +83 -0
- package/lib/output/common.cjs +2 -2
- package/lib/output/common.d.ts +3 -3
- package/lib/output/index.cjs +1 -3
- package/lib/output/index.d.ts +1 -3
- package/lib/utils/constants.cjs +2 -115
- package/lib/utils/constants.d.ts +0 -77
- package/lib/utils/environment.cjs +3 -3
- package/lib/utils/environment.d.ts +1 -1
- package/lib/utils/fs.cjs +2 -2
- package/lib/utils/fs.d.ts +0 -0
- package/lib/utils/http.cjs +2 -2
- package/lib/utils/http.d.ts +1 -1
- package/lib/utils/index.cjs +0 -0
- package/lib/utils/index.d.ts +0 -0
- package/lib/utils/md.cjs +0 -0
- package/lib/utils/md.d.ts +0 -0
- package/lib/utils/tests.cjs +0 -0
- package/lib/utils/tests.d.ts +0 -0
- package/lib/utils/text.cjs +0 -0
- package/lib/utils/text.d.ts +0 -0
- package/lib/utils/timeout.cjs +0 -0
- package/lib/utils/timeout.d.ts +0 -0
- package/lib/utils/types.cjs +0 -0
- package/lib/utils/types.d.ts +0 -0
- package/lib/utils/utils.cjs +2 -2
- package/lib/utils/utils.d.ts +2 -2
- package/lib/utils/web.cjs +0 -0
- package/lib/utils/web.d.ts +0 -0
- package/lib/writers/OutputWriter.cjs +0 -0
- package/lib/writers/OutputWriter.d.ts +0 -0
- package/lib/writers/RegexpOutputWriter.cjs +0 -0
- package/lib/writers/RegexpOutputWriter.d.ts +0 -0
- package/lib/writers/StandardOutputWriter.cjs +2 -2
- package/lib/writers/StandardOutputWriter.d.ts +2 -2
- package/lib/writers/index.cjs +0 -0
- package/lib/writers/index.d.ts +0 -0
- package/lib/writers/types.cjs +0 -0
- package/lib/writers/types.d.ts +0 -0
- package/package.json +5 -2
- package/lib/esm/output/logging.d.ts +0 -177
- package/lib/esm/output/logging.js +0 -349
- package/lib/esm/output/types.d.ts +0 -203
- package/lib/esm/output/types.js +0 -2
- package/lib/esm/utils/accumulator.d.ts +0 -105
- package/lib/esm/utils/accumulator.js +0 -144
- package/lib/output/logging.cjs +0 -354
- package/lib/output/logging.d.ts +0 -177
- package/lib/output/types.cjs +0 -3
- package/lib/output/types.d.ts +0 -203
- package/lib/utils/accumulator.cjs +0 -148
- package/lib/utils/accumulator.d.ts +0 -105
package/lib/utils/utils.cjs
CHANGED
|
@@ -6,8 +6,8 @@ exports.spawnCommand = spawnCommand;
|
|
|
6
6
|
exports.runCommand = runCommand;
|
|
7
7
|
const child_process_1 = require("child_process");
|
|
8
8
|
const StandardOutputWriter_1 = require("../writers/StandardOutputWriter.cjs");
|
|
9
|
-
const logging_1 = require("../output/logging.cjs");
|
|
10
9
|
const constants_1 = require("./constants.cjs");
|
|
10
|
+
const logging_1 = require("@decaf-ts/logging");
|
|
11
11
|
/**
|
|
12
12
|
* @description Creates a locked version of a function.
|
|
13
13
|
* @summary This higher-order function takes a function and returns a new function that ensures
|
|
@@ -222,4 +222,4 @@ function runCommand(command, opts = {}, outputConstructor = (StandardOutputWrite
|
|
|
222
222
|
});
|
|
223
223
|
return result;
|
|
224
224
|
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnREEsMEJBT0M7QUFTRCxvREFxQ0M7QUFFRCxvQ0EyQ0M7QUErQ0QsZ0NBOEVDO0FBL1FELGlEQUl1QjtBQUN2QiwwRUFBdUU7QUFFdkUsK0NBQTRDO0FBRzVDLDJDQUF3QztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxTQUFnQixPQUFPLENBQUksQ0FBOEI7SUFDdkQsSUFBSSxJQUFJLEdBQXNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRCxPQUFPLENBQUMsR0FBRyxNQUFpQixFQUFFLEVBQUU7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFTRCxTQUFnQixvQkFBb0IsQ0FDbEMsU0FBd0MsRUFDeEMsR0FBRyxTQUF3QjtJQUUzQixJQUFJLE9BQXNCLENBQUM7SUFDM0IsSUFBSSxVQUEyQixDQUFDO0lBRWhDLGlCQUFpQjtJQUNqQixJQUFJLFNBQVMsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUN0QixDQUFDO0lBRUQsbURBQW1EO0lBQ25E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aXRob3V0TnVsbFN0cmVhbXMsXG4gIHNwYXduLFxuICBTcGF3bk9wdGlvbnNXaXRob3V0U3RkaW8sXG59IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBTdGFuZGFyZE91dHB1dFdyaXRlciB9IGZyb20gXCIuLi93cml0ZXJzL1N0YW5kYXJkT3V0cHV0V3JpdGVyXCI7XG5pbXBvcnQgeyBDb21tYW5kUmVzdWx0IH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiLi4vb3V0cHV0L2xvZ2dpbmdcIjtcbmltcG9ydCB7IE91dHB1dFdyaXRlckNvbnN0cnVjdG9yIH0gZnJvbSBcIi4uL3dyaXRlcnMvdHlwZXNcIjtcbmltcG9ydCB7IFZlcmJvc2l0eUxvZ2dlciB9IGZyb20gXCIuLi9vdXRwdXQvdHlwZXNcIjtcbmltcG9ydCB7IEFib3J0Q29kZSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbG9ja2VkIHZlcnNpb24gb2YgYSBmdW5jdGlvbi5cbiAqIEBzdW1tYXJ5IFRoaXMgaGlnaGVyLW9yZGVyIGZ1bmN0aW9uIHRha2VzIGEgZnVuY3Rpb24gYW5kIHJldHVybnMgYSBuZXcgZnVuY3Rpb24gdGhhdCBlbnN1cmVzXG4gKiBzZXF1ZW50aWFsIGV4ZWN1dGlvbiBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24sIGV2ZW4gd2hlbiBjYWxsZWQgbXVsdGlwbGUgdGltZXMgY29uY3VycmVudGx5LlxuICogSXQgdXNlcyBhIFByb21pc2UtYmFzZWQgbG9ja2luZyBtZWNoYW5pc20gdG8gcXVldWUgZnVuY3Rpb24gY2FsbHMuXG4gKlxuICogQHRlbXBsYXRlIFIgLSBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGlucHV0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBmIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIGxvY2tlZC4gSXQgY2FuIHRha2UgYW55IG51bWJlciBvZiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gYSB2YWx1ZSBvZiB0eXBlIFIuXG4gKiBAcmV0dXJuIEEgbmV3IGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlIGFzIHRoZSBpbnB1dCBmdW5jdGlvbiwgYnV0IHdpdGggc2VxdWVudGlhbCBleGVjdXRpb24gZ3VhcmFudGVlZC5cbiAqXG4gKiBAZnVuY3Rpb24gbG9ja2lmeVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IExvY2tlZEZ1bmN0aW9uXG4gKiAgIHBhcnRpY2lwYW50IE9yaWdpbmFsRnVuY3Rpb25cbiAqICAgQ2FsbGVyLT4+TG9ja2VkRnVuY3Rpb246IENhbGwgd2l0aCBwYXJhbXNcbiAqICAgTG9ja2VkRnVuY3Rpb24tPj5Mb2NrZWRGdW5jdGlvbjogQ2hlY2sgY3VycmVudCBsb2NrXG4gKiAgIGFsdCBMb2NrIGlzIHJlc29sdmVkXG4gKiAgICAgTG9ja2VkRnVuY3Rpb24tPj5PcmlnaW5hbEZ1bmN0aW9uOiBFeGVjdXRlIHdpdGggcGFyYW1zXG4gKiAgICAgT3JpZ2luYWxGdW5jdGlvbi0tPj5Mb2NrZWRGdW5jdGlvbjogUmV0dXJuIHJlc3VsdFxuICogICAgIExvY2tlZEZ1bmN0aW9uLS0+PkNhbGxlcjogUmV0dXJuIHJlc3VsdFxuICogICBlbHNlIExvY2sgaXMgcGVuZGluZ1xuICogICAgIExvY2tlZEZ1bmN0aW9uLT4+TG9ja2VkRnVuY3Rpb246IFF1ZXVlIGV4ZWN1dGlvblxuICogICAgIExvY2tlZEZ1bmN0aW9uLS0+PkNhbGxlcjogUmV0dXJuIHByb21pc2VcbiAqICAgICBOb3RlIG92ZXIgTG9ja2VkRnVuY3Rpb246IFdhaXQgZm9yIHByZXZpb3VzIGV4ZWN1dGlvblxuICogICAgIExvY2tlZEZ1bmN0aW9uLT4+T3JpZ2luYWxGdW5jdGlvbjogRXhlY3V0ZSB3aXRoIHBhcmFtc1xuICogICAgIE9yaWdpbmFsRnVuY3Rpb24tLT4+TG9ja2VkRnVuY3Rpb246IFJldHVybiByZXN1bHRcbiAqICAgICBMb2NrZWRGdW5jdGlvbi0tPj5DYWxsZXI6IFJlc29sdmUgcHJvbWlzZSB3aXRoIHJlc3VsdFxuICogICBlbmRcbiAqICAgTG9ja2VkRnVuY3Rpb24tPj5Mb2NrZWRGdW5jdGlvbjogVXBkYXRlIGxvY2tcbiAqXG4gKiBAbWVtYmVyT2YgQGRlY2FmLXRzL3V0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NraWZ5PFI+KGY6ICguLi5wYXJhbXM6IHVua25vd25bXSkgPT4gUikge1xuICBsZXQgbG9jazogUHJvbWlzZTxSIHwgdm9pZD4gPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgcmV0dXJuICguLi5wYXJhbXM6IHVua25vd25bXSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGxvY2sudGhlbigoKSA9PiBmKC4uLnBhcmFtcykpO1xuICAgIGxvY2sgPSByZXN1bHQuY2F0Y2goKCkgPT4ge30pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkFib3J0Q29udHJvbGxlcihcbiAgY29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyLFxuICAuLi5zaWduYWxzOiBBYm9ydFNpZ25hbFtdXG4pOiBBYm9ydENvbnRyb2xsZXI7XG5leHBvcnQgZnVuY3Rpb24gY2hhaW5BYm9ydENvbnRyb2xsZXIoXG4gIC4uLnNpZ25hbHM6IEFib3J0U2lnbmFsW11cbik6IEFib3J0Q29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkFib3J0Q29udHJvbGxlcihcbiAgYXJndW1lbnQwOiBBYm9ydENvbnRyb2xsZXIgfCBBYm9ydFNpZ25hbCxcbiAgLi4ucmVtYWluZGVyOiBBYm9ydFNpZ25hbFtdXG4pOiBBYm9ydENvbnRyb2xsZXIge1xuICBsZXQgc2lnbmFsczogQWJvcnRTaWduYWxbXTtcbiAgbGV0IGNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlcjtcblxuICAvLyBub3JtYWxpemUgYXJnc1xuICBpZiAoYXJndW1lbnQwIGluc3RhbmNlb2YgQWJvcnRTaWduYWwpIHtcbiAgICBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHNpZ25hbHMgPSBbYXJndW1lbnQwLCAuLi5yZW1haW5kZXJdO1xuICB9IGVsc2Uge1xuICAgIGNvbnRyb2xsZXIgPSBhcmd1bWVudDA7XG4gICAgc2lnbmFscyA9IHJlbWFpbmRlcjtcbiAgfVxuXG4gIC8vIGlmIHRoZSBjb250cm9sbGVyIGlzIGFscmVhZHkgYWJvcnRlZCwgZXhpdCBlYXJseVxuICBpZiAoY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCkge1xuICAgIHJldHVybiBjb250cm9sbGVyO1xuICB9XG5cbiAgY29uc3QgaGFuZGxlciA9ICgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKTtcblxuICBmb3IgKGNvbnN0IHNpZ25hbCBvZiBzaWduYWxzKSB7XG4gICAgLy8gY2hlY2sgYmVmb3JlIGFkZGluZyEgKGFuZCBhc3N1bWUgdGhlcmUgaXMgbm8gcG9zc2libGUgd2F5IHRoYXQgdGhlIHNpZ25hbCBjb3VsZFxuICAgIC8vIGFib3J0IGJldHdlZW4gdGhlIGBpZmAgY2hlY2sgYW5kIGFkZGluZyB0aGUgZXZlbnQgbGlzdGVuZXIpXG4gICAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBoYW5kbGVyLCB7XG4gICAgICBvbmNlOiB0cnVlLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjb250cm9sbGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Bhd25Db21tYW5kPFIgPSBzdHJpbmc+KFxuICBvdXRwdXQ6IFN0YW5kYXJkT3V0cHV0V3JpdGVyPFI+LFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIG9wdHM6IFNwYXduT3B0aW9uc1dpdGhvdXRTdGRpbyxcbiAgYWJvcnQ6IEFib3J0Q29udHJvbGxlcixcbiAgbG9nZ2VyOiBWZXJib3NpdHlMb2dnZXJcbik6IENoaWxkUHJvY2Vzc1dpdGhvdXROdWxsU3RyZWFtcyB7XG4gIGZ1bmN0aW9uIHNwYXduSW5uZXIoY29tbWFuZDogc3RyaW5nLCBjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIpIHtcbiAgICBjb25zdCBbY21kLCBhcmd6XSA9IG91dHB1dC5wYXJzZUNvbW1hbmQoY29tbWFuZCk7XG4gICAgbG9nZ2VyLmluZm8oYFJ1bm5pbmcgY29tbWFuZDogJHtjbWR9YCk7XG4gICAgbG9nZ2VyLmRlYnVnKGB3aXRoIGFyZ3M6ICR7YXJnei5qb2luKFwiIFwiKX1gKTtcbiAgICBjb25zdCBjaGlsZFByb2Nlc3MgPSBzcGF3bihjbWQsIGFyZ3osIHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICBjd2Q6IG9wdHMuY3dkIHx8IHByb2Nlc3MuY3dkKCksXG4gICAgICBlbnY6IE9iamVjdC5hc3NpZ24oe30sIHByb2Nlc3MuZW52LCBvcHRzLmVudiwgeyBQQVRIOiBwcm9jZXNzLmVudi5QQVRIIH0pLFxuICAgICAgc2hlbGw6IG9wdHMuc2hlbGwgfHwgZmFsc2UsXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIGxvZ2dlci52ZXJib3NlKGBwaWQgOiAke2NoaWxkUHJvY2Vzcy5waWR9YCk7XG4gICAgcmV0dXJuIGNoaWxkUHJvY2VzcztcbiAgfVxuXG4gIGNvbnN0IG0gPSBjb21tYW5kLm1hdGNoKC9bPD4kI10vZyk7XG4gIGlmIChtKVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGNvbW1hbmQ6ICR7Y29tbWFuZH0uIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyczogJHttfWBcbiAgICApO1xuICBpZiAoY29tbWFuZC5pbmNsdWRlcyhcIiB8IFwiKSkge1xuICAgIGNvbnN0IGNtZHMgPSBjb21tYW5kLnNwbGl0KFwiIHwgXCIpO1xuICAgIGNvbnN0IHNwYXducyA9IFtdO1xuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gbmV3IEFycmF5KGNtZHMubGVuZ3RoKTtcbiAgICBjb250cm9sbGVyc1swXSA9IGFib3J0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY21kcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgIT09IDApXG4gICAgICAgIGNvbnRyb2xsZXJzW2ldID0gY2hhaW5BYm9ydENvbnRyb2xsZXIoY29udHJvbGxlcnNbaSAtIDFdLnNpZ25hbCk7XG4gICAgICBzcGF3bnMucHVzaChzcGF3bklubmVyKGNtZHNbaV0sIGNvbnRyb2xsZXJzW2ldKSk7XG4gICAgICBpZiAoaSA9PT0gMCkgY29udGludWU7XG4gICAgICBzcGF3bnNbaSAtIDFdLnN0ZG91dC5waXBlKHNwYXduc1tpXS5zdGRpbik7XG4gICAgfVxuICAgIHJldHVybiBzcGF3bnNbY21kcy5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIHJldHVybiBzcGF3bklubmVyKGNvbW1hbmQsIGFib3J0KTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBjb21tYW5kIGFzeW5jaHJvbm91c2x5IHdpdGggY3VzdG9taXphYmxlIG91dHB1dCBoYW5kbGluZy5cbiAqIEBzdW1tYXJ5IFRoaXMgZnVuY3Rpb24gcnVucyBhIHNoZWxsIGNvbW1hbmQgYXMgYSBjaGlsZCBwcm9jZXNzLCBwcm92aWRpbmcgZmluZS1ncmFpbmVkXG4gKiBjb250cm9sIG92ZXIgaXRzIGV4ZWN1dGlvbiBhbmQgb3V0cHV0IGhhbmRsaW5nLiBJdCBzdXBwb3J0cyBjdXN0b20gb3V0cHV0IHdyaXRlcnMsXG4gKiBhbGxvd3MgZm9yIGNvbW1hbmQgYWJvcnRpb24sIGFuZCBjYXB0dXJlcyBib3RoIHN0ZG91dCBhbmQgc3RkZXJyLlxuICpcbiAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlc29sdmVkIHZhbHVlIGZyb20gdGhlIGNvbW1hbmQgZXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gcnVuLCBlaXRoZXIgYXMgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRzIC0gU3Bhd24gb3B0aW9ucyBmb3IgdGhlIGNoaWxkIHByb2Nlc3MuIERlZmF1bHRzIHRvIGFuIGVtcHR5IG9iamVjdC5cbiAqIEBwYXJhbSBvdXRwdXRDb25zdHJ1Y3RvciAtIENvbnN0cnVjdG9yIGZvciB0aGUgb3V0cHV0IHdyaXRlci4gRGVmYXVsdHMgdG8gU3RhbmRhcmRPdXRwdXRXcml0ZXIuXG4gKiBAcGFyYW0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIG91dHB1dCBjb25zdHJ1Y3Rvci5cbiAqIEByZXR1cm4ge0NvbW1hbmRSZXN1bHR9IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb21tYW5kIHJlc3VsdCBvZiB0eXBlIFIuXG4gKlxuICogQGZ1bmN0aW9uIHJ1bkNvbW1hbmRcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBydW5Db21tYW5kXG4gKiAgIHBhcnRpY2lwYW50IE91dHB1dFdyaXRlclxuICogICBwYXJ0aWNpcGFudCBDaGlsZFByb2Nlc3NcbiAqICAgQ2FsbGVyLT4+cnVuQ29tbWFuZDogQ2FsbCB3aXRoIGNvbW1hbmQgYW5kIG9wdGlvbnNcbiAqICAgcnVuQ29tbWFuZC0+Pk91dHB1dFdyaXRlcjogQ3JlYXRlIG5ldyBpbnN0YW5jZVxuICogICBydW5Db21tYW5kLT4+T3V0cHV0V3JpdGVyOiBQYXJzZSBjb21tYW5kXG4gKiAgIHJ1bkNvbW1hbmQtPj5DaGlsZFByb2Nlc3M6IFNwYXduIHByb2Nlc3NcbiAqICAgQ2hpbGRQcm9jZXNzLS0+PnJ1bkNvbW1hbmQ6IFJldHVybiBwcm9jZXNzIG9iamVjdFxuICogICBydW5Db21tYW5kLT4+Q2hpbGRQcm9jZXNzOiBTZXQgdXAgZXZlbnQgbGlzdGVuZXJzXG4gKiAgIGxvb3AgRm9yIGVhY2ggc3Rkb3V0IGRhdGFcbiAqICAgICBDaGlsZFByb2Nlc3MtPj5ydW5Db21tYW5kOiBFbWl0IHN0ZG91dCBkYXRhXG4gKiAgICAgcnVuQ29tbWFuZC0+Pk91dHB1dFdyaXRlcjogSGFuZGxlIHN0ZG91dCBkYXRhXG4gKiAgIGVuZFxuICogICBsb29wIEZvciBlYWNoIHN0ZGVyciBkYXRhXG4gKiAgICAgQ2hpbGRQcm9jZXNzLT4+cnVuQ29tbWFuZDogRW1pdCBzdGRlcnIgZGF0YVxuICogICAgIHJ1bkNvbW1hbmQtPj5PdXRwdXRXcml0ZXI6IEhhbmRsZSBzdGRlcnIgZGF0YVxuICogICBlbmRcbiAqICAgQ2hpbGRQcm9jZXNzLT4+cnVuQ29tbWFuZDogRW1pdCBlcnJvciAoaWYgYW55KVxuICogICBydW5Db21tYW5kLT4+T3V0cHV0V3JpdGVyOiBIYW5kbGUgZXJyb3JcbiAqICAgQ2hpbGRQcm9jZXNzLT4+cnVuQ29tbWFuZDogRW1pdCBleGl0XG4gKiAgIHJ1bkNvbW1hbmQtPj5PdXRwdXRXcml0ZXI6IEhhbmRsZSBleGl0XG4gKiAgIE91dHB1dFdyaXRlci0tPj5ydW5Db21tYW5kOiBSZXNvbHZlIG9yIHJlamVjdCBwcm9taXNlXG4gKiAgIHJ1bkNvbW1hbmQtLT4+Q2FsbGVyOiBSZXR1cm4gQ29tbWFuZFJlc3VsdFxuICpcbiAqIEBtZW1iZXJPZiBAZGVjYWYtdHMvdXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkNvbW1hbmQ8UiA9IHN0cmluZz4oXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgb3B0czogU3Bhd25PcHRpb25zV2l0aG91dFN0ZGlvID0ge30sXG4gIG91dHB1dENvbnN0cnVjdG9yOiBPdXRwdXRXcml0ZXJDb25zdHJ1Y3RvcjxcbiAgICBSLFxuICAgIFN0YW5kYXJkT3V0cHV0V3JpdGVyPFI+LFxuICAgIEVycm9yXG4gID4gPSBTdGFuZGFyZE91dHB1dFdyaXRlcjxSPixcbiAgLi4uYXJnczogdW5rbm93bltdXG4pOiBDb21tYW5kUmVzdWx0PFI+IHtcbiAgY29uc3QgbG9nZ2VyID0gTG9nZ2luZy5mb3IocnVuQ29tbWFuZCk7XG4gIGNvbnN0IGFib3J0ID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIGNvbnN0IHJlc3VsdDogT21pdDxDb21tYW5kUmVzdWx0LCBcInByb21pc2VcIiB8IFwicGlwZVwiPiA9IHtcbiAgICBhYm9ydDogYWJvcnQsXG4gICAgY29tbWFuZDogY29tbWFuZCxcbiAgICBsb2dzOiBbXSxcbiAgICBlcnJzOiBbXSxcbiAgfTtcblxuICBjb25zdCBsb2NrID0gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxldCBvdXRwdXQ7XG4gICAgdHJ5IHtcbiAgICAgIG91dHB1dCA9IG5ldyBvdXRwdXRDb25zdHJ1Y3RvcihcbiAgICAgICAgY29tbWFuZCxcbiAgICAgICAge1xuICAgICAgICAgIHJlc29sdmUsXG4gICAgICAgICAgcmVqZWN0LFxuICAgICAgICB9LFxuICAgICAgICAuLi5hcmdzXG4gICAgICApO1xuXG4gICAgICByZXN1bHQuY21kID0gc3Bhd25Db21tYW5kPFI+KG91dHB1dCwgY29tbWFuZCwgb3B0cywgYWJvcnQsIGxvZ2dlcik7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoYEVycm9yIHJ1bm5pbmcgY29tbWFuZCAke2NvbW1hbmR9OiAke2V9YCkpO1xuICAgIH1cblxuICAgIHJlc3VsdC5jbWQuc3Rkb3V0LnNldEVuY29kaW5nKFwidXRmOFwiKTtcblxuICAgIHJlc3VsdC5jbWQuc3Rkb3V0Lm9uKFwiZGF0YVwiLCAoY2h1bms6IGFueSkgPT4ge1xuICAgICAgY2h1bmsgPSBjaHVuay50b1N0cmluZygpO1xuICAgICAgcmVzdWx0LmxvZ3MucHVzaChjaHVuayk7XG4gICAgICBvdXRwdXQuZGF0YShjaHVuayk7XG4gICAgfSk7XG5cbiAgICByZXN1bHQuY21kLnN0ZGVyci5vbihcImRhdGFcIiwgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgIHJlc3VsdC5lcnJzLnB1c2goZGF0YSk7XG4gICAgICBvdXRwdXQuZXJyb3IoZGF0YSk7XG4gICAgfSk7XG5cbiAgICByZXN1bHQuY21kLm9uY2UoXCJlcnJvclwiLCAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgb3V0cHV0LmV4aXQoZXJyLm1lc3NhZ2UsIHJlc3VsdC5lcnJzKTtcbiAgICB9KTtcblxuICAgIHJlc3VsdC5jbWQub25jZShcImV4aXRcIiwgKGNvZGU6IG51bWJlciA9IDApID0+IHtcbiAgICAgIGlmIChhYm9ydC5zaWduYWwuYWJvcnRlZCAmJiBjb2RlID09PSBudWxsKSBjb2RlID0gQWJvcnRDb2RlIGFzIGFueTtcbiAgICAgIG91dHB1dC5leGl0KGNvZGUsIGNvZGUgPT09IDAgPyByZXN1bHQubG9ncyA6IHJlc3VsdC5lcnJzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIHtcbiAgICBwcm9taXNlOiBsb2NrLFxuICAgIHBpcGU6IGFzeW5jIDxFPihjYjogKHI6IFIpID0+IEUpID0+IHtcbiAgICAgIGNvbnN0IGwgPSBsb2dnZXIuZm9yKFwicGlwZVwiKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGwudmVyYm9zZShgRXhlY3V0aW5nIHBpcGUgZnVuY3Rpb24gJHtjb21tYW5kfS4uLmApO1xuICAgICAgICBjb25zdCByZXN1bHQ6IFIgPSBhd2FpdCBsb2NrO1xuICAgICAgICBsLnZlcmJvc2UoYFBpcGluZyBvdXRwdXQgdG8gJHtjYi5uYW1lfTogJHtyZXN1bHR9YCk7XG4gICAgICAgIHJldHVybiBjYihyZXN1bHQpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsLmVycm9yKGBFcnJvciBwaXBpbmcgY29tbWFuZCBvdXRwdXQ6ICR7ZX1gKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0IGFzIENvbW1hbmRSZXN1bHQ8Uj47XG59XG4iXX0=
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErQ0EsMEJBT0M7QUFTRCxvREFxQ0M7QUFFRCxvQ0EyQ0M7QUErQ0QsZ0NBOEVDO0FBOVFELGlEQUl1QjtBQUN2QiwwRUFBdUU7QUFHdkUsMkNBQXdDO0FBQ3hDLCtDQUFvRDtBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFDSCxTQUFnQixPQUFPLENBQUksQ0FBOEI7SUFDdkQsSUFBSSxJQUFJLEdBQXNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRCxPQUFPLENBQUMsR0FBRyxNQUFpQixFQUFFLEVBQUU7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFTRCxTQUFnQixvQkFBb0IsQ0FDbEMsU0FBd0MsRUFDeEMsR0FBRyxTQUF3QjtJQUUzQixJQUFJLE9BQXNCLENBQUM7SUFDM0IsSUFBSSxVQUEyQixDQUFDO0lBRWhDLGlCQUFpQjtJQUNqQixJQUFJLFNBQVMsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsT0FBTyxHQUFHLFNBQVMsQ0FBQztJQUN0QixDQUFDO0lBRUQsbURBQW1EO0lBQ25E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aG91dE51bGxTdHJlYW1zLFxuICBzcGF3bixcbiAgU3Bhd25PcHRpb25zV2l0aG91dFN0ZGlvLFxufSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgU3RhbmRhcmRPdXRwdXRXcml0ZXIgfSBmcm9tIFwiLi4vd3JpdGVycy9TdGFuZGFyZE91dHB1dFdyaXRlclwiO1xuaW1wb3J0IHsgQ29tbWFuZFJlc3VsdCB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBPdXRwdXRXcml0ZXJDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi93cml0ZXJzL3R5cGVzXCI7XG5pbXBvcnQgeyBBYm9ydENvZGUgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbG9ja2VkIHZlcnNpb24gb2YgYSBmdW5jdGlvbi5cbiAqIEBzdW1tYXJ5IFRoaXMgaGlnaGVyLW9yZGVyIGZ1bmN0aW9uIHRha2VzIGEgZnVuY3Rpb24gYW5kIHJldHVybnMgYSBuZXcgZnVuY3Rpb24gdGhhdCBlbnN1cmVzXG4gKiBzZXF1ZW50aWFsIGV4ZWN1dGlvbiBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24sIGV2ZW4gd2hlbiBjYWxsZWQgbXVsdGlwbGUgdGltZXMgY29uY3VycmVudGx5LlxuICogSXQgdXNlcyBhIFByb21pc2UtYmFzZWQgbG9ja2luZyBtZWNoYW5pc20gdG8gcXVldWUgZnVuY3Rpb24gY2FsbHMuXG4gKlxuICogQHRlbXBsYXRlIFIgLSBUaGUgcmV0dXJuIHR5cGUgb2YgdGhlIGlucHV0IGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBmIC0gVGhlIGZ1bmN0aW9uIHRvIGJlIGxvY2tlZC4gSXQgY2FuIHRha2UgYW55IG51bWJlciBvZiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gYSB2YWx1ZSBvZiB0eXBlIFIuXG4gKiBAcmV0dXJuIEEgbmV3IGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlIGFzIHRoZSBpbnB1dCBmdW5jdGlvbiwgYnV0IHdpdGggc2VxdWVudGlhbCBleGVjdXRpb24gZ3VhcmFudGVlZC5cbiAqXG4gKiBAZnVuY3Rpb24gbG9ja2lmeVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gKiAgIHBhcnRpY2lwYW50IExvY2tlZEZ1bmN0aW9uXG4gKiAgIHBhcnRpY2lwYW50IE9yaWdpbmFsRnVuY3Rpb25cbiAqICAgQ2FsbGVyLT4+TG9ja2VkRnVuY3Rpb246IENhbGwgd2l0aCBwYXJhbXNcbiAqICAgTG9ja2VkRnVuY3Rpb24tPj5Mb2NrZWRGdW5jdGlvbjogQ2hlY2sgY3VycmVudCBsb2NrXG4gKiAgIGFsdCBMb2NrIGlzIHJlc29sdmVkXG4gKiAgICAgTG9ja2VkRnVuY3Rpb24tPj5PcmlnaW5hbEZ1bmN0aW9uOiBFeGVjdXRlIHdpdGggcGFyYW1zXG4gKiAgICAgT3JpZ2luYWxGdW5jdGlvbi0tPj5Mb2NrZWRGdW5jdGlvbjogUmV0dXJuIHJlc3VsdFxuICogICAgIExvY2tlZEZ1bmN0aW9uLS0+PkNhbGxlcjogUmV0dXJuIHJlc3VsdFxuICogICBlbHNlIExvY2sgaXMgcGVuZGluZ1xuICogICAgIExvY2tlZEZ1bmN0aW9uLT4+TG9ja2VkRnVuY3Rpb246IFF1ZXVlIGV4ZWN1dGlvblxuICogICAgIExvY2tlZEZ1bmN0aW9uLS0+PkNhbGxlcjogUmV0dXJuIHByb21pc2VcbiAqICAgICBOb3RlIG92ZXIgTG9ja2VkRnVuY3Rpb246IFdhaXQgZm9yIHByZXZpb3VzIGV4ZWN1dGlvblxuICogICAgIExvY2tlZEZ1bmN0aW9uLT4+T3JpZ2luYWxGdW5jdGlvbjogRXhlY3V0ZSB3aXRoIHBhcmFtc1xuICogICAgIE9yaWdpbmFsRnVuY3Rpb24tLT4+TG9ja2VkRnVuY3Rpb246IFJldHVybiByZXN1bHRcbiAqICAgICBMb2NrZWRGdW5jdGlvbi0tPj5DYWxsZXI6IFJlc29sdmUgcHJvbWlzZSB3aXRoIHJlc3VsdFxuICogICBlbmRcbiAqICAgTG9ja2VkRnVuY3Rpb24tPj5Mb2NrZWRGdW5jdGlvbjogVXBkYXRlIGxvY2tcbiAqXG4gKiBAbWVtYmVyT2YgQGRlY2FmLXRzL3V0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NraWZ5PFI+KGY6ICguLi5wYXJhbXM6IHVua25vd25bXSkgPT4gUikge1xuICBsZXQgbG9jazogUHJvbWlzZTxSIHwgdm9pZD4gPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgcmV0dXJuICguLi5wYXJhbXM6IHVua25vd25bXSkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGxvY2sudGhlbigoKSA9PiBmKC4uLnBhcmFtcykpO1xuICAgIGxvY2sgPSByZXN1bHQuY2F0Y2goKCkgPT4ge30pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkFib3J0Q29udHJvbGxlcihcbiAgY29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyLFxuICAuLi5zaWduYWxzOiBBYm9ydFNpZ25hbFtdXG4pOiBBYm9ydENvbnRyb2xsZXI7XG5leHBvcnQgZnVuY3Rpb24gY2hhaW5BYm9ydENvbnRyb2xsZXIoXG4gIC4uLnNpZ25hbHM6IEFib3J0U2lnbmFsW11cbik6IEFib3J0Q29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkFib3J0Q29udHJvbGxlcihcbiAgYXJndW1lbnQwOiBBYm9ydENvbnRyb2xsZXIgfCBBYm9ydFNpZ25hbCxcbiAgLi4ucmVtYWluZGVyOiBBYm9ydFNpZ25hbFtdXG4pOiBBYm9ydENvbnRyb2xsZXIge1xuICBsZXQgc2lnbmFsczogQWJvcnRTaWduYWxbXTtcbiAgbGV0IGNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlcjtcblxuICAvLyBub3JtYWxpemUgYXJnc1xuICBpZiAoYXJndW1lbnQwIGluc3RhbmNlb2YgQWJvcnRTaWduYWwpIHtcbiAgICBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHNpZ25hbHMgPSBbYXJndW1lbnQwLCAuLi5yZW1haW5kZXJdO1xuICB9IGVsc2Uge1xuICAgIGNvbnRyb2xsZXIgPSBhcmd1bWVudDA7XG4gICAgc2lnbmFscyA9IHJlbWFpbmRlcjtcbiAgfVxuXG4gIC8vIGlmIHRoZSBjb250cm9sbGVyIGlzIGFscmVhZHkgYWJvcnRlZCwgZXhpdCBlYXJseVxuICBpZiAoY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCkge1xuICAgIHJldHVybiBjb250cm9sbGVyO1xuICB9XG5cbiAgY29uc3QgaGFuZGxlciA9ICgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKTtcblxuICBmb3IgKGNvbnN0IHNpZ25hbCBvZiBzaWduYWxzKSB7XG4gICAgLy8gY2hlY2sgYmVmb3JlIGFkZGluZyEgKGFuZCBhc3N1bWUgdGhlcmUgaXMgbm8gcG9zc2libGUgd2F5IHRoYXQgdGhlIHNpZ25hbCBjb3VsZFxuICAgIC8vIGFib3J0IGJldHdlZW4gdGhlIGBpZmAgY2hlY2sgYW5kIGFkZGluZyB0aGUgZXZlbnQgbGlzdGVuZXIpXG4gICAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBoYW5kbGVyLCB7XG4gICAgICBvbmNlOiB0cnVlLFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBjb250cm9sbGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Bhd25Db21tYW5kPFIgPSBzdHJpbmc+KFxuICBvdXRwdXQ6IFN0YW5kYXJkT3V0cHV0V3JpdGVyPFI+LFxuICBjb21tYW5kOiBzdHJpbmcsXG4gIG9wdHM6IFNwYXduT3B0aW9uc1dpdGhvdXRTdGRpbyxcbiAgYWJvcnQ6IEFib3J0Q29udHJvbGxlcixcbiAgbG9nZ2VyOiBMb2dnZXJcbik6IENoaWxkUHJvY2Vzc1dpdGhvdXROdWxsU3RyZWFtcyB7XG4gIGZ1bmN0aW9uIHNwYXduSW5uZXIoY29tbWFuZDogc3RyaW5nLCBjb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIpIHtcbiAgICBjb25zdCBbY21kLCBhcmd6XSA9IG91dHB1dC5wYXJzZUNvbW1hbmQoY29tbWFuZCk7XG4gICAgbG9nZ2VyLmluZm8oYFJ1bm5pbmcgY29tbWFuZDogJHtjbWR9YCk7XG4gICAgbG9nZ2VyLmRlYnVnKGB3aXRoIGFyZ3M6ICR7YXJnei5qb2luKFwiIFwiKX1gKTtcbiAgICBjb25zdCBjaGlsZFByb2Nlc3MgPSBzcGF3bihjbWQsIGFyZ3osIHtcbiAgICAgIC4uLm9wdHMsXG4gICAgICBjd2Q6IG9wdHMuY3dkIHx8IHByb2Nlc3MuY3dkKCksXG4gICAgICBlbnY6IE9iamVjdC5hc3NpZ24oe30sIHByb2Nlc3MuZW52LCBvcHRzLmVudiwgeyBQQVRIOiBwcm9jZXNzLmVudi5QQVRIIH0pLFxuICAgICAgc2hlbGw6IG9wdHMuc2hlbGwgfHwgZmFsc2UsXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIGxvZ2dlci52ZXJib3NlKGBwaWQgOiAke2NoaWxkUHJvY2Vzcy5waWR9YCk7XG4gICAgcmV0dXJuIGNoaWxkUHJvY2VzcztcbiAgfVxuXG4gIGNvbnN0IG0gPSBjb21tYW5kLm1hdGNoKC9bPD4kI10vZyk7XG4gIGlmIChtKVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGNvbW1hbmQ6ICR7Y29tbWFuZH0uIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyczogJHttfWBcbiAgICApO1xuICBpZiAoY29tbWFuZC5pbmNsdWRlcyhcIiB8IFwiKSkge1xuICAgIGNvbnN0IGNtZHMgPSBjb21tYW5kLnNwbGl0KFwiIHwgXCIpO1xuICAgIGNvbnN0IHNwYXducyA9IFtdO1xuICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gbmV3IEFycmF5KGNtZHMubGVuZ3RoKTtcbiAgICBjb250cm9sbGVyc1swXSA9IGFib3J0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY21kcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGkgIT09IDApXG4gICAgICAgIGNvbnRyb2xsZXJzW2ldID0gY2hhaW5BYm9ydENvbnRyb2xsZXIoY29udHJvbGxlcnNbaSAtIDFdLnNpZ25hbCk7XG4gICAgICBzcGF3bnMucHVzaChzcGF3bklubmVyKGNtZHNbaV0sIGNvbnRyb2xsZXJzW2ldKSk7XG4gICAgICBpZiAoaSA9PT0gMCkgY29udGludWU7XG4gICAgICBzcGF3bnNbaSAtIDFdLnN0ZG91dC5waXBlKHNwYXduc1tpXS5zdGRpbik7XG4gICAgfVxuICAgIHJldHVybiBzcGF3bnNbY21kcy5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIHJldHVybiBzcGF3bklubmVyKGNvbW1hbmQsIGFib3J0KTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBjb21tYW5kIGFzeW5jaHJvbm91c2x5IHdpdGggY3VzdG9taXphYmxlIG91dHB1dCBoYW5kbGluZy5cbiAqIEBzdW1tYXJ5IFRoaXMgZnVuY3Rpb24gcnVucyBhIHNoZWxsIGNvbW1hbmQgYXMgYSBjaGlsZCBwcm9jZXNzLCBwcm92aWRpbmcgZmluZS1ncmFpbmVkXG4gKiBjb250cm9sIG92ZXIgaXRzIGV4ZWN1dGlvbiBhbmQgb3V0cHV0IGhhbmRsaW5nLiBJdCBzdXBwb3J0cyBjdXN0b20gb3V0cHV0IHdyaXRlcnMsXG4gKiBhbGxvd3MgZm9yIGNvbW1hbmQgYWJvcnRpb24sIGFuZCBjYXB0dXJlcyBib3RoIHN0ZG91dCBhbmQgc3RkZXJyLlxuICpcbiAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlc29sdmVkIHZhbHVlIGZyb20gdGhlIGNvbW1hbmQgZXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgdG8gcnVuLCBlaXRoZXIgYXMgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEBwYXJhbSBvcHRzIC0gU3Bhd24gb3B0aW9ucyBmb3IgdGhlIGNoaWxkIHByb2Nlc3MuIERlZmF1bHRzIHRvIGFuIGVtcHR5IG9iamVjdC5cbiAqIEBwYXJhbSBvdXRwdXRDb25zdHJ1Y3RvciAtIENvbnN0cnVjdG9yIGZvciB0aGUgb3V0cHV0IHdyaXRlci4gRGVmYXVsdHMgdG8gU3RhbmRhcmRPdXRwdXRXcml0ZXIuXG4gKiBAcGFyYW0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIG91dHB1dCBjb25zdHJ1Y3Rvci5cbiAqIEByZXR1cm4ge0NvbW1hbmRSZXN1bHR9IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjb21tYW5kIHJlc3VsdCBvZiB0eXBlIFIuXG4gKlxuICogQGZ1bmN0aW9uIHJ1bkNvbW1hbmRcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBydW5Db21tYW5kXG4gKiAgIHBhcnRpY2lwYW50IE91dHB1dFdyaXRlclxuICogICBwYXJ0aWNpcGFudCBDaGlsZFByb2Nlc3NcbiAqICAgQ2FsbGVyLT4+cnVuQ29tbWFuZDogQ2FsbCB3aXRoIGNvbW1hbmQgYW5kIG9wdGlvbnNcbiAqICAgcnVuQ29tbWFuZC0+Pk91dHB1dFdyaXRlcjogQ3JlYXRlIG5ldyBpbnN0YW5jZVxuICogICBydW5Db21tYW5kLT4+T3V0cHV0V3JpdGVyOiBQYXJzZSBjb21tYW5kXG4gKiAgIHJ1bkNvbW1hbmQtPj5DaGlsZFByb2Nlc3M6IFNwYXduIHByb2Nlc3NcbiAqICAgQ2hpbGRQcm9jZXNzLS0+PnJ1bkNvbW1hbmQ6IFJldHVybiBwcm9jZXNzIG9iamVjdFxuICogICBydW5Db21tYW5kLT4+Q2hpbGRQcm9jZXNzOiBTZXQgdXAgZXZlbnQgbGlzdGVuZXJzXG4gKiAgIGxvb3AgRm9yIGVhY2ggc3Rkb3V0IGRhdGFcbiAqICAgICBDaGlsZFByb2Nlc3MtPj5ydW5Db21tYW5kOiBFbWl0IHN0ZG91dCBkYXRhXG4gKiAgICAgcnVuQ29tbWFuZC0+Pk91dHB1dFdyaXRlcjogSGFuZGxlIHN0ZG91dCBkYXRhXG4gKiAgIGVuZFxuICogICBsb29wIEZvciBlYWNoIHN0ZGVyciBkYXRhXG4gKiAgICAgQ2hpbGRQcm9jZXNzLT4+cnVuQ29tbWFuZDogRW1pdCBzdGRlcnIgZGF0YVxuICogICAgIHJ1bkNvbW1hbmQtPj5PdXRwdXRXcml0ZXI6IEhhbmRsZSBzdGRlcnIgZGF0YVxuICogICBlbmRcbiAqICAgQ2hpbGRQcm9jZXNzLT4+cnVuQ29tbWFuZDogRW1pdCBlcnJvciAoaWYgYW55KVxuICogICBydW5Db21tYW5kLT4+T3V0cHV0V3JpdGVyOiBIYW5kbGUgZXJyb3JcbiAqICAgQ2hpbGRQcm9jZXNzLT4+cnVuQ29tbWFuZDogRW1pdCBleGl0XG4gKiAgIHJ1bkNvbW1hbmQtPj5PdXRwdXRXcml0ZXI6IEhhbmRsZSBleGl0XG4gKiAgIE91dHB1dFdyaXRlci0tPj5ydW5Db21tYW5kOiBSZXNvbHZlIG9yIHJlamVjdCBwcm9taXNlXG4gKiAgIHJ1bkNvbW1hbmQtLT4+Q2FsbGVyOiBSZXR1cm4gQ29tbWFuZFJlc3VsdFxuICpcbiAqIEBtZW1iZXJPZiBAZGVjYWYtdHMvdXRpbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkNvbW1hbmQ8UiA9IHN0cmluZz4oXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgb3B0czogU3Bhd25PcHRpb25zV2l0aG91dFN0ZGlvID0ge30sXG4gIG91dHB1dENvbnN0cnVjdG9yOiBPdXRwdXRXcml0ZXJDb25zdHJ1Y3RvcjxcbiAgICBSLFxuICAgIFN0YW5kYXJkT3V0cHV0V3JpdGVyPFI+LFxuICAgIEVycm9yXG4gID4gPSBTdGFuZGFyZE91dHB1dFdyaXRlcjxSPixcbiAgLi4uYXJnczogdW5rbm93bltdXG4pOiBDb21tYW5kUmVzdWx0PFI+IHtcbiAgY29uc3QgbG9nZ2VyID0gTG9nZ2luZy5mb3IocnVuQ29tbWFuZCk7XG4gIGNvbnN0IGFib3J0ID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gIGNvbnN0IHJlc3VsdDogT21pdDxDb21tYW5kUmVzdWx0LCBcInByb21pc2VcIiB8IFwicGlwZVwiPiA9IHtcbiAgICBhYm9ydDogYWJvcnQsXG4gICAgY29tbWFuZDogY29tbWFuZCxcbiAgICBsb2dzOiBbXSxcbiAgICBlcnJzOiBbXSxcbiAgfTtcblxuICBjb25zdCBsb2NrID0gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGxldCBvdXRwdXQ7XG4gICAgdHJ5IHtcbiAgICAgIG91dHB1dCA9IG5ldyBvdXRwdXRDb25zdHJ1Y3RvcihcbiAgICAgICAgY29tbWFuZCxcbiAgICAgICAge1xuICAgICAgICAgIHJlc29sdmUsXG4gICAgICAgICAgcmVqZWN0LFxuICAgICAgICB9LFxuICAgICAgICAuLi5hcmdzXG4gICAgICApO1xuXG4gICAgICByZXN1bHQuY21kID0gc3Bhd25Db21tYW5kPFI+KG91dHB1dCwgY29tbWFuZCwgb3B0cywgYWJvcnQsIGxvZ2dlcik7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoYEVycm9yIHJ1bm5pbmcgY29tbWFuZCAke2NvbW1hbmR9OiAke2V9YCkpO1xuICAgIH1cblxuICAgIHJlc3VsdC5jbWQuc3Rkb3V0LnNldEVuY29kaW5nKFwidXRmOFwiKTtcblxuICAgIHJlc3VsdC5jbWQuc3Rkb3V0Lm9uKFwiZGF0YVwiLCAoY2h1bms6IGFueSkgPT4ge1xuICAgICAgY2h1bmsgPSBjaHVuay50b1N0cmluZygpO1xuICAgICAgcmVzdWx0LmxvZ3MucHVzaChjaHVuayk7XG4gICAgICBvdXRwdXQuZGF0YShjaHVuayk7XG4gICAgfSk7XG5cbiAgICByZXN1bHQuY21kLnN0ZGVyci5vbihcImRhdGFcIiwgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgIHJlc3VsdC5lcnJzLnB1c2goZGF0YSk7XG4gICAgICBvdXRwdXQuZXJyb3IoZGF0YSk7XG4gICAgfSk7XG5cbiAgICByZXN1bHQuY21kLm9uY2UoXCJlcnJvclwiLCAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgb3V0cHV0LmV4aXQoZXJyLm1lc3NhZ2UsIHJlc3VsdC5lcnJzKTtcbiAgICB9KTtcblxuICAgIHJlc3VsdC5jbWQub25jZShcImV4aXRcIiwgKGNvZGU6IG51bWJlciA9IDApID0+IHtcbiAgICAgIGlmIChhYm9ydC5zaWduYWwuYWJvcnRlZCAmJiBjb2RlID09PSBudWxsKSBjb2RlID0gQWJvcnRDb2RlIGFzIGFueTtcbiAgICAgIG91dHB1dC5leGl0KGNvZGUsIGNvZGUgPT09IDAgPyByZXN1bHQubG9ncyA6IHJlc3VsdC5lcnJzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIHtcbiAgICBwcm9taXNlOiBsb2NrLFxuICAgIHBpcGU6IGFzeW5jIDxFPihjYjogKHI6IFIpID0+IEUpID0+IHtcbiAgICAgIGNvbnN0IGwgPSBsb2dnZXIuZm9yKFwicGlwZVwiKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGwudmVyYm9zZShgRXhlY3V0aW5nIHBpcGUgZnVuY3Rpb24gJHtjb21tYW5kfS4uLmApO1xuICAgICAgICBjb25zdCByZXN1bHQ6IFIgPSBhd2FpdCBsb2NrO1xuICAgICAgICBsLnZlcmJvc2UoYFBpcGluZyBvdXRwdXQgdG8gJHtjYi5uYW1lfTogJHtyZXN1bHR9YCk7XG4gICAgICAgIHJldHVybiBjYihyZXN1bHQpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsLmVycm9yKGBFcnJvciBwaXBpbmcgY29tbWFuZCBvdXRwdXQ6ICR7ZX1gKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0IGFzIENvbW1hbmRSZXN1bHQ8Uj47XG59XG4iXX0=
|
package/lib/utils/utils.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ChildProcessWithoutNullStreams, SpawnOptionsWithoutStdio } from "child_
|
|
|
2
2
|
import { StandardOutputWriter } from "../writers/StandardOutputWriter";
|
|
3
3
|
import { CommandResult } from "./types";
|
|
4
4
|
import { OutputWriterConstructor } from "../writers/types";
|
|
5
|
-
import {
|
|
5
|
+
import { Logger } from "@decaf-ts/logging";
|
|
6
6
|
/**
|
|
7
7
|
* @description Creates a locked version of a function.
|
|
8
8
|
* @summary This higher-order function takes a function and returns a new function that ensures
|
|
@@ -42,7 +42,7 @@ import { VerbosityLogger } from "../output/types";
|
|
|
42
42
|
export declare function lockify<R>(f: (...params: unknown[]) => R): (...params: unknown[]) => Promise<R>;
|
|
43
43
|
export declare function chainAbortController(controller: AbortController, ...signals: AbortSignal[]): AbortController;
|
|
44
44
|
export declare function chainAbortController(...signals: AbortSignal[]): AbortController;
|
|
45
|
-
export declare function spawnCommand<R = string>(output: StandardOutputWriter<R>, command: string, opts: SpawnOptionsWithoutStdio, abort: AbortController, logger:
|
|
45
|
+
export declare function spawnCommand<R = string>(output: StandardOutputWriter<R>, command: string, opts: SpawnOptionsWithoutStdio, abort: AbortController, logger: Logger): ChildProcessWithoutNullStreams;
|
|
46
46
|
/**
|
|
47
47
|
* @description Executes a command asynchronously with customizable output handling.
|
|
48
48
|
* @summary This function runs a shell command as a child process, providing fine-grained
|
package/lib/utils/web.cjs
CHANGED
|
File without changes
|
package/lib/utils/web.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StandardOutputWriter = void 0;
|
|
4
4
|
const constants_1 = require("../utils/constants.cjs");
|
|
5
|
-
const logging_1 = require("../output/logging.cjs");
|
|
6
5
|
const styled_string_builder_1 = require("styled-string-builder");
|
|
6
|
+
const logging_1 = require("@decaf-ts/logging");
|
|
7
7
|
/**
|
|
8
8
|
* @description A standard output writer for handling command execution output.
|
|
9
9
|
* @summary This class implements the OutputWriter interface and provides methods for
|
|
@@ -126,4 +126,4 @@ class StandardOutputWriter {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
exports.StandardOutputWriter = StandardOutputWriter;
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhcmRPdXRwdXRXcml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd3JpdGVycy9TdGFuZGFyZE91dHB1dFdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBOEM7QUFJOUMsK0NBQTRDO0FBRTVDLGlFQUE4QztBQUU5Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxvQkFBb0I7SUFHL0I7Ozs7Ozs7T0FPRztJQUNILFlBQ1ksR0FBVyxFQUNYLElBQXdCO0lBQ2xDLDZEQUE2RDtJQUM3RCxHQUFHLElBQWU7UUFIUixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFJbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLEdBQUcsQ0FBQyxJQUFnQixFQUFFLElBQXFCO1FBQ25ELElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsNkJBQUssRUFBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEtBQVU7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7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QU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQS9IRCxvREErSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmNvZGluZyB9IGZyb20gXCIuLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCB7IE91dHB1dFdyaXRlciB9IGZyb20gXCIuL091dHB1dFdyaXRlclwiO1xuaW1wb3J0IHsgUHJvbWlzZUV4ZWN1dG9yIH0gZnJvbSBcIi4uL3V0aWxzL3R5cGVzXCI7XG5pbXBvcnQgeyBPdXRwdXRUeXBlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiLi4vb3V0cHV0L2xvZ2dpbmdcIjtcbmltcG9ydCB7IFZlcmJvc2l0eUxvZ2dlciB9IGZyb20gXCIuLi9vdXRwdXQvdHlwZXNcIjtcbmltcG9ydCB7IHN0eWxlIH0gZnJvbSBcInN0eWxlZC1zdHJpbmctYnVpbGRlclwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBIHN0YW5kYXJkIG91dHB1dCB3cml0ZXIgZm9yIGhhbmRsaW5nIGNvbW1hbmQgZXhlY3V0aW9uIG91dHB1dC5cbiAqIEBzdW1tYXJ5IFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgT3V0cHV0V3JpdGVyIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgbWV0aG9kcyBmb3JcbiAqIGhhbmRsaW5nIHZhcmlvdXMgdHlwZXMgb2Ygb3V0cHV0IGZyb20gY29tbWFuZCBleGVjdXRpb24sIGluY2x1ZGluZyBzdGFuZGFyZCBvdXRwdXQsXG4gKiBlcnJvciBvdXRwdXQsIGFuZCBleGl0IGNvZGVzLiBJdCBhbHNvIGluY2x1ZGVzIHV0aWxpdHkgbWV0aG9kcyBmb3IgcGFyc2luZyBjb21tYW5kc1xuICogYW5kIHJlc29sdmluZyBvciByZWplY3RpbmcgcHJvbWlzZXMgYmFzZWQgb24gZXhlY3V0aW9uIHJlc3VsdHMuXG4gKlxuICogQHRlbXBsYXRlIFIgLSBUaGUgdHlwZSBvZiB0aGUgcmVzb2x2ZWQgdmFsdWUsIGRlZmF1bHRpbmcgdG8gbnVtYmVyLlxuICpcbiAqIEBwYXJhbSBsb2NrIC0gQSBQcm9taXNlRXhlY3V0b3IgdG8gY29udHJvbCB0aGUgYXN5bmNocm9ub3VzIGZsb3cuXG4gKiBAcGFyYW0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzICh1bnVzZWQgaW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24pLlxuICpcbiAqIEBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRPdXRwdXRXcml0ZXI8UiA9IHN0cmluZz4gaW1wbGVtZW50cyBPdXRwdXRXcml0ZXIge1xuICBwcm90ZWN0ZWQgbG9nZ2VyOiBWZXJib3NpdHlMb2dnZXI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiBTdGFuZGFyZE91dHB1dFdyaXRlci5cbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyB0aGUgU3RhbmRhcmRPdXRwdXRXcml0ZXIgd2l0aCBhIGxvY2sgbWVjaGFuaXNtIGFuZCBvcHRpb25hbCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBjbWRcbiAgICogQHBhcmFtIGxvY2sgLSBBIFByb21pc2VFeGVjdXRvciB0byBjb250cm9sIHRoZSBhc3luY2hyb25vdXMgZmxvdy5cbiAgICogQHBhcmFtIGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyAoY3VycmVudGx5IHVudXNlZCkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY21kOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGxvY2s6IFByb21pc2VFeGVjdXRvcjxSPixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgLi4uYXJnczogdW5rbm93bltdXG4gICkge1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2luZy5mb3IodGhpcy5jbWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dzIG91dHB1dCB0byB0aGUgY29uc29sZS5cbiAgICogQHN1bW1hcnkgRm9ybWF0cyBhbmQgbG9ncyB0aGUgZ2l2ZW4gZGF0YSB3aXRoIGEgdGltZXN0YW1wIGFuZCB0eXBlIGluZGljYXRvci5cbiAgICpcbiAgICogQHBhcmFtIHR5cGUgLSBUaGUgdHlwZSBvZiBvdXRwdXQgKHN0ZG91dCBvciBzdGRlcnIpLlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGJlIGxvZ2dlZC5cbiAgICovXG4gIHByb3RlY3RlZCBsb2codHlwZTogT3V0cHV0VHlwZSwgZGF0YTogc3RyaW5nIHwgQnVmZmVyKSB7XG4gICAgZGF0YSA9IEJ1ZmZlci5pc0J1ZmZlcihkYXRhKSA/IGRhdGEudG9TdHJpbmcoRW5jb2RpbmcpIDogZGF0YTtcbiAgICBjb25zdCBsb2cgPSB0eXBlID09PSBcInN0ZGVyclwiID8gc3R5bGUoZGF0YSkucmVkLnRleHQgOiBkYXRhO1xuICAgIHRoaXMubG9nZ2VyLmluZm8obG9nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBzdGFuZGFyZCBvdXRwdXQgZGF0YS5cbiAgICogQHN1bW1hcnkgTG9ncyB0aGUgZ2l2ZW4gY2h1bmsgYXMgc3RhbmRhcmQgb3V0cHV0LlxuICAgKlxuICAgKiBAcGFyYW0gY2h1bmsgLSBUaGUgZGF0YSBjaHVuayB0byBiZSBsb2dnZWQuXG4gICAqL1xuICBkYXRhKGNodW5rOiBhbnkpIHtcbiAgICB0aGlzLmxvZyhcInN0ZG91dFwiLCBTdHJpbmcoY2h1bmspKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBlcnJvciBvdXRwdXQgZGF0YS5cbiAgICogQHN1bW1hcnkgTG9ncyB0aGUgZ2l2ZW4gY2h1bmsgYXMgZXJyb3Igb3V0cHV0LlxuICAgKlxuICAgKiBAcGFyYW0gY2h1bmsgLSBUaGUgZXJyb3IgZGF0YSBjaHVuayB0byBiZSBsb2dnZWQuXG4gICAqL1xuICBlcnJvcihjaHVuazogYW55KSB7XG4gICAgdGhpcy5sb2coXCJzdGRlcnJcIiwgU3RyaW5nKGNodW5rKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgZXJyb3Igb2JqZWN0cy5cbiAgICogQHN1bW1hcnkgTG9ncyB0aGUgZXJyb3IgbWVzc2FnZSBmcm9tIHRoZSBnaXZlbiBFcnJvciBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBlcnIgLSBUaGUgRXJyb3Igb2JqZWN0IHRvIGJlIGxvZ2dlZC5cbiAgICovXG4gIGVycm9ycyhlcnI6IEVycm9yKSB7XG4gICAgdGhpcy5sb2coXCJzdGRlcnJcIiwgYEVycm9yIGV4ZWN1dGluZyBjb21tYW5kIGV4aXRlZCA6ICR7ZXJyfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHRoZSBleGl0IG9mIGEgY29tbWFuZC5cbiAgICogQHN1bW1hcnkgTG9ncyB0aGUgZXhpdCBjb2RlIGFuZCByZXNvbHZlcyBvciByZWplY3RzIHRoZSBwcm9taXNlIGJhc2VkIG9uIHRoZSBjb2RlLlxuICAgKlxuICAgKiBAcGFyYW0gY29kZSAtIFRoZSBleGl0IGNvZGUgb2YgdGhlIGNvbW1hbmQuXG4gICAqIEBwYXJhbSBsb2dzXG4gICAqL1xuICBleGl0KGNvZGU6IG51bWJlciB8IHN0cmluZywgbG9nczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmxvZyhcbiAgICAgIFwic3Rkb3V0XCIsXG4gICAgICBgY29tbWFuZCBleGl0ZWQgY29kZSA6ICR7Y29kZSA9PT0gMCA/IHN0eWxlKGNvZGUudG9TdHJpbmcoKSkuZ3JlZW4udGV4dCA6IHN0eWxlKGNvZGUgPT09IG51bGwgPyBcIm51bGxcIiA6IGNvZGUudG9TdHJpbmcoKSkucmVkLnRleHR9YFxuICAgICk7XG4gICAgaWYgKGNvZGUgPT09IDApIHtcbiAgICAgIHRoaXMucmVzb2x2ZShsb2dzLm1hcCgobCkgPT4gbC50cmltKCkpLmpvaW4oXCJcXG5cIikgYXMgUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVqZWN0KG5ldyBFcnJvcihsb2dzLmxlbmd0aCA/IGxvZ3Muam9pbihcIlxcblwiKSA6IGNvZGUudG9TdHJpbmcoKSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGEgY29tbWFuZCBzdHJpbmcgb3IgYXJyYXkgaW50byBjb21wb25lbnRzLlxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyB0aGUgY29tbWFuZCBpbnRvIGEgY29uc2lzdGVudCBmb3JtYXQgYW5kIHN0b3JlcyBpdCwgdGhlbiByZXR1cm5zIGl0IHNwbGl0IGludG8gY29tbWFuZCBhbmQgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIGFzIGEgc3RyaW5nIG9yIGFycmF5IG9mIHN0cmluZ3MuXG4gICAqIEByZXR1cm4gQSB0dXBsZSBjb250YWluaW5nIHRoZSBjb21tYW5kIGFuZCBpdHMgYXJndW1lbnRzIGFzIHNlcGFyYXRlIGVsZW1lbnRzLlxuICAgKi9cbiAgcGFyc2VDb21tYW5kKGNvbW1hbmQ6IHN0cmluZyB8IHN0cmluZ1tdKTogW3N0cmluZywgc3RyaW5nW11dIHtcbiAgICBjb21tYW5kID0gdHlwZW9mIGNvbW1hbmQgPT09IFwic3RyaW5nXCIgPyBjb21tYW5kLnNwbGl0KFwiIFwiKSA6IGNvbW1hbmQ7XG4gICAgdGhpcy5jbWQgPSBjb21tYW5kLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiBbY29tbWFuZFswXSwgY29tbWFuZC5zbGljZSgxKV07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHRoZSBwcm9taXNlIHdpdGggYSBzdWNjZXNzIG1lc3NhZ2UuXG4gICAqIEBzdW1tYXJ5IExvZ3MgYSBzdWNjZXNzIG1lc3NhZ2UgYW5kIHJlc29sdmVzIHRoZSBwcm9taXNlIHdpdGggdGhlIGdpdmVuIHJlYXNvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlYXNvbiAtIFRoZSByZWFzb24gZm9yIHJlc29sdmluZyB0aGUgcHJvbWlzZS5cbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlKHJlYXNvbjogUikge1xuICAgIHRoaXMubG9nKFxuICAgICAgXCJzdGRvdXRcIixcbiAgICAgIGAke3RoaXMuY21kfSBleGVjdXRlZCBzdWNjZXNzZnVsbHk6ICR7c3R5bGUocmVhc29uID8gXCJyYW4gdG8gY29tcGxldGlvblwiIDogKHJlYXNvbiBhcyBzdHJpbmcpKS5ncmVlbn1gXG4gICAgKTtcbiAgICB0aGlzLmxvY2sucmVzb2x2ZShyZWFzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWplY3RzIHRoZSBwcm9taXNlIHdpdGggYW4gZXJyb3IgbWVzc2FnZS5cbiAgICogQHN1bW1hcnkgTG9ncyBhbiBlcnJvciBtZXNzYWdlIGFuZCByZWplY3RzIHRoZSBwcm9taXNlIHdpdGggdGhlIGdpdmVuIHJlYXNvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlYXNvbiAtIFRoZSByZWFzb24gZm9yIHJlamVjdGluZyB0aGUgcHJvbWlzZSwgZWl0aGVyIGEgbnVtYmVyIChleGl0IGNvZGUpIG9yIGEgc3RyaW5nLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlamVjdChyZWFzb246IG51bWJlciB8IHN0cmluZyB8IEVycm9yKSB7XG4gICAgaWYgKCEocmVhc29uIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICByZWFzb24gPSBuZXcgRXJyb3IoXG4gICAgICAgIHR5cGVvZiByZWFzb24gPT09IFwibnVtYmVyXCIgPyBgRXhpdCBjb2RlICR7cmVhc29ufWAgOiByZWFzb25cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMubG9nKFxuICAgICAgXCJzdGRlcnJcIixcbiAgICAgIGAke3RoaXMuY21kfSBmYWlsZWQgdG8gZXhlY3V0ZTogJHtzdHlsZShyZWFzb24ubWVzc2FnZSkucmVkfWBcbiAgICApO1xuICAgIHRoaXMubG9jay5yZWplY3QocmVhc29uKTtcbiAgfVxufVxuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhcmRPdXRwdXRXcml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd3JpdGVycy9TdGFuZGFyZE91dHB1dFdyaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBOEM7QUFJOUMsaUVBQThDO0FBQzlDLCtDQUFvRDtBQUVwRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxvQkFBb0I7SUFHL0I7Ozs7Ozs7T0FPRztJQUNILFlBQ1ksR0FBVyxFQUNYLElBQXdCO0lBQ2xDLDZEQUE2RDtJQUM3RCxHQUFHLElBQWU7UUFIUixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsU0FBSSxHQUFKLElBQUksQ0FBb0I7UUFJbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLEdBQUcsQ0FBQyxJQUFnQixFQUFFLElBQXFCO1FBQ25ELElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsNkJBQUssRUFBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEtBQVU7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7O09BS0c7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QU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQS9IRCxvREErSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmNvZGluZyB9IGZyb20gXCIuLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCB7IE91dHB1dFdyaXRlciB9IGZyb20gXCIuL091dHB1dFdyaXRlclwiO1xuaW1wb3J0IHsgUHJvbWlzZUV4ZWN1dG9yIH0gZnJvbSBcIi4uL3V0aWxzL3R5cGVzXCI7XG5pbXBvcnQgeyBPdXRwdXRUeXBlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHN0eWxlIH0gZnJvbSBcInN0eWxlZC1zdHJpbmctYnVpbGRlclwiO1xuaW1wb3J0IHsgTG9nZ2VyLCBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEEgc3RhbmRhcmQgb3V0cHV0IHdyaXRlciBmb3IgaGFuZGxpbmcgY29tbWFuZCBleGVjdXRpb24gb3V0cHV0LlxuICogQHN1bW1hcnkgVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBPdXRwdXRXcml0ZXIgaW50ZXJmYWNlIGFuZCBwcm92aWRlcyBtZXRob2RzIGZvclxuICogaGFuZGxpbmcgdmFyaW91cyB0eXBlcyBvZiBvdXRwdXQgZnJvbSBjb21tYW5kIGV4ZWN1dGlvbiwgaW5jbHVkaW5nIHN0YW5kYXJkIG91dHB1dCxcbiAqIGVycm9yIG91dHB1dCwgYW5kIGV4aXQgY29kZXMuIEl0IGFsc28gaW5jbHVkZXMgdXRpbGl0eSBtZXRob2RzIGZvciBwYXJzaW5nIGNvbW1hbmRzXG4gKiBhbmQgcmVzb2x2aW5nIG9yIHJlamVjdGluZyBwcm9taXNlcyBiYXNlZCBvbiBleGVjdXRpb24gcmVzdWx0cy5cbiAqXG4gKiBAdGVtcGxhdGUgUiAtIFRoZSB0eXBlIG9mIHRoZSByZXNvbHZlZCB2YWx1ZSwgZGVmYXVsdGluZyB0byBudW1iZXIuXG4gKlxuICogQHBhcmFtIGxvY2sgLSBBIFByb21pc2VFeGVjdXRvciB0byBjb250cm9sIHRoZSBhc3luY2hyb25vdXMgZmxvdy5cbiAqIEBwYXJhbSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgKHVudXNlZCBpbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbikuXG4gKlxuICogQGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZE91dHB1dFdyaXRlcjxSID0gc3RyaW5nPiBpbXBsZW1lbnRzIE91dHB1dFdyaXRlciB7XG4gIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIFN0YW5kYXJkT3V0cHV0V3JpdGVyLlxuICAgKiBAc3VtbWFyeSBDb25zdHJ1Y3RzIHRoZSBTdGFuZGFyZE91dHB1dFdyaXRlciB3aXRoIGEgbG9jayBtZWNoYW5pc20gYW5kIG9wdGlvbmFsIGFyZ3VtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIGNtZFxuICAgKiBAcGFyYW0gbG9jayAtIEEgUHJvbWlzZUV4ZWN1dG9yIHRvIGNvbnRyb2wgdGhlIGFzeW5jaHJvbm91cyBmbG93LlxuICAgKiBAcGFyYW0gYXJncyAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIChjdXJyZW50bHkgdW51c2VkKS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjbWQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgbG9jazogUHJvbWlzZUV4ZWN1dG9yPFI+LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAuLi5hcmdzOiB1bmtub3duW11cbiAgKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBMb2dnaW5nLmZvcih0aGlzLmNtZCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExvZ3Mgb3V0cHV0IHRvIHRoZSBjb25zb2xlLlxuICAgKiBAc3VtbWFyeSBGb3JtYXRzIGFuZCBsb2dzIHRoZSBnaXZlbiBkYXRhIHdpdGggYSB0aW1lc3RhbXAgYW5kIHR5cGUgaW5kaWNhdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIG9mIG91dHB1dCAoc3Rkb3V0IG9yIHN0ZGVycikuXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gYmUgbG9nZ2VkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGxvZyh0eXBlOiBPdXRwdXRUeXBlLCBkYXRhOiBzdHJpbmcgfCBCdWZmZXIpIHtcbiAgICBkYXRhID0gQnVmZmVyLmlzQnVmZmVyKGRhdGEpID8gZGF0YS50b1N0cmluZyhFbmNvZGluZykgOiBkYXRhO1xuICAgIGNvbnN0IGxvZyA9IHR5cGUgPT09IFwic3RkZXJyXCIgPyBzdHlsZShkYXRhKS5yZWQudGV4dCA6IGRhdGE7XG4gICAgdGhpcy5sb2dnZXIuaW5mbyhsb2cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHN0YW5kYXJkIG91dHB1dCBkYXRhLlxuICAgKiBAc3VtbWFyeSBMb2dzIHRoZSBnaXZlbiBjaHVuayBhcyBzdGFuZGFyZCBvdXRwdXQuXG4gICAqXG4gICAqIEBwYXJhbSBjaHVuayAtIFRoZSBkYXRhIGNodW5rIHRvIGJlIGxvZ2dlZC5cbiAgICovXG4gIGRhdGEoY2h1bms6IGFueSkge1xuICAgIHRoaXMubG9nKFwic3Rkb3V0XCIsIFN0cmluZyhjaHVuaykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIGVycm9yIG91dHB1dCBkYXRhLlxuICAgKiBAc3VtbWFyeSBMb2dzIHRoZSBnaXZlbiBjaHVuayBhcyBlcnJvciBvdXRwdXQuXG4gICAqXG4gICAqIEBwYXJhbSBjaHVuayAtIFRoZSBlcnJvciBkYXRhIGNodW5rIHRvIGJlIGxvZ2dlZC5cbiAgICovXG4gIGVycm9yKGNodW5rOiBhbnkpIHtcbiAgICB0aGlzLmxvZyhcInN0ZGVyclwiLCBTdHJpbmcoY2h1bmspKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gSGFuZGxlcyBlcnJvciBvYmplY3RzLlxuICAgKiBAc3VtbWFyeSBMb2dzIHRoZSBlcnJvciBtZXNzYWdlIGZyb20gdGhlIGdpdmVuIEVycm9yIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIGVyciAtIFRoZSBFcnJvciBvYmplY3QgdG8gYmUgbG9nZ2VkLlxuICAgKi9cbiAgZXJyb3JzKGVycjogRXJyb3IpIHtcbiAgICB0aGlzLmxvZyhcInN0ZGVyclwiLCBgRXJyb3IgZXhlY3V0aW5nIGNvbW1hbmQgZXhpdGVkIDogJHtlcnJ9YCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEhhbmRsZXMgdGhlIGV4aXQgb2YgYSBjb21tYW5kLlxuICAgKiBAc3VtbWFyeSBMb2dzIHRoZSBleGl0IGNvZGUgYW5kIHJlc29sdmVzIG9yIHJlamVjdHMgdGhlIHByb21pc2UgYmFzZWQgb24gdGhlIGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSBjb2RlIC0gVGhlIGV4aXQgY29kZSBvZiB0aGUgY29tbWFuZC5cbiAgICogQHBhcmFtIGxvZ3NcbiAgICovXG4gIGV4aXQoY29kZTogbnVtYmVyIHwgc3RyaW5nLCBsb2dzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubG9nKFxuICAgICAgXCJzdGRvdXRcIixcbiAgICAgIGBjb21tYW5kIGV4aXRlZCBjb2RlIDogJHtjb2RlID09PSAwID8gc3R5bGUoY29kZS50b1N0cmluZygpKS5ncmVlbi50ZXh0IDogc3R5bGUoY29kZSA9PT0gbnVsbCA/IFwibnVsbFwiIDogY29kZS50b1N0cmluZygpKS5yZWQudGV4dH1gXG4gICAgKTtcbiAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgdGhpcy5yZXNvbHZlKGxvZ3MubWFwKChsKSA9PiBsLnRyaW0oKSkuam9pbihcIlxcblwiKSBhcyBSKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWplY3QobmV3IEVycm9yKGxvZ3MubGVuZ3RoID8gbG9ncy5qb2luKFwiXFxuXCIpIDogY29kZS50b1N0cmluZygpKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYSBjb21tYW5kIHN0cmluZyBvciBhcnJheSBpbnRvIGNvbXBvbmVudHMuXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIHRoZSBjb21tYW5kIGludG8gYSBjb25zaXN0ZW50IGZvcm1hdCBhbmQgc3RvcmVzIGl0LCB0aGVuIHJldHVybnMgaXQgc3BsaXQgaW50byBjb21tYW5kIGFuZCBhcmd1bWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGNvbW1hbmQgYXMgYSBzdHJpbmcgb3IgYXJyYXkgb2Ygc3RyaW5ncy5cbiAgICogQHJldHVybiBBIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGNvbW1hbmQgYW5kIGl0cyBhcmd1bWVudHMgYXMgc2VwYXJhdGUgZWxlbWVudHMuXG4gICAqL1xuICBwYXJzZUNvbW1hbmQoY29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW10pOiBbc3RyaW5nLCBzdHJpbmdbXV0ge1xuICAgIGNvbW1hbmQgPSB0eXBlb2YgY29tbWFuZCA9PT0gXCJzdHJpbmdcIiA/IGNvbW1hbmQuc3BsaXQoXCIgXCIpIDogY29tbWFuZDtcbiAgICB0aGlzLmNtZCA9IGNvbW1hbmQuam9pbihcIiBcIik7XG4gICAgcmV0dXJuIFtjb21tYW5kWzBdLCBjb21tYW5kLnNsaWNlKDEpXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVzb2x2ZXMgdGhlIHByb21pc2Ugd2l0aCBhIHN1Y2Nlc3MgbWVzc2FnZS5cbiAgICogQHN1bW1hcnkgTG9ncyBhIHN1Y2Nlc3MgbWVzc2FnZSBhbmQgcmVzb2x2ZXMgdGhlIHByb21pc2Ugd2l0aCB0aGUgZ2l2ZW4gcmVhc29uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVhc29uIC0gVGhlIHJlYXNvbiBmb3IgcmVzb2x2aW5nIHRoZSBwcm9taXNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmUocmVhc29uOiBSKSB7XG4gICAgdGhpcy5sb2coXG4gICAgICBcInN0ZG91dFwiLFxuICAgICAgYCR7dGhpcy5jbWR9IGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseTogJHtzdHlsZShyZWFzb24gPyBcInJhbiB0byBjb21wbGV0aW9uXCIgOiAocmVhc29uIGFzIHN0cmluZykpLmdyZWVufWBcbiAgICApO1xuICAgIHRoaXMubG9jay5yZXNvbHZlKHJlYXNvbik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlamVjdHMgdGhlIHByb21pc2Ugd2l0aCBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBAc3VtbWFyeSBMb2dzIGFuIGVycm9yIG1lc3NhZ2UgYW5kIHJlamVjdHMgdGhlIHByb21pc2Ugd2l0aCB0aGUgZ2l2ZW4gcmVhc29uLlxuICAgKlxuICAgKiBAcGFyYW0gcmVhc29uIC0gVGhlIHJlYXNvbiBmb3IgcmVqZWN0aW5nIHRoZSBwcm9taXNlLCBlaXRoZXIgYSBudW1iZXIgKGV4aXQgY29kZSkgb3IgYSBzdHJpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVqZWN0KHJlYXNvbjogbnVtYmVyIHwgc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBpZiAoIShyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgIHJlYXNvbiA9IG5ldyBFcnJvcihcbiAgICAgICAgdHlwZW9mIHJlYXNvbiA9PT0gXCJudW1iZXJcIiA/IGBFeGl0IGNvZGUgJHtyZWFzb259YCA6IHJlYXNvblxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5sb2coXG4gICAgICBcInN0ZGVyclwiLFxuICAgICAgYCR7dGhpcy5jbWR9IGZhaWxlZCB0byBleGVjdXRlOiAke3N0eWxlKHJlYXNvbi5tZXNzYWdlKS5yZWR9YFxuICAgICk7XG4gICAgdGhpcy5sb2NrLnJlamVjdChyZWFzb24pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OutputWriter } from "./OutputWriter";
|
|
2
2
|
import { PromiseExecutor } from "../utils/types";
|
|
3
3
|
import { OutputType } from "./types";
|
|
4
|
-
import {
|
|
4
|
+
import { Logger } from "@decaf-ts/logging";
|
|
5
5
|
/**
|
|
6
6
|
* @description A standard output writer for handling command execution output.
|
|
7
7
|
* @summary This class implements the OutputWriter interface and provides methods for
|
|
@@ -19,7 +19,7 @@ import { VerbosityLogger } from "../output/types";
|
|
|
19
19
|
export declare class StandardOutputWriter<R = string> implements OutputWriter {
|
|
20
20
|
protected cmd: string;
|
|
21
21
|
protected lock: PromiseExecutor<R>;
|
|
22
|
-
protected logger:
|
|
22
|
+
protected logger: Logger;
|
|
23
23
|
/**
|
|
24
24
|
* @description Initializes a new instance of StandardOutputWriter.
|
|
25
25
|
* @summary Constructs the StandardOutputWriter with a lock mechanism and optional arguments.
|
package/lib/writers/index.cjs
CHANGED
|
File without changes
|
package/lib/writers/index.d.ts
CHANGED
|
File without changes
|
package/lib/writers/types.cjs
CHANGED
|
File without changes
|
package/lib/writers/types.d.ts
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/utils",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
4
4
|
"description": "module management utils for decaf-ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"do-install": "TOKEN=$(cat .token) npm install",
|
|
18
|
+
"update-dependencies": "PREFIX=\"decaf-ts\"; npm ls | grep \"$PREFIX\" | awk -F/ '{print $NF}' | sed 's/@.*//' | xargs -I package npm update @\"$PREFIX\"/package",
|
|
18
19
|
"update-scripts": "node ./bin/update-scripts.cjs",
|
|
19
20
|
"on-first-run": "node ./bin/update-scripts.cjs --boot",
|
|
20
21
|
"set-git-auth": "git config url.\"https://api:$(cat .token)@github.com/\".insteadOf \"https://github.com/\" && git config url.\"https://ssh:$(cat .token)@github.com/\".insteadOf \"ssh://git@github.com/\" && git config url.\"https://git:$(cat .token)@github.com/\".insteadOf \"git@github.com:\"",
|
|
@@ -113,7 +114,9 @@
|
|
|
113
114
|
"typescript-eslint": "^8.31.0"
|
|
114
115
|
},
|
|
115
116
|
"dependencies": {
|
|
117
|
+
"@decaf-ts/logging": "^0.2.0",
|
|
116
118
|
"prompts": "^2.4.2",
|
|
117
|
-
"styled-string-builder": "^1.4.6"
|
|
119
|
+
"styled-string-builder": "^1.4.6",
|
|
120
|
+
"typed-object-accumulator": "^0.1.1"
|
|
118
121
|
}
|
|
119
122
|
}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { LogLevel } from "../utils/constants";
|
|
2
|
-
import { LoggingConfig, LoggingContext, StringLike, Theme, VerbosityLogger } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
* @description A minimal logger implementation.
|
|
5
|
-
* @summary MiniLogger is a lightweight logging class that implements the VerbosityLogger interface.
|
|
6
|
-
* It provides basic logging functionality with support for different log levels and verbosity.
|
|
7
|
-
*
|
|
8
|
-
* @class
|
|
9
|
-
*/
|
|
10
|
-
export declare class MiniLogger implements VerbosityLogger {
|
|
11
|
-
protected context: string;
|
|
12
|
-
protected conf?: Partial<LoggingConfig> | undefined;
|
|
13
|
-
protected id?: string | undefined;
|
|
14
|
-
/**
|
|
15
|
-
* @description Creates a new MiniLogger instance.
|
|
16
|
-
* @summary Initializes a MiniLogger with the given class name, optional configuration, and method name.
|
|
17
|
-
*
|
|
18
|
-
* @param context - The name of the class using this logger.
|
|
19
|
-
* @param [conf] - Optional logging configuration. Defaults to Info level and verbosity 0.
|
|
20
|
-
* @param [id] - Optional unique identifier for the logger instance.
|
|
21
|
-
*/
|
|
22
|
-
constructor(context: string, conf?: Partial<LoggingConfig> | undefined, id?: string | undefined);
|
|
23
|
-
protected config(key: keyof LoggingConfig): LoggingConfig[keyof LoggingConfig];
|
|
24
|
-
for(method?: string | ((...args: any[]) => any), config?: Partial<LoggingConfig>): VerbosityLogger;
|
|
25
|
-
/**
|
|
26
|
-
* @description Creates a formatted log string.
|
|
27
|
-
* @summary Generates a log string with timestamp, colored log level, and message.
|
|
28
|
-
*
|
|
29
|
-
* @param level - The log level as a string.
|
|
30
|
-
* @param message
|
|
31
|
-
* @param stack
|
|
32
|
-
* @return A formatted log string.
|
|
33
|
-
*/
|
|
34
|
-
protected createLog(level: LogLevel, message: StringLike | Error, stack?: string): string;
|
|
35
|
-
/**
|
|
36
|
-
* @description Logs a message with the specified log level.
|
|
37
|
-
* @summary Checks if the message should be logged based on the current log level,
|
|
38
|
-
* then uses the appropriate console method to output the log.
|
|
39
|
-
*
|
|
40
|
-
* @param level - The log level of the message.
|
|
41
|
-
* @param msg - The message to be logged.
|
|
42
|
-
* @param stack
|
|
43
|
-
*/
|
|
44
|
-
protected log(level: LogLevel, msg: StringLike | Error, stack?: string): void;
|
|
45
|
-
/**
|
|
46
|
-
* @description LLogs a `way too verbose` or a silly message.
|
|
47
|
-
* @summary Logs a message at the Silly level if the current verbosity allows it.
|
|
48
|
-
*
|
|
49
|
-
* @param msg - The message to be logged.
|
|
50
|
-
* @param verbosity - The verbosity level of the message (default: 0).
|
|
51
|
-
*/
|
|
52
|
-
silly(msg: StringLike, verbosity?: number): void;
|
|
53
|
-
/**
|
|
54
|
-
* @description Logs a verbose message.
|
|
55
|
-
* @summary Logs a message at the Verbose level if the current verbosity allows it.
|
|
56
|
-
*
|
|
57
|
-
* @param msg - The message to be logged.
|
|
58
|
-
* @param verbosity - The verbosity level of the message (default: 0).
|
|
59
|
-
*/
|
|
60
|
-
verbose(msg: StringLike, verbosity?: number): void;
|
|
61
|
-
/**
|
|
62
|
-
* @description Logs an info message.
|
|
63
|
-
* @summary Logs a message at the Info level.
|
|
64
|
-
*
|
|
65
|
-
* @param msg - The message to be logged.
|
|
66
|
-
*/
|
|
67
|
-
info(msg: StringLike): void;
|
|
68
|
-
/**
|
|
69
|
-
* @description Logs a debug message.
|
|
70
|
-
* @summary Logs a message at the Debug level.
|
|
71
|
-
*
|
|
72
|
-
* @param msg - The message to be logged.
|
|
73
|
-
*/
|
|
74
|
-
debug(msg: StringLike): void;
|
|
75
|
-
/**
|
|
76
|
-
* @description Logs an error message.
|
|
77
|
-
* @summary Logs a message at the Error level.
|
|
78
|
-
*
|
|
79
|
-
* @param msg - The message to be logged.
|
|
80
|
-
*/
|
|
81
|
-
error(msg: StringLike | Error): void;
|
|
82
|
-
setConfig(config: Partial<LoggingConfig>): void;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* @description A static class for managing logging operations.
|
|
86
|
-
* @summary The Logging class provides a centralized logging mechanism with support for
|
|
87
|
-
* different log levels and verbosity. It uses a singleton pattern to maintain a global
|
|
88
|
-
* logger instance and allows creating specific loggers for different classes and methods.
|
|
89
|
-
*
|
|
90
|
-
* @class
|
|
91
|
-
*/
|
|
92
|
-
export declare class Logging {
|
|
93
|
-
/**
|
|
94
|
-
* @description The global logger instance.
|
|
95
|
-
* @summary A singleton instance of VerbosityLogger used for global logging.
|
|
96
|
-
*/
|
|
97
|
-
private static global?;
|
|
98
|
-
/**
|
|
99
|
-
* @description Factory function for creating logger instances.
|
|
100
|
-
* @summary A function that creates new VerbosityLogger instances. By default, it creates a MiniLogger.
|
|
101
|
-
*/
|
|
102
|
-
private static _factory;
|
|
103
|
-
/**
|
|
104
|
-
* @description Configuration for the logging system.
|
|
105
|
-
* @summary Stores the global verbosity level and log level settings.
|
|
106
|
-
*/
|
|
107
|
-
private static _config;
|
|
108
|
-
/**
|
|
109
|
-
* @description Private constructor to prevent instantiation.
|
|
110
|
-
* @summary Ensures that the Logging class cannot be instantiated as it's designed to be used statically.
|
|
111
|
-
*/
|
|
112
|
-
private constructor();
|
|
113
|
-
/**
|
|
114
|
-
* @description Setter for the logging configuration.
|
|
115
|
-
* @summary Allows updating the global logging configuration.
|
|
116
|
-
*
|
|
117
|
-
* @param config - An object containing verbosity and log level settings.
|
|
118
|
-
*/
|
|
119
|
-
static setConfig(config: Partial<LoggingConfig>): void;
|
|
120
|
-
static getConfig(): LoggingConfig;
|
|
121
|
-
/**
|
|
122
|
-
* @description Retrieves or creates the global logger instance.
|
|
123
|
-
* @summary Returns the existing global logger or creates a new one if it doesn't exist.
|
|
124
|
-
*
|
|
125
|
-
* @return The global VerbosityLogger instance.
|
|
126
|
-
*/
|
|
127
|
-
static get(): VerbosityLogger;
|
|
128
|
-
/**
|
|
129
|
-
* @description Logs a verbose message.
|
|
130
|
-
* @summary Delegates the verbose logging to the global logger instance.
|
|
131
|
-
*
|
|
132
|
-
* @param msg - The message to be logged.
|
|
133
|
-
* @param verbosity - The verbosity level of the message (default: 0).
|
|
134
|
-
*/
|
|
135
|
-
static verbose(msg: StringLike, verbosity?: number): void;
|
|
136
|
-
/**
|
|
137
|
-
* @description Logs an info message.
|
|
138
|
-
* @summary Delegates the info logging to the global logger instance.
|
|
139
|
-
*
|
|
140
|
-
* @param msg - The message to be logged.
|
|
141
|
-
*/
|
|
142
|
-
static info(msg: StringLike): void;
|
|
143
|
-
/**
|
|
144
|
-
* @description Logs a debug message.
|
|
145
|
-
* @summary Delegates the debug logging to the global logger instance.
|
|
146
|
-
*
|
|
147
|
-
* @param msg - The message to be logged.
|
|
148
|
-
*/
|
|
149
|
-
static debug(msg: StringLike): void;
|
|
150
|
-
/**
|
|
151
|
-
* @description Logs a silly message.
|
|
152
|
-
* @summary Delegates the debug logging to the global logger instance.
|
|
153
|
-
*
|
|
154
|
-
* @param msg - The message to be logged.
|
|
155
|
-
*/
|
|
156
|
-
static silly(msg: StringLike): void;
|
|
157
|
-
/**
|
|
158
|
-
* @description Logs an error message.
|
|
159
|
-
* @summary Delegates the error logging to the global logger instance.
|
|
160
|
-
*
|
|
161
|
-
* @param msg - The message to be logged.
|
|
162
|
-
*/
|
|
163
|
-
static error(msg: StringLike): void;
|
|
164
|
-
static for(object: LoggingContext, id?: string | Partial<LoggingConfig>, config?: Partial<LoggingConfig>): VerbosityLogger;
|
|
165
|
-
/**
|
|
166
|
-
* @description Creates a logger for a specific reason or context.
|
|
167
|
-
*
|
|
168
|
-
* @summary This static method creates a new logger instance using the factory function,
|
|
169
|
-
* based on a given reason or context.
|
|
170
|
-
*
|
|
171
|
-
* @param reason - A string describing the reason or context for creating this logger.
|
|
172
|
-
* @param id
|
|
173
|
-
* @returns A new VerbosityLogger or ClassLogger instance.
|
|
174
|
-
*/
|
|
175
|
-
static because(reason: string, id?: string): VerbosityLogger;
|
|
176
|
-
static theme(text: string, type: keyof Theme | keyof LogLevel, loggerLevel: LogLevel, template?: Theme): string;
|
|
177
|
-
}
|