UNPKG

js-to-sh

Version:
675 lines (671 loc) 23.7 kB
// Generated by dts-bundle-generator v9.5.1 /** * Usado para validar se existe um certo tipo de comando existe no sistema operacional onde o script está rodando * * @async * @param {string} command * @returns {Promise<boolean>} */ declare const isCommand$1: (command: string) => Promise<boolean> /** * Verifica se o path é um diretório * * @async * @param {string} path * @returns {Promise<boolean>} */ declare const isDir$1: (path: string) => Promise<boolean> /** * Valida se o input de algo é vazio * * @param {any} content * @returns {boolean} */ declare const isEmpty$1: (content: any) => boolean /** * Valida se o arquivo tem permissão de execução. * * @async * @param {string} filePath * @returns {Promise<boolean>} */ declare const isExecutable$1: (filePath: string) => Promise<boolean> /** * Valida se o path é um arquivo * * @async * @param {string} filePath * @returns {unknown} */ declare const isFile$1: (filePath: string) => Promise<boolean> /** * Valida se o input é um numero. * * @param {*} num * @returns {boolean} */ declare const isNumber$1: (num: any) => boolean /** * Valida se há permissão de leitura. * * @async * @param {string} path * @returns {Promise<boolean>} */ declare const isReadable$1: (path: string) => Promise<boolean> /** * Valida se há permissão de escrita. * * @async * @param {string} path * @returns {Promise<boolean>} */ declare const isWritable$1: (path: string) => Promise<boolean> declare global { var isDir: typeof isDir$1 var isEmpty: typeof isEmpty$1 var isExecutable: typeof isExecutable$1 var isFile: typeof isFile$1 var isNumber: typeof isNumber$1 var isReadable: typeof isReadable$1 var isWritable: typeof isWritable$1 var isCommand: typeof isCommand$1 interface globalThis { isDir: typeof isDir$1; isEmpty: typeof isEmpty$1; isExecutable: typeof isExecutable$1; isFile: typeof isFile$1; isNumber: typeof isNumber$1; isReadable: typeof isReadable$1; isWritable: typeof isWritable$1; isCommand: typeof isCommand$1; fetch: typeof fetchNew; } } export declare class Method<T extends MethodTypes, D = undefined> { interaction: MethodProps<T, D> static all: Map<'ElseStatement' | 'IfStatement' | 'BlockStatement' | 'BreakStatement' | 'ContinueStatement' | 'DebuggerStatement' | 'ClassDeclaration' | 'ClassExpression' | 'ExportDefaultDeclaration' | 'ExportAllDeclaration' | 'ExportNamedDeclaration' | 'FunctionDeclaration' | 'EmptyStatement' | 'ExpressionStatement' | 'DoWhileStatement' | 'ForInStatement' | 'ForOfStatement' | 'ForStatement' | 'WhileStatement' | 'ImportDeclaration' | 'LabeledStatement' | 'ReturnStatement' | 'SwitchStatement' | 'ThrowStatement' | 'TryStatement' | 'VariableDeclaration' | 'WithStatement' | 'ArrowFunctionExpression' | 'AssignmentExpression' | 'BinaryExpression' | 'ConditionalExpression' | 'MetaProperty' | 'ChainExpression' | 'JSXClosingElement' | 'JSXClosingFragment' | 'JSXExpressionContainer' | 'JSXOpeningElement' | 'JSXOpeningFragment' | 'JSXSpreadChild' | 'LogicalExpression' | 'NewExpression' | 'RestElement' | 'SequenceExpression' | 'SpreadElement' | 'AwaitExpression' | 'CallExpression' | 'ImportExpression' | 'FunctionExpression' | 'Literal' | 'TemplateLiteral' | 'MemberExpression' | 'ArrayExpression' | 'ArrayPattern' | 'Identifier' | 'Import' | 'JSXElement' | 'JSXFragment' | 'ObjectExpression' | 'ObjectPattern' | 'Super' | 'ThisExpression' | 'TaggedTemplateExpression' | 'UnaryExpression' | 'UpdateExpression' | 'YieldExpression' | 'PrivateIdentifier' | 'AssignmentPattern' | 'MethodDefinition' | 'Property', Method<'ElseStatement' | 'IfStatement' | 'BlockStatement' | 'BreakStatement' | 'ContinueStatement' | 'DebuggerStatement' | 'ClassDeclaration' | 'ClassExpression' | 'ExportDefaultDeclaration' | 'ExportAllDeclaration' | 'ExportNamedDeclaration' | 'FunctionDeclaration' | 'EmptyStatement' | 'ExpressionStatement' | 'DoWhileStatement' | 'ForInStatement' | 'ForOfStatement' | 'ForStatement' | 'WhileStatement' | 'ImportDeclaration' | 'LabeledStatement' | 'ReturnStatement' | 'SwitchStatement' | 'ThrowStatement' | 'TryStatement' | 'VariableDeclaration' | 'WithStatement' | 'ArrowFunctionExpression' | 'AssignmentExpression' | 'BinaryExpression' | 'ConditionalExpression' | 'MetaProperty' | 'ChainExpression' | 'JSXClosingElement' | 'JSXClosingFragment' | 'JSXExpressionContainer' | 'JSXOpeningElement' | 'JSXOpeningFragment' | 'JSXSpreadChild' | 'LogicalExpression' | 'NewExpression' | 'RestElement' | 'SequenceExpression' | 'SpreadElement' | 'AwaitExpression' | 'CallExpression' | 'ImportExpression' | 'FunctionExpression' | 'Literal' | 'TemplateLiteral' | 'MemberExpression' | 'ArrayExpression' | 'ArrayPattern' | 'Identifier' | 'Import' | 'JSXElement' | 'JSXFragment' | 'ObjectExpression' | 'ObjectPattern' | 'Super' | 'ThisExpression' | 'TaggedTemplateExpression' | 'UnaryExpression' | 'UpdateExpression' | 'YieldExpression' | 'PrivateIdentifier' | 'AssignmentPattern' | 'MethodDefinition' | 'Property', unknown>> static get<T extends ExistsMethods>(methodType: T): Method<T> | undefined; constructor(interaction: MethodProps<T, D>); subprocess<T extends MethodTypes, D = undefined>(methodType: T, node: ASTMap[T], data: D): string | string[]; } export declare class Transpiler { static tabs: number static options: TransformOptions static globalDeclarations: Record<string, string> ast: Program constructor(options: TransformOptions); /** * Carrega o AST do javascript, gera um json com todas as informações necessarias para a conversão para shell script * * @param {string | undefined} code * @returns {Promise<(Program)>} */ static loader(code?: string): Program; parser(ast?: (Program)): string; /** * Retorna o operador equivalente do javascript para o shell script * * @param {string} value * @returns {string} */ static parseOperator(value: string): string; /** * Formata retornos de strings para diversos tipo de uso (if, echo) * * @param {Expression['type']} type * @param {(string | string[])} content * @returns {string} */ static parseReturnString(type: Expression['type'] | PrivateIdentifier['type'], content: string | string[]): string; } export declare const fetchNew: (input: string | URL | globalThis.Request, init?: Omit<RequestInit, 'credentials'>) => Promise<Response> /** * Quebra um array em linhas * Caso a linha esteja vazia, pule! * Caso seja o ultimo elemento da array, não quebre a linha. * * @export * @param {string[]} array * @returns {string} */ export declare function breakLines(array: (string | number)[]): string; /** * Retorna o indent para melhor formatação no shell script * * @export * @param {number} tabs * @returns {string} */ export declare function getTabs(tabs: number): string; export interface AccessorProperty extends _Node { type: 'AccessorProperty'; key: PrivateIdentifier | Expression; value: any; decorators?: Decorator[]; computed: boolean; static: boolean; } export interface ArrayExpression extends _Node { type: 'ArrayExpression'; elements: (Expression | SpreadElement | null)[]; } export interface ArrayPattern extends _Node { type: 'ArrayPattern'; elements: Expression[]; } export interface ArrowFunctionExpression extends _Node { type: 'ArrowFunctionExpression'; params: Parameter[]; body: Expression | BlockStatement; async: boolean; expression: boolean; } export interface AssignmentExpression extends _Node { type: 'AssignmentExpression'; operator: string; left: Expression; right: Expression; } export interface AssignmentPattern extends _Node { type: 'AssignmentPattern'; left: BindingPattern | Identifier; right?: Expression; } export interface AwaitExpression extends _Node { type: 'AwaitExpression'; argument: Expression; } export interface BinaryExpression extends _Node { type: 'BinaryExpression'; operator: string; left: Expression | PrivateIdentifier; right: Expression; } export interface BlockStatement extends BlockStatementBase { type: 'BlockStatement'; } export interface BlockStatementBase extends _Node { body: Statement[]; } export interface BreakStatement extends _Node { type: 'BreakStatement'; label: Identifier | null; } export interface CallExpression extends _Node { type: 'CallExpression'; callee: any; arguments: (Expression | SpreadElement)[]; optional?: boolean; } export interface CatchClause extends _Node { type: 'CatchClause'; param: BindingPattern | Identifier | null; body: BlockStatement; } export interface ChainExpression extends _Node { type: 'ChainExpression'; expression: CallExpression | MemberExpression; } export interface ClassBody extends _Node { type: 'ClassBody'; body: (ClassElement | PropertyDefinition$1 | AccessorProperty | StaticBlock)[]; } export interface ClassDeclaration extends ClassDeclarationBase { type: 'ClassDeclaration'; } export interface ClassDeclarationBase extends _Node { id: Identifier | null; body: ClassBody; superClass: Expression | null; decorators?: Decorator[]; } export interface ClassExpression extends ClassDeclarationBase { type: 'ClassExpression'; } export interface ConditionalExpression extends _Node { type: 'ConditionalExpression'; test: Expression; consequent: Expression; alternate: Expression; } export interface ContinueStatement extends _Node { type: 'ContinueStatement'; label: Identifier | null; } export interface DebuggerStatement extends _Node { type: 'DebuggerStatement'; } export interface Decorator extends _Node { type: 'Decorator'; expression: LeftHandSideExpression; } export interface DoWhileStatement extends _Node { type: 'DoWhileStatement'; test: Expression; body: Statement; } export interface EmptyStatement extends _Node { type: 'EmptyStatement'; } export interface ExportAllDeclaration extends _Node { type: 'ExportAllDeclaration'; source: Literal; exported: Identifier | Literal | null; attributes?: ImportAttribute[]; } export interface ExportDefaultDeclaration extends _Node { type: 'ExportDefaultDeclaration'; declaration: ExportDeclaration | Expression; } export interface ExportNamedDeclaration extends _Node { type: 'ExportNamedDeclaration'; declaration: ExportDeclaration | null; specifiers: ExportSpecifier[]; source: Literal | null; attributes?: ImportAttribute[]; } export interface ExportSpecifier extends _Node { type: 'ExportSpecifier'; local: Identifier | Literal; exported: Identifier | Literal; } export interface ExpressionStatement extends _Node { type: 'ExpressionStatement'; expression: Expression; } export interface ForInStatement extends _Node { type: 'ForInStatement'; left: ForInitialiser; right: Expression; body: Statement; } export interface ForOfStatement extends _Node { type: 'ForOfStatement'; left: ForInitialiser; right: Expression; body: Statement; await: boolean; } export interface ForStatement extends _Node { type: 'ForStatement'; init: Expression | ForInitialiser | null; test: Expression | null; update: Expression | null; body: Statement; } export interface FunctionDeclaration extends FunctionDeclarationBase { type: 'FunctionDeclaration'; } export interface FunctionDeclarationBase extends _Node { id: Identifier | null; generator: boolean; async: boolean; params: Parameter[]; body?: BlockStatement | null; } export interface FunctionExpression extends FunctionDeclarationBase { type: 'FunctionExpression'; } export interface Identifier extends _Node { type: 'Identifier'; name: string; } export interface IfStatement extends _Node { type: 'IfStatement'; test: Expression; consequent: Statement; alternate: Statement | null; } export interface Import extends _Node { type: 'Import'; } export interface ImportAttribute extends _Node { type: 'ImportAttribute'; key: Identifier | Literal; value: Literal; } export interface ImportDeclaration extends _Node { type: 'ImportDeclaration'; source: Literal; specifiers: ImportClause[]; attributes?: ImportAttribute[]; } export interface ImportDefaultSpecifier extends _Node { type: 'ImportDefaultSpecifier'; local: Identifier; } export interface ImportExpression extends _Node { type: 'ImportExpression'; source: Expression; options?: Expression | null; } export interface ImportNamespaceSpecifier extends _Node { type: 'ImportNamespaceSpecifier'; local: Identifier; } export interface ImportSpecifier extends _Node { type: 'ImportSpecifier'; local: Identifier; imported: Identifier | Literal; } export interface JSXAttribute extends _Node { type: 'JSXAttribute'; name: JSXNamespacedName | JSXIdentifier; value: JSXAttributeValue; } export interface JSXClosingElement extends _Node { type: 'JSXClosingElement'; name: JSXTagNameExpression; } export interface JSXClosingFragment extends _Node { type: 'JSXClosingFragment'; } export interface JSXElement extends _Node { type: 'JSXElement'; openingElement: JSXOpeningElement; closingElement: JSXClosingElement | null; children: JSXChild[]; } export interface JSXEmptyExpression extends _Node { type: 'JSXEmptyExpression'; } export interface JSXExpressionContainer extends _Node { type: 'JSXExpressionContainer'; expression: Expression | JSXEmptyExpression; } export interface JSXFragment extends _Node { type: 'JSXFragment'; openingFragment: JSXOpeningFragment; closingFragment: JSXClosingFragment; children: JSXChild[]; } export interface JSXIdentifier extends _Node { type: 'JSXIdentifier'; name: string; } export interface JSXMemberExpression extends _Node { type: 'JSXMemberExpression'; object: JSXTagNameExpression; property: JSXIdentifier; } export interface JSXNamespacedName extends _Node { type: 'JSXNamespacedName'; namespace: JSXIdentifier | JSXMemberExpression; name: JSXIdentifier; } export interface JSXOpeningElement extends _Node { type: 'JSXOpeningElement'; selfClosing: boolean; name: JSXTagNameExpression; attributes: (JSXAttribute | JSXSpreadAttribute)[]; } export interface JSXOpeningFragment extends _Node { type: 'JSXOpeningFragment'; } export interface JSXSpreadAttribute extends _Node { type: 'JSXSpreadAttribute'; argument: Expression; } export interface JSXSpreadChild extends _Node { type: 'JSXSpreadChild'; expression: Expression | JSXEmptyExpression; } export interface JSXText extends _Node { type: 'JSXText'; value: string; raw?: string; } export interface LabeledStatement extends _Node { type: 'LabeledStatement'; label: Identifier; body: Statement; } export interface Literal extends _Node { type: 'Literal'; value: boolean | number | string | null | RegExp | bigint; raw?: string; } export interface LogicalExpression extends _Node { type: 'LogicalExpression'; operator: string; left: Expression; right: Expression; } export interface MemberExpression extends _Node { type: 'MemberExpression'; object: Expression | Super; property: Expression | PrivateIdentifier; computed?: boolean; optional?: boolean; } export interface MetaProperty extends _Node { type: 'MetaProperty'; meta: Identifier; property: Identifier; } export interface MethodDefinition extends MethodDefinitionBase { type: 'MethodDefinition'; } export interface MethodDefinitionBase extends _Node { key: Expression | PrivateIdentifier | null; value: FunctionExpression; computed: boolean; static: boolean; kind: 'method' | 'get' | 'set' | 'constructor'; decorators?: Decorator[]; } export interface NewExpression extends _Node { type: 'NewExpression'; callee: LeftHandSideExpression; arguments: Expression[]; } export interface ObjectExpression extends _Node { type: 'ObjectExpression'; properties: ObjectLiteralElementLike[]; } export interface ObjectPattern extends _Node { type: 'ObjectPattern'; properties: ObjectLiteralElementLike[]; } export interface Position { line: number; column: number; } export interface PrivateIdentifier extends _Node { type: 'PrivateIdentifier'; name: string; } export interface Program extends _Node { type: 'Program'; body: Statement[]; sourceType: 'module' | 'script'; } export interface Property extends _Node { type: 'Property'; key: Expression; value: Expression | AssignmentPattern | BindingPattern | Identifier; computed: boolean; method: boolean; shorthand: boolean; kind: 'init' | 'get' | 'set'; } export interface RestElement extends _Node { type: 'RestElement'; argument: BindingPattern | Identifier | Expression | PropertyName; value?: AssignmentPattern; } export interface ReturnStatement extends _Node { type: 'ReturnStatement'; argument: Expression | null; } export interface SequenceExpression extends _Node { type: 'SequenceExpression'; expressions: Expression[]; } export interface SourceLocation { source?: string | null; start: Position; end: Position; } export interface SpreadElement extends _Node { type: 'SpreadElement'; argument: SpreadArgument; } export interface StaticBlock extends BlockStatementBase { type: 'StaticBlock'; } export interface Super extends _Node { type: 'Super'; } export interface SwitchCase extends _Node { type: 'SwitchCase'; test: Expression | null; consequent: Statement[]; } export interface SwitchStatement extends _Node { type: 'SwitchStatement'; discriminant: Expression; cases: SwitchCase[]; } export interface TaggedTemplateExpression extends _Node { type: 'TaggedTemplateExpression'; tag: Expression; quasi: TemplateLiteral; } export interface TemplateElement extends _Node { type: 'TemplateElement'; value: { raw: string; cooked: string | null; }; tail: boolean; } export interface TemplateLiteral extends _Node { type: 'TemplateLiteral'; quasis: TemplateElement[]; expressions: Expression[]; } export interface ThisExpression extends _Node { type: 'ThisExpression'; } export interface ThrowStatement extends _Node { type: 'ThrowStatement'; argument: Expression; } export interface TransformOptions { path: string; cwd?: string; debug?: boolean; } export interface TryStatement extends _Node { type: 'TryStatement'; block: BlockStatement; handler: CatchClause | null; finalizer: BlockStatement | null; } export interface UnaryExpression extends _Node { type: 'UnaryExpression'; operator: UnaryOperator; prefix: true; argument: Expression; } export interface UpdateExpression extends _Node { type: 'UpdateExpression'; operator: UpdateOperator; argument: Expression; prefix: boolean; } export interface VariableDeclaration extends _Node { type: 'VariableDeclaration'; declarations: VariableDeclarator[]; kind: 'let' | 'const' | 'var'; } export interface VariableDeclarator extends _Node { type: 'VariableDeclarator'; id: Expression | BindingPattern | Identifier; init: Expression | null; definite?: boolean; } export interface WhileStatement extends _Node { type: 'WhileStatement'; test: Expression; body: Statement; } export interface WithStatement extends _Node { type: 'WithStatement'; object: Expression; body: Statement; } export interface YieldExpression extends _Node { type: 'YieldExpression'; delegate: boolean; argument?: Expression | null; } export interface _Node { start?: number; end?: number; range?: [ number, number ]; loc?: SourceLocation | null; } export type ASTMap = { [NodeType in ASTNode as NodeType['type']]: NodeType; }; export type ASTNode = Statement | Expression | PrivateIdentifier | Parameter | ElseStatement | ObjectLiteralElementLike; export type BindingPattern = ArrayPattern | ObjectPattern | Identifier; export type ClassElement = FunctionExpression | MethodDefinition; export type DeclarationStatement = ClassDeclaration | ClassExpression | ExportDefaultDeclaration | ExportAllDeclaration | ExportNamedDeclaration | FunctionDeclaration; export type ElseStatement = ({ type: 'ElseStatement'; }) & Omit<IfStatement, 'type'>; export type ExistsMethods = ASTMap['Property' | 'ArrayExpression' | 'ArrowFunctionExpression' | 'AwaitExpression' | 'BinaryExpression' | 'CallExpression' | 'ClassDeclaration' | 'FunctionExpression' | 'Identifier' | 'Literal' | 'MemberExpression' | 'MetaProperty' | 'NewExpression' | 'ObjectExpression' | 'PrivateIdentifier' | 'TemplateLiteral' | 'BlockStatement' | 'BreakStatement' | 'ElseStatement' | 'ExpressionStatement' | 'ForOfStatement' | 'FunctionDeclaration' | 'IfStatement' | 'ImportDeclaration' | 'ReturnStatement' | 'SwitchStatement' | 'VariableDeclaration']['type']; export type ExportDeclaration = ClassDeclaration | ClassExpression | FunctionDeclaration | VariableDeclaration; export type Expression = ArrowFunctionExpression | AssignmentExpression | BinaryExpression | ConditionalExpression | MetaProperty | ChainExpression | JSXClosingElement | JSXClosingFragment | JSXExpressionContainer | JSXOpeningElement | JSXOpeningFragment | JSXSpreadChild | LogicalExpression | NewExpression | RestElement | SequenceExpression | SpreadElement | AwaitExpression | LeftHandSideExpression | UnaryExpression | UpdateExpression | YieldExpression; export type ForInitialiser = Expression | VariableDeclaration; export type ImportClause = ImportDefaultSpecifier | ImportNamespaceSpecifier | ImportSpecifier; export type IterationStatement = DoWhileStatement | ForInStatement | ForOfStatement | ForStatement | WhileStatement; export type JSXAttributeValue = JSXIdentifier | Literal | JSXElement | JSXFragment | JSXExpressionContainer | JSXSpreadChild | null; export type JSXChild = JSXElement | JSXExpression | JSXFragment | JSXText; export type JSXExpression = JSXEmptyExpression | JSXSpreadChild | JSXExpressionContainer; export type JSXTagNameExpression = JSXIdentifier | JSXMemberExpression | JSXNamespacedName; export type LeftHandSideExpression = CallExpression | ChainExpression | ImportExpression | ClassExpression | ClassDeclaration | FunctionExpression | LiteralExpression | MemberExpression | PrimaryExpression | TaggedTemplateExpression; export type LiteralExpression = Literal | TemplateLiteral; export type MethodProps<T extends MethodTypes, D = undefined> = { type: T; data?: D; parser: (node: ASTMap[T], options: MethodProps<T, D> & { subprocess<T extends MethodTypes, D>(methodType: T, node: ASTMap[T], data?: D): string | string[]; }) => string | string[]; }; export type MethodTypes = keyof ASTMap; export type ObjectLiteralElementLike = MethodDefinition | Property | RestElement | SpreadElement; export type Parameter = AssignmentPattern | RestElement | ArrayPattern | ObjectPattern | Identifier; export type PrimaryExpression = ArrayExpression | ArrayPattern | ClassExpression | FunctionExpression | Identifier | Import | JSXElement | JSXFragment | JSXOpeningElement | Literal | LiteralExpression | MetaProperty | ObjectExpression | ObjectPattern | Super | TemplateLiteral | ThisExpression; export type PropertyName = Identifier | Literal; export type RequestType = Omit<RequestInit, 'credentials'>; export type SpreadArgument = BindingPattern | Identifier | Expression | PropertyName | SpreadElement; export type Statement = BlockStatement | BreakStatement | ContinueStatement | DebuggerStatement | DeclarationStatement | EmptyStatement | ExpressionStatement | IfStatement | IterationStatement | ImportDeclaration | LabeledStatement | ReturnStatement | SwitchStatement | ThrowStatement | TryStatement | VariableDeclaration | WithStatement; export type UnaryOperator = '-' | '+' | '!' | '~' | 'typeof' | 'void' | 'delete'; export type UpdateOperator = '++' | '--'; interface PropertyDefinition$1 extends _Node { type: 'PropertyDefinition'; key: PrivateIdentifier | Expression; value: any; decorators?: Decorator[]; computed: boolean; static: boolean; } export { isCommand$1 as isCommand, isDir$1 as isDir, isEmpty$1 as isEmpty, isExecutable$1 as isExecutable, isFile$1 as isFile, isNumber$1 as isNumber, isReadable$1 as isReadable, isWritable$1 as isWritable, } export {}