Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

codemaker

Package Overview
Dependencies
Maintainers
5
Versions
195
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

codemaker - npm Package Compare versions

Comparing version 1.5.0 to 1.6.0

8

lib/case-utils.js

@@ -5,7 +5,3 @@ "use strict";

const decamelize = require("decamelize");
const COMMON_ABBREVIATIONS = [
'KiB',
'MiB',
'GiB',
];
const COMMON_ABBREVIATIONS = ['KiB', 'MiB', 'GiB'];
function toCamelCase(...args) {

@@ -32,2 +28,2 @@ return camelcase(args);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhc2UtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBdUM7QUFDdkMseUNBQXlDO0FBRXpDLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0NBQ04sQ0FBQztBQUVGLFNBQWdCLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFDM0MsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUZELGtDQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLEdBQUcsSUFBYztJQUM1QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRkQsb0NBRUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxjQUFjLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM3RyxTQUFnQixXQUFXLENBQUMsQ0FBUyxFQUFFLEdBQUcsR0FBRyxHQUFHO0lBQzlDLDJCQUEyQjtJQUMzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDbkcsT0FBTyxVQUFVLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTFCLFNBQVMsT0FBTyxDQUFDLEdBQVc7UUFDMUIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RFLENBQUM7QUFDSCxDQUFDO0FBUkQsa0NBUUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxDQUFTO0lBQzNCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2FtZWxjYXNlIGZyb20gJ2NhbWVsY2FzZSc7XG5pbXBvcnQgKiBhcyBkZWNhbWVsaXplIGZyb20gJ2RlY2FtZWxpemUnO1xuXG5jb25zdCBDT01NT05fQUJCUkVWSUFUSU9OUyA9IFtcbiAgJ0tpQicsXG4gICdNaUInLFxuICAnR2lCJyxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0NhbWVsQ2FzZSguLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBjYW1lbGNhc2UoYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1Bhc2NhbENhc2UoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gY2FtZWxjYXNlKGFyZ3MsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbn1cblxuY29uc3QgQUJCUkVWX1JFID0gbmV3IFJlZ0V4cChgKF58W15BLVpdKSgke0NPTU1PTl9BQkJSRVZJQVRJT05TLm1hcChyZWdleFF1b3RlKS5qb2luKCd8Jyl9KSgkfFteYS16XSlgLCAnZycpO1xuZXhwb3J0IGZ1bmN0aW9uIHRvU25ha2VDYXNlKHM6IHN0cmluZywgc2VwID0gJ18nKTogc3RyaW5nIHtcbiAgLy8gU2F2ZSBjb21tb24gYWJicmV2YXRpb25zXG4gIHMgPSBzLnJlcGxhY2UoQUJCUkVWX1JFLCAoXywgYmVmb3JlLCBhYmJyLCBhZnRlcikgPT4gYmVmb3JlICsgdWNmaXJzdChhYmJyLnRvTG93ZXJDYXNlKCkpICsgYWZ0ZXIpO1xuICByZXR1cm4gZGVjYW1lbGl6ZShzLCBzZXApO1xuXG4gIGZ1bmN0aW9uIHVjZmlyc3Qoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpICsgc3RyLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlZ2V4UXVvdGUoczogc3RyaW5nKSB7XG4gIHJldHVybiBzLnJlcGxhY2UoL1suPyorXiRbXFxdXFxcXCgpe318LV0vZywgJ1xcXFwkJicpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNhc2UtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBdUM7QUFDdkMseUNBQXlDO0FBRXpDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRW5ELFNBQWdCLFdBQVcsQ0FBQyxHQUFHLElBQWM7SUFDM0MsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUZELGtDQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLEdBQUcsSUFBYztJQUM1QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRkQsb0NBRUM7QUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FDMUIsY0FBYyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQ3pFLEdBQUcsQ0FDSixDQUFDO0FBQ0YsU0FBZ0IsV0FBVyxDQUFDLENBQVMsRUFBRSxHQUFHLEdBQUcsR0FBRztJQUM5QywyQkFBMkI7SUFDM0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQ1gsU0FBUyxFQUNULENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FDekUsQ0FBQztJQUNGLE9BQU8sVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUxQixTQUFTLE9BQU8sQ0FBQyxHQUFXO1FBQzFCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0FBQ0gsQ0FBQztBQVhELGtDQVdDO0FBRUQsU0FBUyxVQUFVLENBQUMsQ0FBUztJQUMzQixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNhbWVsY2FzZSBmcm9tICdjYW1lbGNhc2UnO1xuaW1wb3J0ICogYXMgZGVjYW1lbGl6ZSBmcm9tICdkZWNhbWVsaXplJztcblxuY29uc3QgQ09NTU9OX0FCQlJFVklBVElPTlMgPSBbJ0tpQicsICdNaUInLCAnR2lCJ107XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0NhbWVsQ2FzZSguLi5hcmdzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBjYW1lbGNhc2UoYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1Bhc2NhbENhc2UoLi4uYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gY2FtZWxjYXNlKGFyZ3MsIHsgcGFzY2FsQ2FzZTogdHJ1ZSB9KTtcbn1cblxuY29uc3QgQUJCUkVWX1JFID0gbmV3IFJlZ0V4cChcbiAgYChefFteQS1aXSkoJHtDT01NT05fQUJCUkVWSUFUSU9OUy5tYXAocmVnZXhRdW90ZSkuam9pbignfCcpfSkoJHxbXmEtel0pYCxcbiAgJ2cnLFxuKTtcbmV4cG9ydCBmdW5jdGlvbiB0b1NuYWtlQ2FzZShzOiBzdHJpbmcsIHNlcCA9ICdfJyk6IHN0cmluZyB7XG4gIC8vIFNhdmUgY29tbW9uIGFiYnJldmF0aW9uc1xuICBzID0gcy5yZXBsYWNlKFxuICAgIEFCQlJFVl9SRSxcbiAgICAoXywgYmVmb3JlLCBhYmJyLCBhZnRlcikgPT4gYmVmb3JlICsgdWNmaXJzdChhYmJyLnRvTG93ZXJDYXNlKCkpICsgYWZ0ZXIsXG4gICk7XG4gIHJldHVybiBkZWNhbWVsaXplKHMsIHNlcCk7XG5cbiAgZnVuY3Rpb24gdWNmaXJzdChzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBzdHIuc3Vic3RyKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHIuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVnZXhRdW90ZShzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvWy4/KiteJFtcXF1cXFxcKCl7fXwtXS9nLCAnXFxcXCQmJyk7XG59XG4iXX0=

@@ -6,4 +6,4 @@ /**

/**
* The indentation level of the file.
*/
* The indentation level of the file.
*/
indentation: number;

@@ -15,82 +15,82 @@ private currIndent;

/**
* Formats an block open statement.
*/
* Formats an block open statement.
*/
openBlockFormatter: (s?: string) => string;
/**
* Formats a block close statement.
*/
* Formats a block close statement.
*/
closeBlockFormatter: (s?: string) => string;
/**
* Saves all the files created in this code maker.
* @param rootDir The root directory for all saved files.
* @returns A sorted list of all the files saved (absolute paths).
*/
* Saves all the files created in this code maker.
* @param rootDir The root directory for all saved files.
* @returns A sorted list of all the files saved (absolute paths).
*/
save(rootDir: string): Promise<string[]>;
/**
* Sets the name of the current file we are working with.
* Note that this doesn't really create a new file (files are only created when save() is called.
* Use `closeFile` to close this file.
* @param filePath The relative path of the new file.
*/
* Sets the name of the current file we are working with.
* Note that this doesn't really create a new file (files are only created when save() is called.
* Use `closeFile` to close this file.
* @param filePath The relative path of the new file.
*/
openFile(filePath: string): void;
/**
* Indicates that we finished generating the current file.
* @param filePath The relative file path (must be the same as one passed to openFile)
*/
* Indicates that we finished generating the current file.
* @param filePath The relative file path (must be the same as one passed to openFile)
*/
closeFile(filePath: string): void;
/**
* Emits a line into the currently opened file.
* Line is emitted with the current level of indentation.
* If no arguments are provided, an empty new line is emitted.
* @param fmt String format arguments (passed to `util.format`)
* @param args String arguments
*/
* Emits a line into the currently opened file.
* Line is emitted with the current level of indentation.
* If no arguments are provided, an empty new line is emitted.
* @param fmt String format arguments (passed to `util.format`)
* @param args String arguments
*/
line(fmt?: string, ...args: string[]): void;
/**
* Same as `open`.
*/
* Same as `open`.
*/
indent(textBefore?: string): void;
/**
* Same as `close`.
*/
* Same as `close`.
*/
unindent(textAfter?: string): void;
/**
* Increases the indentation level by `indentation` spaces for the next line.
* @param textBefore Text to emit before the newline (i.e. block open).
*/
* Increases the indentation level by `indentation` spaces for the next line.
* @param textBefore Text to emit before the newline (i.e. block open).
*/
open(textBefore?: string): void;
/**
* Decreases the indentation level by `indentation` for the next line.
* @param textAfter Text to emit in the line after indentation was decreased.
*/
* Decreases the indentation level by `indentation` for the next line.
* @param textAfter Text to emit in the line after indentation was decreased.
*/
close(textAfter?: string): void;
/**
* Opens a code block. The formatting of the block is determined by `openBlockFormatter`.
* @param text The text to pass to the formatter.
*/
* Opens a code block. The formatting of the block is determined by `openBlockFormatter`.
* @param text The text to pass to the formatter.
*/
openBlock(text: string): void;
/**
* Closes a code block. The formatting of the block is determined by `closeBlockFormatter`.
* @param text The text to pass to the formatter.
*/
* Closes a code block. The formatting of the block is determined by `closeBlockFormatter`.
* @param text The text to pass to the formatter.
*/
closeBlock(text?: string): void;
/**
* Adds a file to the exclude list. This means this file will not be saved during save().
* @param filePath The relative path of the file.
*/
* Adds a file to the exclude list. This means this file will not be saved during save().
* @param filePath The relative path of the file.
*/
exclude(filePath: string): void;
/**
* convertsStringToCamelCase
*/
* convertsStringToCamelCase
*/
toCamelCase(...args: string[]): string;
/**
* ConvertsStringToPascalCase
*/
* ConvertsStringToPascalCase
*/
toPascalCase(...args: string[]): string;
/**
* convert_string_to_snake_case
* @param sep Separator (defaults to '_')
*/
* convert_string_to_snake_case
* @param sep Separator (defaults to '_')
*/
toSnakeCase(s: string, sep?: string): string;
private makeIndent;
}

