REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 73.09 KB
Close
/home/byroehnu/easepay.easetack.com/node_modules/@babel/generator/lib/printer.js.map
Text
Base64
{"version":3,"names":["_buffer","require","_index","_nodes","_t","_tokenMap","_types2","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumMember","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","Printer","constructor","format","map","tokens","originalCode","tokenContext","TokenContext","normal","_tokens","_originalCode","_currentNode","_currentTypeId","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_lastCommentLine","_innerCommentsState","_flags","tokenMap","_boundGetRawIdentifier","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","preserveFormat","compact","concise","retainLines","retainFunctionParens","auxiliaryCommentBefore","auxiliaryCommentAfter","enterDelimited","oldNoLineTerminatorAfterNode","generate","ast","TokenMap","_getRawIdentifier","bind","print","_maybeAddAuxComment","get","flags","dedent","semicolon","force","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_appendChar","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","lastCp","getLastChar","word","str","noLineTerminatorAfter","forInOrInitHeadAccumulatePassThroughMask","_maybePrintInnerComments","_catchUpToCurrentToken","lastChar","charCodeAt","_append","setLastChar","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","mayNeedSpace","strFirst","tokenChar","char","newline","i","getNewlineCount","j","_newline","endsWith","checkQueue","_last","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_queuedChar","findMatching","_maybeIndent","append","noIndent","appendChar","queue","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","printTerminatorless","resetTokenContext","trailingCommentsLineOffset","_node$leadingComments","_node$leadingComments2","extra","changedFlags","_compact","nodeInfo","generatorInfosMap","undefined","ReferenceError","JSON","stringify","name","printMethod","nodeId","needsParens","parent","parentId","oldInAux","oldTokenContext","forInOrInitHeadAccumulate","parenthesized","shouldPrintParens","parentNeedsParens","leadingComments","callee","indentParenthesized","some","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","_printComment","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","_nodes$0$loc","startLine","len","hasContent","call","lastCommentLine","_nodes$loc","offset","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","state","printInnerComments","nextToken","hasSpace","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","String","fromCharCode","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport Buffer from \"./buffer.ts\";\nimport type { Loc, Pos } from \"./buffer.ts\";\nimport { isLastChild, parentNeedsParens } from \"./node/index.ts\";\nimport { generatorInfosMap } from \"./nodes.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\n\nimport type { GeneratorOptions } from \"./index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nimport { TokenContext } from \"./node/index.ts\";\nimport { _getRawIdentifier } from \"./generators/types.ts\";\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nconst enum PRINTER_FLAGS {\n EMPTY = 0,\n PRESERVE_FORMAT = 1 << 0,\n COMPACT = 1 << 1,\n CONCISE = 1 << 2,\n RETAIN_LINES = 1 << 3,\n RETAIN_FUNCTION_PARENS = 1 << 4,\n AUX_COMMENTS = 1 << 5,\n}\n\nconst enum LAST_CHAR_KINDS {\n EMPTY = 0,\n NORMAL = -1,\n INTEGER = -2,\n WORD = -3,\n}\n\nconst enum INNER_COMMENTS_STATE {\n DISALLOWED = 0,\n ALLOWED = 1,\n PRINTED = 2,\n\n WITH_INDENT = 4,\n MASK = 3,\n}\n\nconst enum PRINT_COMMENTS_RESULT {\n PRINTED_NONE = 0,\n PRINTED_SOME = 1,\n PRINTED_ALL = 2,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean | undefined;\n retainLines: boolean | undefined;\n retainFunctionParens: boolean | undefined;\n comments: boolean | undefined;\n auxiliaryCommentBefore: string | undefined;\n auxiliaryCommentAfter: string | undefined;\n compact: boolean | \"auto\" | undefined;\n minified: boolean | undefined;\n concise: boolean | undefined;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n * @deprecated Removed in Babel 8.\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface PrintSequenceOptions {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap | null,\n tokens: Token[] | null = null,\n originalCode: string | null = null,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap || null;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n\n const {\n preserveFormat,\n compact,\n concise,\n retainLines,\n retainFunctionParens,\n } = format;\n if (preserveFormat) {\n this._flags |= PRINTER_FLAGS.PRESERVE_FORMAT;\n }\n if (compact) {\n this._flags |= PRINTER_FLAGS.COMPACT;\n }\n if (concise) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n }\n if (retainLines) {\n this._flags |= PRINTER_FLAGS.RETAIN_LINES;\n }\n if (retainFunctionParens) {\n this._flags |= PRINTER_FLAGS.RETAIN_FUNCTION_PARENS;\n }\n if (format.auxiliaryCommentBefore || format.auxiliaryCommentAfter) {\n this._flags |= PRINTER_FLAGS.AUX_COMMENTS;\n }\n }\n declare _inputMap: TraceMap | null;\n\n declare format: Format;\n\n enterDelimited() {\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (oldNoLineTerminatorAfterNode !== null) {\n this._noLineTerminatorAfterNode = null;\n }\n return oldNoLineTerminatorAfterNode;\n }\n\n tokenContext: number = TokenContext.normal;\n\n _tokens: Token[] | null = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node | null = null;\n _currentTypeId: number | null = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _lastCommentLine = 0;\n _innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n _flags = PRINTER_FLAGS.EMPTY;\n\n tokenMap: TokenMap | null = null;\n\n _boundGetRawIdentifier: ((node: t.Identifier) => string) | null = null;\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens!, this._originalCode!);\n this._boundGetRawIdentifier = _getRawIdentifier.bind(this);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent += this._indentRepeat;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent -= this._indentRepeat;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n const node = this._currentNode!;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap!.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap!.getIndexes(this._currentNode!)!;\n this._catchUpTo(this._tokens![indexes[indexes.length - 1]].loc.start);\n }\n }\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this._flags & (PRINTER_FLAGS.PRESERVE_FORMAT | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (force) {\n this._space();\n } else {\n const lastCp = this.getLastChar(true);\n if (\n lastCp !== 0 &&\n lastCp !== charCodes.space &&\n lastCp !== charCodes.lineFeed\n ) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str);\n\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) this._catchUpToCurrentToken(str);\n\n const lastChar = this.getLastChar();\n\n if (\n lastChar === LAST_CHAR_KINDS.INTEGER ||\n lastChar === LAST_CHAR_KINDS.WORD ||\n // prevent concatenating words and creating // comment out of division and regex\n (lastChar === charCodes.slash && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this.setLastChar(-3);\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted immediately after them.\n if (\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot\n ) {\n this.setLastChar(LAST_CHAR_KINDS.INTEGER);\n }\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(\n str: string,\n maybeNewline = false,\n occurrenceCount = 0,\n mayNeedSpace: boolean = false,\n ): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(str, occurrenceCount);\n }\n\n if (mayNeedSpace) {\n const strFirst = str.charCodeAt(0);\n if (\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (((strFirst === charCodes.dash && str === \"--\") ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo) &&\n this.getLastChar() === charCodes.exclamationMark) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign &&\n this.getLastChar() === charCodes.plusSign) ||\n (strFirst === charCodes.dash &&\n this.getLastChar() === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot &&\n this.getLastChar() === LAST_CHAR_KINDS.INTEGER)\n ) {\n this._space();\n }\n }\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number, occurrenceCount = 0): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(char, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(char, occurrenceCount);\n }\n\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign &&\n this.getLastChar() === charCodes.plusSign) ||\n (char === charCodes.dash && this.getLastChar() === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this.getLastChar() === LAST_CHAR_KINDS.INTEGER)\n ) {\n this._space();\n }\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, flags = this._flags): void {\n if (i <= 0) return;\n\n if (flags & (PRINTER_FLAGS.RETAIN_LINES | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (flags & PRINTER_FLAGS.CONCISE) {\n this.space();\n return;\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar(true) === char;\n }\n\n getLastChar(checkQueue?: boolean): number {\n return this._buf.getLastChar(checkQueue);\n }\n\n setLastChar(char: number) {\n this._buf._last = char;\n }\n\n exactSource(loc: Loc | null | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | null | undefined,\n columnOffset: number,\n ): void {\n if (!loc || this.format.preserveFormat) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n // Drop trailing spaces when a newline is inserted.\n if (this._buf._queuedChar === charCodes.space) this._buf._queuedChar = 0;\n\n this._appendChar(charCodes.lineFeed, true);\n }\n\n _catchUpToCurrentToken(\n str: string | number,\n occurrenceCount: number = 0,\n ): void {\n // Assert: this.tokenMap\n\n const token = this.tokenMap!.findMatching(\n this._currentNode!,\n str,\n occurrenceCount,\n );\n if (token) this._catchUpTo(token.loc.start);\n\n if (\n this._printSemicolonBeforeNextToken !== -1 &&\n this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()\n ) {\n this._appendChar(charCodes.semicolon, true);\n }\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeIndent();\n\n this._buf.append(str, maybeNewline);\n }\n\n _appendChar(char: number, noIndent?: boolean): void {\n if (!noIndent) {\n this._maybeIndent();\n }\n\n this._buf.appendChar(char);\n }\n\n _queue(char: typeof charCodes.space | typeof charCodes.semicolon): void {\n this._buf.queue(char);\n\n this.setLastChar(-1);\n }\n\n _maybeIndent(): void {\n const indent = this._shouldIndent();\n if (indent > 0) {\n this._buf._appendChar(-1, indent, false);\n }\n }\n\n _shouldIndent() {\n // we've got a newline before us so prepend on the indentation\n return this.endsWith(charCodes.lineFeed) ? this._indent : 0;\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n const flags = this._flags;\n if ((flags & PRINTER_FLAGS.PRESERVE_FORMAT) === 0) {\n if (flags & PRINTER_FLAGS.RETAIN_LINES && loc?.[prop]) {\n this.catchUp(loc[prop].line);\n }\n return;\n }\n\n // catch up to this nodes newline if we're behind\n const pos = loc?.[prop];\n if (pos != null) this._catchUpTo(pos);\n }\n\n _catchUpTo({ line, column, index }: Pos) {\n const count = line - this._buf.getCurrentLine();\n if (count > 0 && this._noLineTerminator) {\n // We cannot inject new lines when _noLineTemrinator is set\n // to `true`, or we would generate invalid code.\n return;\n }\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n\n const spacesCount =\n count > 0 ? column : column - this._buf.getCurrentColumn();\n if (spacesCount > 0) {\n const spaces = this._originalCode\n ? this._originalCode\n .slice(index - spacesCount, index)\n // https://tc39.es/ecma262/#sec-white-space\n .replace(/[^\\t\\v\\f\\uFEFF\\p{Space_Separator}]/gu, \" \")\n : \" \".repeat(spacesCount);\n this._append(spaces, false);\n this.setLastChar(charCodes.space);\n }\n }\n\n printTerminatorless(node: t.Node) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n this._noLineTerminator = true;\n this.print(node);\n }\n\n print(\n node: t.Node | null | undefined,\n noLineTerminatorAfter: boolean = false,\n resetTokenContext: boolean = false,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n ) {\n if (!node) return;\n\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n\n const { type, loc, extra } = node;\n\n const flags = this._flags;\n let changedFlags = false;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n changedFlags = true;\n }\n\n const nodeInfo = generatorInfosMap.get(type);\n if (nodeInfo === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n type,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n const [printMethod, nodeId, needsParens] = nodeInfo;\n\n const parent = this._currentNode;\n const parentId = this._currentTypeId;\n this._currentNode = node;\n this._currentTypeId = nodeId;\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode;\n }\n\n let oldInAux;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n oldInAux = this._insideAux;\n this._insideAux = loc == null;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n }\n\n let oldTokenContext = 0;\n if (resetTokenContext) {\n oldTokenContext = this.tokenContext;\n if (oldTokenContext & TokenContext.forInOrInitHeadAccumulate) {\n this.tokenContext = 0;\n } else {\n oldTokenContext = 0;\n }\n }\n\n const parenthesized =\n extra != null && (extra.parenthesized as boolean | undefined);\n let shouldPrintParens =\n (parenthesized && flags & PRINTER_FLAGS.PRESERVE_FORMAT) ||\n (parenthesized &&\n flags & PRINTER_FLAGS.RETAIN_FUNCTION_PARENS &&\n nodeId === __node(\"FunctionExpression\")) ||\n (parent &&\n (parentNeedsParens(node, parent, parentId!) ||\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n (needsParens != null &&\n needsParens(\n node,\n parent,\n parentId!,\n this.tokenContext,\n flags & PRINTER_FLAGS.PRESERVE_FORMAT\n ? this._boundGetRawIdentifier!\n : undefined,\n ))));\n\n if (\n !shouldPrintParens &&\n parenthesized &&\n node.leadingComments?.length &&\n node.leadingComments[0].type === \"CommentBlock\"\n ) {\n switch (parentId) {\n case __node(\"ExpressionStatement\"):\n case __node(\"VariableDeclarator\"):\n case __node(\"AssignmentExpression\"):\n case __node(\"ReturnStatement\"):\n break;\n case __node(\"CallExpression\"):\n case __node(\"OptionalCallExpression\"):\n case __node(\"NewExpression\"):\n // @ts-expect-error checked by parentTypeId\n if (parent.callee !== node) break;\n // falls through\n default:\n shouldPrintParens = true;\n }\n }\n\n let indentParenthesized = false;\n if (\n !shouldPrintParens &&\n this._noLineTerminator &&\n (node.leadingComments?.some(commentIsNewline) ||\n (flags & PRINTER_FLAGS.RETAIN_LINES &&\n loc &&\n loc.start.line > this._buf.getCurrentLine()))\n ) {\n shouldPrintParens = true;\n indentParenthesized = true;\n }\n\n let oldNoLineTerminatorAfterNode;\n if (!shouldPrintParens) {\n noLineTerminatorAfter ||=\n !!parent &&\n this._noLineTerminatorAfterNode === parent &&\n isLastChild(parent, node);\n if (noLineTerminatorAfter) {\n if (node.trailingComments?.some(commentIsNewline)) {\n if (isExpression(node)) shouldPrintParens = true;\n } else {\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = node;\n }\n }\n }\n\n if (shouldPrintParens) {\n this.token(\"(\");\n if (indentParenthesized) this.indent();\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n if (!resetTokenContext) {\n oldTokenContext = this.tokenContext;\n }\n if (oldTokenContext & TokenContext.forInOrInitHeadAccumulate) {\n this.tokenContext = 0;\n }\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = null;\n }\n\n this._printLeadingComments(node, parent);\n\n this.exactSource(\n nodeId === __node(\"Program\") || nodeId === __node(\"File\") ? null : loc,\n printMethod.bind(this, node, parent),\n );\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n if (indentParenthesized) {\n this.dedent();\n this.newline();\n }\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n if (oldTokenContext) this.tokenContext = oldTokenContext;\n\n // end\n this._currentNode = parent;\n this._currentTypeId = parentId;\n if (changedFlags) {\n this._flags = flags;\n }\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._insideAux = oldInAux!;\n }\n\n if (oldNoLineTerminatorAfterNode != null) {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: t.Node[] | undefined | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintJoinOptions[\"separator\"] | null,\n printTrailingSeparator?: boolean | null,\n resetTokenContext?: boolean,\n trailingCommentsLineOffset?: number,\n ) {\n if (!nodes?.length) return;\n\n const flags = this._flags;\n\n if (indent == null && flags & PRINTER_FLAGS.RETAIN_LINES) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent(flags);\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // don't add newlines at the beginning of the file\n if (statement && i === 0 && this._buf.hasContent()) {\n this.newline(1, flags);\n }\n\n this.print(\n node,\n false,\n resetTokenContext,\n trailingCommentsLineOffset || 0,\n );\n\n if (separator != null) {\n if (i < len - 1) separator.call(this, i, false);\n else if (printTrailingSeparator) separator.call(this, i, true);\n }\n\n if (statement) {\n if (i + 1 === len) {\n this.newline(1, flags);\n } else {\n const lastCommentLine = this._lastCommentLine;\n if (lastCommentLine > 0) {\n const offset =\n (nodes[i + 1].loc?.start.line || 0) - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1, flags);\n continue;\n }\n }\n\n this.newline(1, flags);\n }\n }\n }\n\n if (indent) this.dedent(flags);\n }\n\n printAndIndentOnComments(node: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node);\n if (indent) this.dedent();\n }\n\n printBlock(body: t.Statement) {\n if (body.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(body);\n }\n\n _printTrailingComments(\n node: t.Node,\n parent?: t.Node | null,\n lineOffset?: number,\n ) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n } else {\n this._lastCommentLine = 0;\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node | null) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments(\n nextTokenStr: string | number,\n nextTokenOccurrenceCount?: number,\n ) {\n const state = this._innerCommentsState;\n switch (state & INNER_COMMENTS_STATE.MASK) {\n case INNER_COMMENTS_STATE.DISALLOWED:\n this._innerCommentsState =\n INNER_COMMENTS_STATE.ALLOWED | INNER_COMMENTS_STATE.WITH_INDENT;\n return;\n case INNER_COMMENTS_STATE.ALLOWED:\n this.printInnerComments(\n (state & INNER_COMMENTS_STATE.WITH_INDENT) > 0,\n this.tokenMap?.findMatching(\n this._currentNode!,\n nextTokenStr,\n nextTokenOccurrenceCount,\n ),\n );\n }\n }\n\n printInnerComments(indent = true, nextToken?: Token | null) {\n const node = this._currentNode!;\n const comments = node.innerComments;\n if (!comments?.length) {\n this._innerCommentsState = INNER_COMMENTS_STATE.PRINTED;\n return;\n }\n\n const hasSpace = this.endsWith(charCodes.space);\n if (indent) this.indent();\n\n switch (\n this._printComments(\n COMMENT_TYPE.INNER,\n comments,\n node,\n undefined,\n undefined,\n nextToken,\n )\n ) {\n case PRINT_COMMENTS_RESULT.PRINTED_ALL:\n this._innerCommentsState = INNER_COMMENTS_STATE.PRINTED;\n // falls through\n case PRINT_COMMENTS_RESULT.PRINTED_SOME:\n if (hasSpace) this.space();\n }\n\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._innerCommentsState &= ~INNER_COMMENTS_STATE.WITH_INDENT;\n }\n\n printSequence(\n nodes: t.Node[],\n indent?: boolean,\n resetTokenContext?: boolean,\n trailingCommentsLineOffset?: number,\n ) {\n this.printJoin(\n nodes,\n true,\n indent ?? false,\n undefined,\n undefined,\n resetTokenContext,\n trailingCommentsLineOffset,\n );\n }\n\n printList(\n items: t.Node[] | null | undefined,\n printTrailingSeparator?: boolean | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintListOptions[\"separator\"],\n resetTokenContext?: boolean,\n ) {\n this.printJoin(\n items,\n statement,\n indent,\n separator ?? commaSeparator,\n printTrailingSeparator,\n resetTokenContext,\n );\n }\n\n shouldPrintTrailingComma(listEnd: string | number): boolean | null {\n if (!this.tokenMap) return null;\n\n const listEndIndex = this.tokenMap.findLastIndex(\n this._currentNode!,\n token =>\n this.tokenMap!.matchesOriginal(\n token,\n typeof listEnd === \"number\" ? String.fromCharCode(listEnd) : listEnd,\n ),\n );\n if (listEndIndex <= 0) return null;\n return this.tokenMap.matchesOriginal(this._tokens![listEndIndex - 1], \",\");\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(\n comment: t.Comment,\n nextToken?: Token | null,\n ): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n if (nextToken && this.tokenMap) {\n const commentTok = this.tokenMap.find(\n this._currentNode!,\n token => token.value === comment.value,\n );\n if (commentTok && commentTok.start > nextToken.start) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n switch (this.getLastChar(true)) {\n // Avoid converting a / operator into a line comment by appending /* to it\n case charCodes.slash:\n this._space();\n // falls through\n case charCodes.leftSquareBracket:\n case charCodes.leftCurlyBrace:\n case charCodes.leftParenthesis:\n break;\n\n default:\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this._flags & PRINTER_FLAGS.CONCISE) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent() || this.format.retainLines) {\n indentSize += this._indent;\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n\n if (!isBlockComment && !noLineTerminator) {\n this._newline();\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: t.Comment[],\n node: t.Node,\n parent?: t.Node | null,\n lineOffset: number = 0,\n nextToken?: Token | null,\n ): PRINT_COMMENTS_RESULT {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc!.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc!.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const { _noLineTerminator, _flags } = this;\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment, nextToken);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n return i === 0\n ? PRINT_COMMENTS_RESULT.PRINTED_NONE\n : PRINT_COMMENTS_RESULT.PRINTED_SOME;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine !== commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n const count = Math.max(\n nodeStartLine - lastLine,\n leadingCommentNewline,\n );\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n const count = Math.min(1, nodeEndLine - lastLine);\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumMember(node);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent) && parent.body === node)\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n return PRINT_COMMENTS_RESULT.PRINTED_ALL;\n }\n}\n\nexport default Printer;\n\nfunction commaSeparator(this: Printer, occurrenceCount: number, last: boolean) {\n this.tokenChar(charCodes.comma, occurrenceCount);\n if (!last) this.space();\n}\n"],"mappings":"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","ignoreList":[]}
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 2 × Files: 13
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
generators
DIR
-
drwxr-xr-x
2026-03-14 01:49:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
node
DIR
-
drwxr-xr-x
2026-03-14 01:49:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
.htaccess
127 B
lr--r--r--
2026-03-14 01:49:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
buffer.js
6.16 KB
lrw-r--r--
2026-02-28 00:26:54
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
buffer.js.map
19.07 KB
lrw-r--r--
2026-02-28 00:27:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.js
4.11 KB
lrw-r--r--
2026-02-28 00:28:54
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.js.map
13.87 KB
lrw-r--r--
2026-02-28 00:28:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
nodes.js
692 B
lrw-r--r--
2026-02-28 00:29:00
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
nodes.js.map
1.95 KB
lrw-r--r--
2026-02-28 00:29:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
printer.js
25.95 KB
lrw-r--r--
2026-02-28 00:29:04
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
printer.js.map
73.09 KB
lrw-r--r--
2026-02-28 00:29:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
source-map.js
3.01 KB
lrw-r--r--
2026-02-28 00:29:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
source-map.js.map
7.93 KB
lrw-r--r--
2026-02-28 00:29:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
token-map.js
5.53 KB
lrw-r--r--
2026-02-28 00:29:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
token-map.js.map
14.51 KB
lrw-r--r--
2026-02-28 00:29:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).