@@ -12,4 +12,4 @@ "use strict";

/**
* The indentation level of the file.
*/
* The indentation level of the file.
*/
this.indentation = 4;

@@ -20,27 +20,27 @@ this.currIndent = 0;

/**
* Formats an block open statement.
*/
this.openBlockFormatter = s => `${s} {`;
* Formats an block open statement.
*/
this.openBlockFormatter = (s) => `${s} {`;
/**
* Formats a block close statement.
*/
* Formats a block close statement.
*/
this.closeBlockFormatter = () => '}';
}
/**
* Saves all the files created in this code maker.
* @param rootDir The root directory for all saved files.
* @returns A sorted list of all the files saved (absolute paths).
*/
* Saves all the files created in this code maker.
* @param rootDir The root directory for all saved files.
* @returns A sorted list of all the files saved (absolute paths).
*/
async save(rootDir) {
const paths = this.files
.filter(file => !this.excludes.includes(file.filePath))
.map(file => file.save(rootDir));
.filter((file) => !this.excludes.includes(file.filePath))
.map((file) => file.save(rootDir));
return (await Promise.all(paths)).sort();
}
/**
* Sets the name of the current file we are working with.
* Note that this doesn't really create a new file (files are only created when save() is called.
* Use `closeFile` to close this file.
* @param filePath The relative path of the new file.
*/
* Sets the name of the current file we are working with.
* Note that this doesn't really create a new file (files are only created when save() is called.
* Use `closeFile` to close this file.
* @param filePath The relative path of the new file.
*/
openFile(filePath) {

@@ -53,5 +53,5 @@ if (this.currentFile) {

/**
* Indicates that we finished generating the current file.
* @param filePath The relative file path (must be the same as one passed to openFile)
*/
* Indicates that we finished generating the current file.
* @param filePath The relative file path (must be the same as one passed to openFile)
*/
closeFile(filePath) {

@@ -68,8 +68,8 @@ if (!this.currentFile) {

/**
* Emits a line into the currently opened file.
* Line is emitted with the current level of indentation.
* If no arguments are provided, an empty new line is emitted.
* @param fmt String format arguments (passed to `util.format`)
* @param args String arguments
*/
* Emits a line into the currently opened file.
* Line is emitted with the current level of indentation.
* If no arguments are provided, an empty new line is emitted.
* @param fmt String format arguments (passed to `util.format`)
* @param args String arguments
*/
line(fmt, ...args) {

@@ -86,4 +86,4 @@ if (!this.currentFile) {

/**
* Same as `open`.
*/
* Same as `open`.
*/
indent(textBefore) {

@@ -93,4 +93,4 @@ this.open(textBefore);

/**
* Same as `close`.
*/
* Same as `close`.
*/
unindent(textAfter) {

@@ -100,5 +100,5 @@ this.close(textAfter);

/**
* Increases the indentation level by `indentation` spaces for the next line.
* @param textBefore Text to emit before the newline (i.e. block open).
*/
* Increases the indentation level by `indentation` spaces for the next line.
* @param textBefore Text to emit before the newline (i.e. block open).
*/
open(textBefore) {

@@ -109,5 +109,5 @@ this.line(textBefore);

/**
* Decreases the indentation level by `indentation` for the next line.
* @param textAfter Text to emit in the line after indentation was decreased.
*/
* Decreases the indentation level by `indentation` for the next line.
* @param textAfter Text to emit in the line after indentation was decreased.
*/
close(textAfter) {

@@ -118,5 +118,5 @@ this.currIndent--;

/**
* Opens a code block. The formatting of the block is determined by `openBlockFormatter`.
* @param text The text to pass to the formatter.
*/
* Opens a code block. The formatting of the block is determined by `openBlockFormatter`.
* @param text The text to pass to the formatter.
*/
openBlock(text) {

@@ -126,5 +126,5 @@ this.open(this.openBlockFormatter(text));

/**
* Closes a code block. The formatting of the block is determined by `closeBlockFormatter`.
* @param text The text to pass to the formatter.
*/
* Closes a code block. The formatting of the block is determined by `closeBlockFormatter`.
* @param text The text to pass to the formatter.
*/
closeBlock(text) {

@@ -134,5 +134,5 @@ this.close(this.closeBlockFormatter(text));

/**
* Adds a file to the exclude list. This means this file will not be saved during save().
* @param filePath The relative path of the file.
*/
* Adds a file to the exclude list. This means this file will not be saved during save().
* @param filePath The relative path of the file.
*/
exclude(filePath) {

@@ -142,4 +142,4 @@ this.excludes.push(filePath);

/**
* convertsStringToCamelCase
*/
* convertsStringToCamelCase
*/
toCamelCase(...args) {

@@ -149,4 +149,4 @@ return caseutils.toCamelCase(...args);

/**
* ConvertsStringToPascalCase
*/
* ConvertsStringToPascalCase
*/
toPascalCase(...args) {

@@ -156,5 +156,5 @@ return caseutils.toPascalCase(...args);

/**
* convert_string_to_snake_case
* @param sep Separator (defaults to '_')
*/
* convert_string_to_snake_case
* @param sep Separator (defaults to '_')
*/
toSnakeCase(s, sep = '_') {

@@ -174,2 +174,2 @@ return caseutils.toSnakeCase(s, sep);

exports.CodeMaker = CodeMaker;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1ha2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29kZW1ha2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLDBDQUEwQztBQUMxQyx5Q0FBb0M7QUFFcEM7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFBdEI7UUFDRTs7YUFFSztRQUNFLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWYsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVOLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRWhEOzthQUVLO1FBQ0UsdUJBQWtCLEdBQTJCLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUVsRTs7YUFFSztRQUNFLHdCQUFtQixHQUEyQixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUF1SmpFLENBQUM7SUFySkM7Ozs7U0FJSztJQUNFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSzthQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0RCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7U0FLSztJQUNFLFFBQVEsQ0FBQyxRQUFnQjtRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsUUFBUSxzQ0FBc0MsSUFBSSxD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QUcsR0FBRyxHQUFHO1FBQ3JDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUN6QyxNQUFNLElBQUksR0FBRyxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQTFLRCw4QkEwS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWxzIGZyb20gJy4vY2FzZS11dGlscyc7XG5pbXBvcnQgRmlsZUJ1ZmZlciBmcm9tICcuL2ZpbGVidWZmJztcblxuLyoqXG4gKiBNdWx0aS1maWxlIHRleHQgd3JpdGVyIHdpdGggc29tZSBjb2RlLWdlbmVyYXRpb24gZmVhdHVyZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlTWFrZXIge1xuICAvKipcbiAgICAgKiBUaGUgaW5kZW50YXRpb24gbGV2ZWwgb2YgdGhlIGZpbGUuXG4gICAgICovXG4gIHB1YmxpYyBpbmRlbnRhdGlvbiA9IDQ7XG5cbiAgcHJpdmF0ZSBjdXJySW5kZW50ID0gMDtcbiAgcHJpdmF0ZSBjdXJyZW50RmlsZT86IEZpbGVCdWZmZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZXMgPSBuZXcgQXJyYXk8RmlsZUJ1ZmZlcj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBleGNsdWRlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAgICogRm9ybWF0cyBhbiBibG9jayBvcGVuIHN0YXRlbWVudC5cbiAgICAgKi9cbiAgcHVibGljIG9wZW5CbG9ja0Zvcm1hdHRlcjogKHM/OiBzdHJpbmcpID0+IHN0cmluZyA9IHMgPT4gYCR7c30ge2A7XG5cbiAgLyoqXG4gICAgICogRm9ybWF0cyBhIGJsb2NrIGNsb3NlIHN0YXRlbWVudC5cbiAgICAgKi9cbiAgcHVibGljIGNsb3NlQmxvY2tGb3JtYXR0ZXI6IChzPzogc3RyaW5nKSA9PiBzdHJpbmcgPSAoKSA9PiAnfSc7XG5cbiAgLyoqXG4gICAgICogU2F2ZXMgYWxsIHRoZSBmaWxlcyBjcmVhdGVkIGluIHRoaXMgY29kZSBtYWtlci5cbiAgICAgKiBAcGFyYW0gcm9vdERpciBUaGUgcm9vdCBkaXJlY3RvcnkgZm9yIGFsbCBzYXZlZCBmaWxlcy5cbiAgICAgKiBAcmV0dXJucyBBIHNvcnRlZCBsaXN0IG9mIGFsbCB0aGUgZmlsZXMgc2F2ZWQgKGFic29sdXRlIHBhdGhzKS5cbiAgICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmUocm9vdERpcjogc3RyaW5nKSB7XG4gICAgY29uc3QgcGF0aHMgPSB0aGlzLmZpbGVzXG4gICAgICAuZmlsdGVyKGZpbGUgPT4gIXRoaXMuZXhjbHVkZXMuaW5jbHVkZXMoZmlsZS5maWxlUGF0aCkpXG4gICAgICAubWFwKGZpbGUgPT4gZmlsZS5zYXZlKHJvb3REaXIpKTtcbiAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHBhdGhzKSkuc29ydCgpO1xuICB9XG5cbiAgLyoqXG4gICAgICogU2V0cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBmaWxlIHdlIGFyZSB3b3JraW5nIHdpdGguXG4gICAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCByZWFsbHkgY3JlYXRlIGEgbmV3IGZpbGUgKGZpbGVzIGFyZSBvbmx5IGNyZWF0ZWQgd2hlbiBzYXZlKCkgaXMgY2FsbGVkLlxuICAgICAqIFVzZSBgY2xvc2VGaWxlYCB0byBjbG9zZSB0aGlzIGZpbGUuXG4gICAgICogQHBhcmFtIGZpbGVQYXRoIFRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBuZXcgZmlsZS5cbiAgICAgKi9cbiAgcHVibGljIG9wZW5GaWxlKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgb3BlbiBmaWxlICR7ZmlsZVBhdGh9IHdpdGhvdXQgY2xvc2luZyB0aGUgcHJldmlvdXMgZmlsZSAke3RoaXMuY3VycmVudEZpbGUuZmlsZVBhdGh9YCk7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50RmlsZSA9IG5ldyBGaWxlQnVmZmVyKGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEluZGljYXRlcyB0aGF0IHdlIGZpbmlzaGVkIGdlbmVyYXRpbmcgdGhlIGN1cnJlbnQgZmlsZS5cbiAgICAgKiBAcGFyYW0gZmlsZVBhdGggVGhlIHJlbGF0aXZlIGZpbGUgcGF0aCAobXVzdCBiZSB0aGUgc2FtZSBhcyBvbmUgcGFzc2VkIHRvIG9wZW5GaWxlKVxuICAgICAqL1xuICBwdWJsaWMgY2xvc2VGaWxlKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudEZpbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGNsb3NlIGZpbGUgJHtmaWxlUGF0aH0uIEl0IHdhcyBuZXZlciBvcGVuZWRgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudEZpbGUuZmlsZVBhdGggIT09IGZpbGVQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjbG9zZSBmaWxlICR7ZmlsZVBhdGh9LiBUaGUgY3VycmVudGx5IG9wZW5lZCBmaWxlIGlzICR7dGhpcy5jdXJyZW50RmlsZS5maWxlUGF0aH1gKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGVzLnB1c2godGhpcy5jdXJyZW50RmlsZSk7XG4gICAgdGhpcy5jdXJyZW50RmlsZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEVtaXRzIGEgbGluZSBpbnRvIHRoZSBjdXJyZW50bHkgb3BlbmVkIGZpbGUuXG4gICAgICogTGluZSBpcyBlbWl0dGVkIHdpdGggdGhlIGN1cnJlbnQgbGV2ZWwgb2YgaW5kZW50YXRpb24uXG4gICAgICogSWYgbm8gYXJndW1lbnRzIGFyZSBwcm92aWRlZCwgYW4gZW1wdHkgbmV3IGxpbmUgaXMgZW1pdHRlZC5cbiAgICAgKiBAcGFyYW0gZm10IFN0cmluZyBmb3JtYXQgYXJndW1lbnRzIChwYXNzZWQgdG8gYHV0aWwuZm9ybWF0YClcbiAgICAgKiBAcGFyYW0gYXJncyBTdHJpbmcgYXJndW1lbnRzXG4gICAgICovXG4gIHB1YmxpYyBsaW5lKGZtdD86IHN0cmluZywgLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICBpZiAoIXRoaXMuY3VycmVudEZpbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVtaXQgc291cmNlIGxpbmVzIHdpdGhvdXQgb3Blbm5pbmcgYSBmaWxlJyk7XG4gICAgfVxuXG4gICAgaWYgKGZtdCkge1xuICAgICAgZm10ID0gdGhpcy5tYWtlSW5kZW50KCkgKyBmbXQ7XG4gICAgICB0aGlzLmN1cnJlbnRGaWxlLndyaXRlKHV0aWwuZm9ybWF0KGZtdCwgLi4uYXJncykpO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudEZpbGUud3JpdGUoJ1xcbicpO1xuICB9XG5cbiAgLyoqXG4gICAgICogU2FtZSBhcyBgb3BlbmAuXG4gICAgICovXG4gIHB1YmxpYyBpbmRlbnQodGV4dEJlZm9yZT86IHN0cmluZykge1xuICAgIHRoaXMub3Blbih0ZXh0QmVmb3JlKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIFNhbWUgYXMgYGNsb3NlYC5cbiAgICAgKi9cbiAgcHVibGljIHVuaW5kZW50KHRleHRBZnRlcj86IHN0cmluZykge1xuICAgIHRoaXMuY2xvc2UodGV4dEFmdGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEluY3JlYXNlcyB0aGUgaW5kZW50YXRpb24gbGV2ZWwgYnkgYGluZGVudGF0aW9uYCBzcGFjZXMgZm9yIHRoZSBuZXh0IGxpbmUuXG4gICAgICogQHBhcmFtIHRleHRCZWZvcmUgVGV4dCB0byBlbWl0IGJlZm9yZSB0aGUgbmV3bGluZSAoaS5lLiBibG9jayBvcGVuKS5cbiAgICAgKi9cbiAgcHVibGljIG9wZW4odGV4dEJlZm9yZT86IHN0cmluZykge1xuICAgIHRoaXMubGluZSh0ZXh0QmVmb3JlKTtcbiAgICB0aGlzLmN1cnJJbmRlbnQrKztcbiAgfVxuXG4gIC8qKlxuICAgICAqIERlY3JlYXNlcyB0aGUgaW5kZW50YXRpb24gbGV2ZWwgYnkgYGluZGVudGF0aW9uYCBmb3IgdGhlIG5leHQgbGluZS5cbiAgICAgKiBAcGFyYW0gdGV4dEFmdGVyIFRleHQgdG8gZW1pdCBpbiB0aGUgbGluZSBhZnRlciBpbmRlbnRhdGlvbiB3YXMgZGVjcmVhc2VkLlxuICAgICAqL1xuICBwdWJsaWMgY2xvc2UodGV4dEFmdGVyPzogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJySW5kZW50LS07XG4gICAgdGhpcy5saW5lKHRleHRBZnRlcik7XG4gIH1cblxuICAvKipcbiAgICAgKiBPcGVucyBhIGNvZGUgYmxvY2suIFRoZSBmb3JtYXR0aW5nIG9mIHRoZSBibG9jayBpcyBkZXRlcm1pbmVkIGJ5IGBvcGVuQmxvY2tGb3JtYXR0ZXJgLlxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHBhc3MgdG8gdGhlIGZvcm1hdHRlci5cbiAgICAgKi9cbiAgcHVibGljIG9wZW5CbG9jayh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW4odGhpcy5vcGVuQmxvY2tGb3JtYXR0ZXIodGV4dCkpO1xuICB9XG5cbiAgLyoqXG4gICAgICogQ2xvc2VzIGEgY29kZSBibG9jay4gVGhlIGZvcm1hdHRpbmcgb2YgdGhlIGJsb2NrIGlzIGRldGVybWluZWQgYnkgYGNsb3NlQmxvY2tGb3JtYXR0ZXJgLlxuICAgICAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIHBhc3MgdG8gdGhlIGZvcm1hdHRlci5cbiAgICAgKi9cbiAgcHVibGljIGNsb3NlQmxvY2sodGV4dD86IHN0cmluZykge1xuICAgIHRoaXMuY2xvc2UodGhpcy5jbG9zZUJsb2NrRm9ybWF0dGVyKHRleHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEFkZHMgYSBmaWxlIHRvIHRoZSBleGNsdWRlIGxpc3QuIFRoaXMgbWVhbnMgdGhpcyBmaWxlIHdpbGwgbm90IGJlIHNhdmVkIGR1cmluZyBzYXZlKCkuXG4gICAgICogQHBhcmFtIGZpbGVQYXRoIFRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBmaWxlLlxuICAgICAqL1xuICBwdWJsaWMgZXhjbHVkZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgdGhpcy5leGNsdWRlcy5wdXNoKGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIGNvbnZlcnRzU3RyaW5nVG9DYW1lbENhc2VcbiAgICAgKi9cbiAgcHVibGljIHRvQ2FtZWxDYXNlKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIGNhc2V1dGlscy50b0NhbWVsQ2FzZSguLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIENvbnZlcnRzU3RyaW5nVG9QYXNjYWxDYXNlXG4gICAgICovXG4gIHB1YmxpYyB0b1Bhc2NhbENhc2UoLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gY2FzZXV0aWxzLnRvUGFzY2FsQ2FzZSguLi5hcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIGNvbnZlcnRfc3RyaW5nX3RvX3NuYWtlX2Nhc2VcbiAgICAgKiBAcGFyYW0gc2VwIFNlcGFyYXRvciAoZGVmYXVsdHMgdG8gJ18nKVxuICAgICAqL1xuICBwdWJsaWMgdG9TbmFrZUNhc2Uoczogc3RyaW5nLCBzZXAgPSAnXycpIHtcbiAgICByZXR1cm4gY2FzZXV0aWxzLnRvU25ha2VDYXNlKHMsIHNlcCk7XG4gIH1cblxuICBwcml2YXRlIG1ha2VJbmRlbnQoKSB7XG4gICAgbGV0IHNwYWNlcyA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jdXJySW5kZW50OyArK2kpIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5pbmRlbnRhdGlvbjsgKytqKSB7XG4gICAgICAgIHNwYWNlcyArPSAnICc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzcGFjZXM7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1ha2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29kZW1ha2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLDBDQUEwQztBQUMxQyx5Q0FBb0M7QUFFcEM7O0dBRUc7QUFDSCxNQUFhLFNBQVM7SUFBdEI7UUFDRTs7V0FFRztRQUNJLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWYsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUVOLFVBQUssR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRWhEOztXQUVHO1FBQ0ksdUJBQWtCLEdBQTJCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBRXBFOztXQUVHO1FBQ0ksd0JBQW1CLEdBQTJCLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQztJQTJKakUsQ0FBQztJQXpKQzs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFlO1FBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ3JCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxRQUFnQjtRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYixvQkFBb0IsUUFB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QUMsQ0FBUyxFQUFFLEdBQUcsR0FBRyxHQUFHO1FBQ3JDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUN6QyxNQUFNLElBQUksR0FBRyxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQTlLRCw4QkE4S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWxzIGZyb20gJy4vY2FzZS11dGlscyc7XG5pbXBvcnQgRmlsZUJ1ZmZlciBmcm9tICcuL2ZpbGVidWZmJztcblxuLyoqXG4gKiBNdWx0aS1maWxlIHRleHQgd3JpdGVyIHdpdGggc29tZSBjb2RlLWdlbmVyYXRpb24gZmVhdHVyZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlTWFrZXIge1xuICAvKipcbiAgICogVGhlIGluZGVudGF0aW9uIGxldmVsIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgcHVibGljIGluZGVudGF0aW9uID0gNDtcblxuICBwcml2YXRlIGN1cnJJbmRlbnQgPSAwO1xuICBwcml2YXRlIGN1cnJlbnRGaWxlPzogRmlsZUJ1ZmZlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlcyA9IG5ldyBBcnJheTxGaWxlQnVmZmVyPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4Y2x1ZGVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogRm9ybWF0cyBhbiBibG9jayBvcGVuIHN0YXRlbWVudC5cbiAgICovXG4gIHB1YmxpYyBvcGVuQmxvY2tGb3JtYXR0ZXI6IChzPzogc3RyaW5nKSA9PiBzdHJpbmcgPSAocykgPT4gYCR7c30ge2A7XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBibG9jayBjbG9zZSBzdGF0ZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2VCbG9ja0Zvcm1hdHRlcjogKHM/OiBzdHJpbmcpID0+IHN0cmluZyA9ICgpID0+ICd9JztcblxuICAvKipcbiAgICogU2F2ZXMgYWxsIHRoZSBmaWxlcyBjcmVhdGVkIGluIHRoaXMgY29kZSBtYWtlci5cbiAgICogQHBhcmFtIHJvb3REaXIgVGhlIHJvb3QgZGlyZWN0b3J5IGZvciBhbGwgc2F2ZWQgZmlsZXMuXG4gICAqIEByZXR1cm5zIEEgc29ydGVkIGxpc3Qgb2YgYWxsIHRoZSBmaWxlcyBzYXZlZCAoYWJzb2x1dGUgcGF0aHMpLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmUocm9vdERpcjogc3RyaW5nKSB7XG4gICAgY29uc3QgcGF0aHMgPSB0aGlzLmZpbGVzXG4gICAgICAuZmlsdGVyKChmaWxlKSA9PiAhdGhpcy5leGNsdWRlcy5pbmNsdWRlcyhmaWxlLmZpbGVQYXRoKSlcbiAgICAgIC5tYXAoKGZpbGUpID0+IGZpbGUuc2F2ZShyb290RGlyKSk7XG4gICAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbChwYXRocykpLnNvcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZpbGUgd2UgYXJlIHdvcmtpbmcgd2l0aC5cbiAgICogTm90ZSB0aGF0IHRoaXMgZG9lc24ndCByZWFsbHkgY3JlYXRlIGEgbmV3IGZpbGUgKGZpbGVzIGFyZSBvbmx5IGNyZWF0ZWQgd2hlbiBzYXZlKCkgaXMgY2FsbGVkLlxuICAgKiBVc2UgYGNsb3NlRmlsZWAgdG8gY2xvc2UgdGhpcyBmaWxlLlxuICAgKiBAcGFyYW0gZmlsZVBhdGggVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIG5ldyBmaWxlLlxuICAgKi9cbiAgcHVibGljIG9wZW5GaWxlKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IG9wZW4gZmlsZSAke2ZpbGVQYXRofSB3aXRob3V0IGNsb3NpbmcgdGhlIHByZXZpb3VzIGZpbGUgJHt0aGlzLmN1cnJlbnRGaWxlLmZpbGVQYXRofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudEZpbGUgPSBuZXcgRmlsZUJ1ZmZlcihmaWxlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgd2UgZmluaXNoZWQgZ2VuZXJhdGluZyB0aGUgY3VycmVudCBmaWxlLlxuICAgKiBAcGFyYW0gZmlsZVBhdGggVGhlIHJlbGF0aXZlIGZpbGUgcGF0aCAobXVzdCBiZSB0aGUgc2FtZSBhcyBvbmUgcGFzc2VkIHRvIG9wZW5GaWxlKVxuICAgKi9cbiAgcHVibGljIGNsb3NlRmlsZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbnRGaWxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBjbG9zZSBmaWxlICR7ZmlsZVBhdGh9LiBJdCB3YXMgbmV2ZXIgb3BlbmVkYCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmN1cnJlbnRGaWxlLmZpbGVQYXRoICE9PSBmaWxlUGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IGNsb3NlIGZpbGUgJHtmaWxlUGF0aH0uIFRoZSBjdXJyZW50bHkgb3BlbmVkIGZpbGUgaXMgJHt0aGlzLmN1cnJlbnRGaWxlLmZpbGVQYXRofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMucHVzaCh0aGlzLmN1cnJlbnRGaWxlKTtcbiAgICB0aGlzLmN1cnJlbnRGaWxlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgbGluZSBpbnRvIHRoZSBjdXJyZW50bHkgb3BlbmVkIGZpbGUuXG4gICAqIExpbmUgaXMgZW1pdHRlZCB3aXRoIHRoZSBjdXJyZW50IGxldmVsIG9mIGluZGVudGF0aW9uLlxuICAgKiBJZiBubyBhcmd1bWVudHMgYXJlIHByb3ZpZGVkLCBhbiBlbXB0eSBuZXcgbGluZSBpcyBlbWl0dGVkLlxuICAgKiBAcGFyYW0gZm10IFN0cmluZyBmb3JtYXQgYXJndW1lbnRzIChwYXNzZWQgdG8gYHV0aWwuZm9ybWF0YClcbiAgICogQHBhcmFtIGFyZ3MgU3RyaW5nIGFyZ3VtZW50c1xuICAgKi9cbiAgcHVibGljIGxpbmUoZm10Pzogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSkge1xuICAgIGlmICghdGhpcy5jdXJyZW50RmlsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZW1pdCBzb3VyY2UgbGluZXMgd2l0aG91dCBvcGVubmluZyBhIGZpbGUnKTtcbiAgICB9XG5cbiAgICBpZiAoZm10KSB7XG4gICAgICBmbXQgPSB0aGlzLm1ha2VJbmRlbnQoKSArIGZtdDtcbiAgICAgIHRoaXMuY3VycmVudEZpbGUud3JpdGUodXRpbC5mb3JtYXQoZm10LCAuLi5hcmdzKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50RmlsZS53cml0ZSgnXFxuJyk7XG4gIH1cblxuICAvKipcbiAgICogU2FtZSBhcyBgb3BlbmAuXG4gICAqL1xuICBwdWJsaWMgaW5kZW50KHRleHRCZWZvcmU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW4odGV4dEJlZm9yZSk7XG4gIH1cblxuICAvKipcbiAgICogU2FtZSBhcyBgY2xvc2VgLlxuICAgKi9cbiAgcHVibGljIHVuaW5kZW50KHRleHRBZnRlcj86IHN0cmluZykge1xuICAgIHRoaXMuY2xvc2UodGV4dEFmdGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNyZWFzZXMgdGhlIGluZGVudGF0aW9uIGxldmVsIGJ5IGBpbmRlbnRhdGlvbmAgc3BhY2VzIGZvciB0aGUgbmV4dCBsaW5lLlxuICAgKiBAcGFyYW0gdGV4dEJlZm9yZSBUZXh0IHRvIGVtaXQgYmVmb3JlIHRoZSBuZXdsaW5lIChpLmUuIGJsb2NrIG9wZW4pLlxuICAgKi9cbiAgcHVibGljIG9wZW4odGV4dEJlZm9yZT86IHN0cmluZykge1xuICAgIHRoaXMubGluZSh0ZXh0QmVmb3JlKTtcbiAgICB0aGlzLmN1cnJJbmRlbnQrKztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNyZWFzZXMgdGhlIGluZGVudGF0aW9uIGxldmVsIGJ5IGBpbmRlbnRhdGlvbmAgZm9yIHRoZSBuZXh0IGxpbmUuXG4gICAqIEBwYXJhbSB0ZXh0QWZ0ZXIgVGV4dCB0byBlbWl0IGluIHRoZSBsaW5lIGFmdGVyIGluZGVudGF0aW9uIHdhcyBkZWNyZWFzZWQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UodGV4dEFmdGVyPzogc3RyaW5nKSB7XG4gICAgdGhpcy5jdXJySW5kZW50LS07XG4gICAgdGhpcy5saW5lKHRleHRBZnRlcik7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBjb2RlIGJsb2NrLiBUaGUgZm9ybWF0dGluZyBvZiB0aGUgYmxvY2sgaXMgZGV0ZXJtaW5lZCBieSBgb3BlbkJsb2NrRm9ybWF0dGVyYC5cbiAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gcGFzcyB0byB0aGUgZm9ybWF0dGVyLlxuICAgKi9cbiAgcHVibGljIG9wZW5CbG9jayh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW4odGhpcy5vcGVuQmxvY2tGb3JtYXR0ZXIodGV4dCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhIGNvZGUgYmxvY2suIFRoZSBmb3JtYXR0aW5nIG9mIHRoZSBibG9jayBpcyBkZXRlcm1pbmVkIGJ5IGBjbG9zZUJsb2NrRm9ybWF0dGVyYC5cbiAgICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gcGFzcyB0byB0aGUgZm9ybWF0dGVyLlxuICAgKi9cbiAgcHVibGljIGNsb3NlQmxvY2sodGV4dD86IHN0cmluZykge1xuICAgIHRoaXMuY2xvc2UodGhpcy5jbG9zZUJsb2NrRm9ybWF0dGVyKHRleHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZmlsZSB0byB0aGUgZXhjbHVkZSBsaXN0LiBUaGlzIG1lYW5zIHRoaXMgZmlsZSB3aWxsIG5vdCBiZSBzYXZlZCBkdXJpbmcgc2F2ZSgpLlxuICAgKiBAcGFyYW0gZmlsZVBhdGggVGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgZXhjbHVkZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgdGhpcy5leGNsdWRlcy5wdXNoKGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0c1N0cmluZ1RvQ2FtZWxDYXNlXG4gICAqL1xuICBwdWJsaWMgdG9DYW1lbENhc2UoLi4uYXJnczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gY2FzZXV0aWxzLnRvQ2FtZWxDYXNlKC4uLmFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzU3RyaW5nVG9QYXNjYWxDYXNlXG4gICAqL1xuICBwdWJsaWMgdG9QYXNjYWxDYXNlKC4uLmFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIGNhc2V1dGlscy50b1Bhc2NhbENhc2UoLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogY29udmVydF9zdHJpbmdfdG9fc25ha2VfY2FzZVxuICAgKiBAcGFyYW0gc2VwIFNlcGFyYXRvciAoZGVmYXVsdHMgdG8gJ18nKVxuICAgKi9cbiAgcHVibGljIHRvU25ha2VDYXNlKHM6IHN0cmluZywgc2VwID0gJ18nKSB7XG4gICAgcmV0dXJuIGNhc2V1dGlscy50b1NuYWtlQ2FzZShzLCBzZXApO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlSW5kZW50KCkge1xuICAgIGxldCBzcGFjZXMgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY3VyckluZGVudDsgKytpKSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuaW5kZW50YXRpb247ICsraikge1xuICAgICAgICBzcGFjZXMgKz0gJyAnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3BhY2VzO1xuICB9XG59XG4iXX0=

@@ -8,2 +8,2 @@ "use strict";

__export(require("./case-utils"));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUE0QjtBQUM1QixrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvZGVtYWtlcic7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtdXRpbHMnOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlDQUE0QjtBQUM1QixrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvZGVtYWtlcic7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtdXRpbHMnO1xuIl19
{
"name": "codemaker",
"version": "1.5.0",
"version": "1.6.0",
"description": "A tiny utility for generating source code",

@@ -28,2 +28,3 @@ "license": "Apache-2.0",

"lint": "eslint . --ext .js,.ts --ignore-path=.gitignore",
"lint:fix": "yarn lint --fix",
"test": "jest",

@@ -41,6 +42,9 @@ "test:update": "jest -u",

"@types/fs-extra": "^8.1.0",
"@types/jest": "^25.2.1",
"@types/node": "^10.17.21",
"eslint": "^6.8.0",
"@types/jest": "^25.2.3",
"@types/node": "^10.17.24",
"eslint": "^7.1.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.3",
"jest": "^26.0.1",
"prettier": "^2.0.5",
"typescript": "~3.8.3"

@@ -47,0 +51,0 @@ },

@@ -8,4 +8,3 @@ "use strict";

const sources = new lib_1.CodeMaker();
expect(() => sources.line('Nope!'))
.toThrow(/Cannot emit source lines without openning a file/);
expect(() => sources.line('Nope!')).toThrow(/Cannot emit source lines without openning a file/);
});

@@ -29,4 +28,4 @@ test('source files', async () => {

sources.indentation = 10;
sources.openBlockFormatter = s => `(--- ${s} ---`;
sources.closeBlockFormatter = s => `--- ${s} ---)`;
sources.openBlockFormatter = (s) => `(--- ${s} ---`;
sources.closeBlockFormatter = (s) => `--- ${s} ---)`;
sources.openBlock('block1');

@@ -69,3 +68,3 @@ sources.line('block1.line1');

const maker = new lib_1.CodeMaker();
maker.openBlock = s => {
maker.openBlock = (s) => {
maker.line(s);

@@ -115,2 +114,2 @@ maker.open('{');

`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsZ0NBQW1DO0FBRW5DLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFTLEVBQUUsQ0FBQztJQUNoQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNoQyxPQUFPLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFTLEVBQUUsQ0FBQztJQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQixNQUFNLG9CQUFvQixHQUFHLG1EQUFtRCxDQUFDO0lBQ2pGLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMs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Ozs7OztDQVF0QixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7O0NBU3hCLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHOzs7Ozs7OztDQVE1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gJy4uL2xpYic7XG5cbnRlc3QoJ2Nhbm5vdCB3cml0ZSBiZWZvcmUgb3BlbmluZyBhIGZpbGUnLCAoKSA9PiB7XG4gIGNvbnN0IHNvdXJjZXMgPSBuZXcgQ29kZU1ha2VyKCk7XG4gIGV4cGVjdCgoKSA9PiBzb3VyY2VzLmxpbmUoJ05vcGUhJykpXG4gICAgLnRvVGhyb3coL0Nhbm5vdCBlbWl0IHNvdXJjZSBsaW5lcyB3aXRob3V0IG9wZW5uaW5nIGEgZmlsZS8pO1xufSk7XG5cbnRlc3QoJ3NvdXJjZSBmaWxlcycsIGFzeW5jICgpID0+IHtcbiAgY29uc3Qgc291cmNlcyA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgc291cmNlcy5vcGVuRmlsZSgnbXlmaWxlLmpzJyk7XG4gIHNvdXJjZXMubGluZSgnZmlyc3QgbGluZScpO1xuICBzb3VyY2VzLm9wZW5CbG9jaygnb3BlbicpO1xuICBzb3VyY2VzLmxpbmUoJ3NlY29uZCBsaW5lJyk7XG4gIHNvdXJjZXMuY2xvc2VCbG9jaygpO1xuICBzb3VyY2VzLm9wZW4oJ2dlbmVyaWMgb3BlbiBbJyk7XG4gIHNvdXJjZXMubGluZSgnYm9vbScpO1xuICBzb3VyY2VzLmxpbmUoJ2JhbScpO1xuICBzb3VyY2VzLmNsb3NlKCddJyk7XG4gIHNvdXJjZXMuY2xvc2VGaWxlKCdteWZpbGUuanMnKTtcblxuICBjb25zdCB5b3VyZmlsZVJlbGF0aXZlUGF0aCA9ICcuL3JlbGF0aXZlL3N1YmRpcnMvYXJlL2Fsc28vc3VwcG9ydGVkL3lvdXJmaWxlLmpzJztcbiAgc291cmNlcy5vcGVuRmlsZSh5b3VyZmlsZVJlbGF0aXZlUGF0aCk7XG4gIHNvdXJjZXMubGluZSgndGhpcyBpcyB5b3VyIGZpbGUgc3BlYWtpbmcnKTtcblxuICAvLyBjaGFuZ2UgaW5kZW50YXRpb24gYW5kIGJsb2NrIGNoYXJzXG4gIHNvdXJjZXMuaW5kZW50YXRpb24gPSAxMDtcbiAgc291cmNlcy5vcGVuQmxvY2tGb3JtYXR0ZXIgPSBzID0+IGAoLS0tICR7c30gLS0tYDtcbiAgc291cmNlcy5jbG9zZUJsb2NrRm9ybWF0dGVyID0gcyA9PiBgLS0tICR7c30gLS0tKWA7XG5cbiAgc291cmNlcy5vcGVuQmxvY2soJ2Jsb2NrMScpO1xuICBzb3VyY2VzLmxpbmUoJ2Jsb2NrMS5saW5lMScpO1xuICBzb3VyY2VzLmxpbmUoJ2Jsb2NrMS5saW5lMicpO1xuICBzb3VyY2VzLm9wZW5CbG9jaygnYmxvY2syJyk7XG4gIHNvdXJjZXMubGluZSgnYmxvY2syLmxpbmUxJyk7XG4gIHNvdXJjZXMuY2xvc2VCbG9jaygnYmxvY2syIChjbG9zZSknKTtcbiAgc291cmNlcy5saW5lKCdibG9jazEubGluZTMnKTtcbiAgc291cmNlcy5jbG9zZUJsb2NrKCdibG9jazEgKGNsb3NlKScpO1xuXG4gIHNvdXJjZXMuY2xvc2VGaWxlKHlvdXJmaWxlUmVsYXRpdmVQYXRoKTtcblxuICAvLyBmaWxlcyBjYW4gYWxzbyBiZSBleGNsdWRlZCBieSBhZGRpbmcgdGhlaXIgcGF0aCB0byBleGNsdWRlKClcbiAgc291cmNlcy5vcGVuRmlsZSgnZXhjbHVkZWQudHh0Jyk7XG4gIHNvdXJjZXMubGluZSgndGhpcyBmaWxlIHdpbGwgbm90IGJlIGVtaXR0ZWQgaW4gc2F2ZSgpJyk7XG4gIHNvdXJjZXMuY2xvc2VGaWxlKCdleGNsdWRlZC50eHQnKTtcblxuICAvLyBsYXRlciBpbiB0aGUgZGF5XG4gIHNvdXJjZXMuZXhjbHVkZSgnZXhjbHVkZWQudHh0Jyk7XG5cbiAgY29uc3QgZGlybmFtZSA9IGF3YWl0IGZzLm1rZHRlbXAoJy90bXAvc291cmNlLWZpbGVzJyk7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgc291cmNlcy5zYXZlKGRpcm5hbWUpO1xuXG4gIGV4cGVjdChmaWxlcykudG9IYXZlTGVuZ3RoKDIpO1xuXG4gIGNvbnN0IG15ZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSwgJ215ZmlsZS5qcycpO1xuICBjb25zdCB5b3VyZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSwgeW91cmZpbGVSZWxhdGl2ZVBhdGgpO1xuXG4gIGV4cGVjdChmaWxlc1swXSkudG9CZShteWZpbGVQYXRoKTtcbiAgZXhwZWN0KGZpbGVzWzFdKS50b0JlKHlvdXJmaWxlUGF0aCk7XG5cbiAgY29uc3QgbXlmaWxlID0gKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVzWzBdKSkudG9TdHJpbmcoKTtcbiAgY29uc3QgeW91cmZpbGUgPSAoYXdhaXQgZnMucmVhZEZpbGUoZmlsZXNbMV0pKS50b1N0cmluZygpO1xuXG4gIGV4cGVjdChteWZpbGUpLnRvQmUoZXhwZWN0ZWRNeUZpbGUpO1xuICBleHBlY3QoeW91cmZpbGUpLnRvQmUoZXhwZWN0ZWRZb3VyRmlsZSk7XG59KTtcblxuLyoqXG4gKiBTaG91bGQgZmFpbCBpZiBvcGVuRmlsZSBhbmQgY2xvc2VGaWxlIGhhdmUgYXJlIG5vdCBtYXRjaGVkLlxuICovXG50ZXN0KCdjbG9zZSBmaWxlIG1pc21hdGNoJywgKCkgPT4ge1xuICBjb25zdCBzb3VyY2VzID0gbmV3IENvZGVNYWtlcigpO1xuICBzb3VyY2VzLm9wZW5GaWxlKCdBJyk7XG4gIGV4cGVjdCgoKSA9PiBzb3VyY2VzLmNsb3NlRmlsZSgnQicpKS50b1Rocm93KC9DYW5ub3QgY2xvc2UgZmlsZS8pO1xufSk7XG5cbnRlc3QoJ2N1c3RvbSBtdWx0aS1saW5lIGJsb2NrJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBtYWtlciA9IG5ldyBDb2RlTWFrZXIoKTtcblxuICBtYWtlci5vcGVuQmxvY2sgPSBzID0+IHtcbiAgICBtYWtlci5saW5lKHMpO1xuICAgIG1ha2VyLm9wZW4oJ3snKTtcbiAgfTtcblxuICBtYWtlci5vcGVuRmlsZSgnY3VzdG9tLWJsb2Nrcy5jcHAnKTtcbiAgbWFrZXIub3BlbkJsb2NrKCdCbG9jazEoKScpO1xuICBtYWtlci5saW5lKCdMMScpO1xuICBtYWtlci5vcGVuQmxvY2soJ0Jsb2NrMigpJyk7XG4gIG1ha2VyLmxpbmUoJ0wyJyk7XG4gIG1ha2VyLmNsb3NlQmxvY2soKTtcbiAgbWFrZXIuY2xvc2VCbG9jaygpO1xuICBtYWtlci5jbG9zZUZpbGUoJ2N1c3RvbS1ibG9ja3MuY3BwJyk7XG5cbiAgY29uc3QgZGlybmFtZSA9IGF3YWl0IGZzLm1rZHRlbXAoJy90bXAvc291cmNlLWZpbGVzJyk7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgbWFrZXIuc2F2ZShkaXJuYW1lKTtcblxuICBjb25zdCBhY3R1YWwgPSAoYXdhaXQgZnMucmVhZEZpbGUoZmlsZXNbMF0pKS50b1N0cmluZygpO1xuXG4gIGV4cGVjdChhY3R1YWwpLnRvQmUoZXhwZWN0ZWRDdXN0b21CbG9ja3MpO1xufSk7XG5cbmNvbnN0IGV4cGVjdGVkTXlGaWxlID0gYGZpcnN0IGxpbmVcbm9wZW4ge1xuICAgIHNlY29uZCBsaW5lXG59XG5nZW5lcmljIG9wZW4gW1xuICAgIGJvb21cbiAgICBiYW1cbl1cbmA7XG5cbmNvbnN0IGV4cGVjdGVkWW91ckZpbGUgPSBgdGhpcyBpcyB5b3VyIGZpbGUgc3BlYWtpbmdcbigtLS0gYmxvY2sxIC0tLVxuICAgICAgICAgIGJsb2NrMS5saW5lMVxuICAgICAgICAgIGJsb2NrMS5saW5lMlxuICAgICAgICAgICgtLS0gYmxvY2syIC0tLVxuICAgICAgICAgICAgICAgICAgICBibG9jazIubGluZTFcbiAgICAgICAgICAtLS0gYmxvY2syIChjbG9zZSkgLS0tKVxuICAgICAgICAgIGJsb2NrMS5saW5lM1xuLS0tIGJsb2NrMSAoY2xvc2UpIC0tLSlcbmA7XG5cbmNvbnN0IGV4cGVjdGVkQ3VzdG9tQmxvY2tzID0gYEJsb2NrMSgpXG57XG4gICAgTDFcbiAgICBCbG9jazIoKVxuICAgIHtcbiAgICAgICAgTDJcbiAgICB9XG59XG5gO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsZ0NBQW1DO0FBRW5DLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFTLEVBQUUsQ0FBQztJQUNoQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDekMsa0RBQWtELENBQ25ELENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUU7SUFDOUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFTLEVBQUUsQ0FBQztJQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUvQixNQUFNLG9CQUFvQixHQUN4QixtREFBbUQsQ0FBQztJQUN0RCxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFD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QUFNLGNBQWMsR0FBRzs7Ozs7Ozs7Q0FRdEIsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7Ozs7Ozs7OztDQVN4QixDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Q0FRNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tICcuLi9saWInO1xuXG50ZXN0KCdjYW5ub3Qgd3JpdGUgYmVmb3JlIG9wZW5pbmcgYSBmaWxlJywgKCkgPT4ge1xuICBjb25zdCBzb3VyY2VzID0gbmV3IENvZGVNYWtlcigpO1xuICBleHBlY3QoKCkgPT4gc291cmNlcy5saW5lKCdOb3BlIScpKS50b1Rocm93KFxuICAgIC9DYW5ub3QgZW1pdCBzb3VyY2UgbGluZXMgd2l0aG91dCBvcGVubmluZyBhIGZpbGUvLFxuICApO1xufSk7XG5cbnRlc3QoJ3NvdXJjZSBmaWxlcycsIGFzeW5jICgpID0+IHtcbiAgY29uc3Qgc291cmNlcyA9IG5ldyBDb2RlTWFrZXIoKTtcbiAgc291cmNlcy5vcGVuRmlsZSgnbXlmaWxlLmpzJyk7XG4gIHNvdXJjZXMubGluZSgnZmlyc3QgbGluZScpO1xuICBzb3VyY2VzLm9wZW5CbG9jaygnb3BlbicpO1xuICBzb3VyY2VzLmxpbmUoJ3NlY29uZCBsaW5lJyk7XG4gIHNvdXJjZXMuY2xvc2VCbG9jaygpO1xuICBzb3VyY2VzLm9wZW4oJ2dlbmVyaWMgb3BlbiBbJyk7XG4gIHNvdXJjZXMubGluZSgnYm9vbScpO1xuICBzb3VyY2VzLmxpbmUoJ2JhbScpO1xuICBzb3VyY2VzLmNsb3NlKCddJyk7XG4gIHNvdXJjZXMuY2xvc2VGaWxlKCdteWZpbGUuanMnKTtcblxuICBjb25zdCB5b3VyZmlsZVJlbGF0aXZlUGF0aCA9XG4gICAgJy4vcmVsYXRpdmUvc3ViZGlycy9hcmUvYWxzby9zdXBwb3J0ZWQveW91cmZpbGUuanMnO1xuICBzb3VyY2VzLm9wZW5GaWxlKHlvdXJmaWxlUmVsYXRpdmVQYXRoKTtcbiAgc291cmNlcy5saW5lKCd0aGlzIGlzIHlvdXIgZmlsZSBzcGVha2luZycpO1xuXG4gIC8vIGNoYW5nZSBpbmRlbnRhdGlvbiBhbmQgYmxvY2sgY2hhcnNcbiAgc291cmNlcy5pbmRlbnRhdGlvbiA9IDEwO1xuICBzb3VyY2VzLm9wZW5CbG9ja0Zvcm1hdHRlciA9IChzKSA9PiBgKC0tLSAke3N9IC0tLWA7XG4gIHNvdXJjZXMuY2xvc2VCbG9ja0Zvcm1hdHRlciA9IChzKSA9PiBgLS0tICR7c30gLS0tKWA7XG5cbiAgc291cmNlcy5vcGVuQmxvY2soJ2Jsb2NrMScpO1xuICBzb3VyY2VzLmxpbmUoJ2Jsb2NrMS5saW5lMScpO1xuICBzb3VyY2VzLmxpbmUoJ2Jsb2NrMS5saW5lMicpO1xuICBzb3VyY2VzLm9wZW5CbG9jaygnYmxvY2syJyk7XG4gIHNvdXJjZXMubGluZSgnYmxvY2syLmxpbmUxJyk7XG4gIHNvdXJjZXMuY2xvc2VCbG9jaygnYmxvY2syIChjbG9zZSknKTtcbiAgc291cmNlcy5saW5lKCdibG9jazEubGluZTMnKTtcbiAgc291cmNlcy5jbG9zZUJsb2NrKCdibG9jazEgKGNsb3NlKScpO1xuXG4gIHNvdXJjZXMuY2xvc2VGaWxlKHlvdXJmaWxlUmVsYXRpdmVQYXRoKTtcblxuICAvLyBmaWxlcyBjYW4gYWxzbyBiZSBleGNsdWRlZCBieSBhZGRpbmcgdGhlaXIgcGF0aCB0byBleGNsdWRlKClcbiAgc291cmNlcy5vcGVuRmlsZSgnZXhjbHVkZWQudHh0Jyk7XG4gIHNvdXJjZXMubGluZSgndGhpcyBmaWxlIHdpbGwgbm90IGJlIGVtaXR0ZWQgaW4gc2F2ZSgpJyk7XG4gIHNvdXJjZXMuY2xvc2VGaWxlKCdleGNsdWRlZC50eHQnKTtcblxuICAvLyBsYXRlciBpbiB0aGUgZGF5XG4gIHNvdXJjZXMuZXhjbHVkZSgnZXhjbHVkZWQudHh0Jyk7XG5cbiAgY29uc3QgZGlybmFtZSA9IGF3YWl0IGZzLm1rZHRlbXAoJy90bXAvc291cmNlLWZpbGVzJyk7XG4gIGNvbnN0IGZpbGVzID0gYXdhaXQgc291cmNlcy5zYXZlKGRpcm5hbWUpO1xuXG4gIGV4cGVjdChmaWxlcykudG9IYXZlTGVuZ3RoKDIpO1xuXG4gIGNvbnN0IG15ZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSwgJ215ZmlsZS5qcycpO1xuICBjb25zdCB5b3VyZmlsZVBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSwgeW91cmZpbGVSZWxhdGl2ZVBhdGgpO1xuXG4gIGV4cGVjdChmaWxlc1swXSkudG9CZShteWZpbGVQYXRoKTtcbiAgZXhwZWN0KGZpbGVzWzFdKS50b0JlKHlvdXJmaWxlUGF0aCk7XG5cbiAgY29uc3QgbXlmaWxlID0gKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVzWzBdKSkudG9TdHJpbmcoKTtcbiAgY29uc3QgeW91cmZpbGUgPSAoYXdhaXQgZnMucmVhZEZpbGUoZmlsZXNbMV0pKS50b1N0cmluZygpO1xuXG4gIGV4cGVjdChteWZpbGUpLnRvQmUoZXhwZWN0ZWRNeUZpbGUpO1xuICBleHBlY3QoeW91cmZpbGUpLnRvQmUoZXhwZWN0ZWRZb3VyRmlsZSk7XG59KTtcblxuLyoqXG4gKiBTaG91bGQgZmFpbCBpZiBvcGVuRmlsZSBhbmQgY2xvc2VGaWxlIGhhdmUgYXJlIG5vdCBtYXRjaGVkLlxuICovXG50ZXN0KCdjbG9zZSBmaWxlIG1pc21hdGNoJywgKCkgPT4ge1xuICBjb25zdCBzb3VyY2VzID0gbmV3IENvZGVNYWtlcigpO1xuICBzb3VyY2VzLm9wZW5GaWxlKCdBJyk7XG4gIGV4cGVjdCgoKSA9PiBzb3VyY2VzLmNsb3NlRmlsZSgnQicpKS50b1Rocm93KC9DYW5ub3QgY2xvc2UgZmlsZS8pO1xufSk7XG5cbnRlc3QoJ2N1c3RvbSBtdWx0aS1saW5lIGJsb2NrJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBtYWtlciA9IG5ldyBDb2RlTWFrZXIoKTtcblxuICBtYWtlci5vcGVuQmxvY2sgPSAocykgPT4ge1xuICAgIG1ha2VyLmxpbmUocyk7XG4gICAgbWFrZXIub3BlbigneycpO1xuICB9O1xuXG4gIG1ha2VyLm9wZW5GaWxlKCdjdXN0b20tYmxvY2tzLmNwcCcpO1xuICBtYWtlci5vcGVuQmxvY2soJ0Jsb2NrMSgpJyk7XG4gIG1ha2VyLmxpbmUoJ0wxJyk7XG4gIG1ha2VyLm9wZW5CbG9jaygnQmxvY2syKCknKTtcbiAgbWFrZXIubGluZSgnTDInKTtcbiAgbWFrZXIuY2xvc2VCbG9jaygpO1xuICBtYWtlci5jbG9zZUJsb2NrKCk7XG4gIG1ha2VyLmNsb3NlRmlsZSgnY3VzdG9tLWJsb2Nrcy5jcHAnKTtcblxuICBjb25zdCBkaXJuYW1lID0gYXdhaXQgZnMubWtkdGVtcCgnL3RtcC9zb3VyY2UtZmlsZXMnKTtcbiAgY29uc3QgZmlsZXMgPSBhd2FpdCBtYWtlci5zYXZlKGRpcm5hbWUpO1xuXG4gIGNvbnN0IGFjdHVhbCA9IChhd2FpdCBmcy5yZWFkRmlsZShmaWxlc1swXSkpLnRvU3RyaW5nKCk7XG5cbiAgZXhwZWN0KGFjdHVhbCkudG9CZShleHBlY3RlZEN1c3RvbUJsb2Nrcyk7XG59KTtcblxuY29uc3QgZXhwZWN0ZWRNeUZpbGUgPSBgZmlyc3QgbGluZVxub3BlbiB7XG4gICAgc2Vjb25kIGxpbmVcbn1cbmdlbmVyaWMgb3BlbiBbXG4gICAgYm9vbVxuICAgIGJhbVxuXVxuYDtcblxuY29uc3QgZXhwZWN0ZWRZb3VyRmlsZSA9IGB0aGlzIGlzIHlvdXIgZmlsZSBzcGVha2luZ1xuKC0tLSBibG9jazEgLS0tXG4gICAgICAgICAgYmxvY2sxLmxpbmUxXG4gICAgICAgICAgYmxvY2sxLmxpbmUyXG4gICAgICAgICAgKC0tLSBibG9jazIgLS0tXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrMi5saW5lMVxuICAgICAgICAgIC0tLSBibG9jazIgKGNsb3NlKSAtLS0pXG4gICAgICAgICAgYmxvY2sxLmxpbmUzXG4tLS0gYmxvY2sxIChjbG9zZSkgLS0tKVxuYDtcblxuY29uc3QgZXhwZWN0ZWRDdXN0b21CbG9ja3MgPSBgQmxvY2sxKClcbntcbiAgICBMMVxuICAgIEJsb2NrMigpXG4gICAge1xuICAgICAgICBMMlxuICAgIH1cbn1cbmA7XG4iXX0=
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc