@poe-platform/safe-bash 0.1.535 → 0.1.537
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/safe-bash/chunks/chunk-JWUT4LBW.js +617 -0
- package/dist/safe-bash/chunks/chunk-JWUT4LBW.js.map +7 -0
- package/dist/safe-bash/chunks/chunk-PY37EOPJ.js +1236 -0
- package/dist/safe-bash/chunks/chunk-PY37EOPJ.js.map +7 -0
- package/dist/safe-bash/commands/pr/command.d.ts +4 -0
- package/dist/safe-bash/commands/pr/command.d.ts.map +1 -0
- package/dist/safe-bash/commands/pr/command.js +117 -0
- package/dist/safe-bash/commands/pr/command.js.map +1 -0
- package/dist/safe-bash/commands/pr/format.d.ts +52 -0
- package/dist/safe-bash/commands/pr/format.d.ts.map +1 -0
- package/dist/safe-bash/commands/pr/format.js +527 -0
- package/dist/safe-bash/commands/pr/format.js.map +1 -0
- package/dist/safe-bash/commands/pr/index.browser.js +13 -0
- package/dist/safe-bash/commands/pr/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/pr/index.d.ts +7 -0
- package/dist/safe-bash/commands/pr/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/pr/index.js +13 -0
- package/dist/safe-bash/commands/pr/index.js.map +1 -0
- package/dist/safe-bash/commands/pr/internal.d.ts +61 -0
- package/dist/safe-bash/commands/pr/internal.d.ts.map +1 -0
- package/dist/safe-bash/commands/pr/internal.js +181 -0
- package/dist/safe-bash/commands/pr/internal.js.map +1 -0
- package/dist/safe-bash/commands/pr/io.d.ts +37 -0
- package/dist/safe-bash/commands/pr/io.d.ts.map +1 -0
- package/dist/safe-bash/commands/pr/io.js +210 -0
- package/dist/safe-bash/commands/pr/io.js.map +1 -0
- package/dist/safe-bash/commands/pr/options.d.ts +36 -0
- package/dist/safe-bash/commands/pr/options.d.ts.map +1 -0
- package/dist/safe-bash/commands/pr/options.js +250 -0
- package/dist/safe-bash/commands/pr/options.js.map +1 -0
- package/dist/safe-bash/commands/tsort/command.d.ts +4 -0
- package/dist/safe-bash/commands/tsort/command.d.ts.map +1 -0
- package/dist/safe-bash/commands/tsort/command.js +72 -0
- package/dist/safe-bash/commands/tsort/command.js.map +1 -0
- package/dist/safe-bash/commands/tsort/graph.d.ts +3 -0
- package/dist/safe-bash/commands/tsort/graph.d.ts.map +1 -0
- package/dist/safe-bash/commands/tsort/graph.js +183 -0
- package/dist/safe-bash/commands/tsort/graph.js.map +1 -0
- package/dist/safe-bash/commands/tsort/index.browser.js +13 -0
- package/dist/safe-bash/commands/tsort/index.browser.js.map +7 -0
- package/dist/safe-bash/commands/tsort/index.d.ts +7 -0
- package/dist/safe-bash/commands/tsort/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/tsort/index.js +13 -0
- package/dist/safe-bash/commands/tsort/index.js.map +1 -0
- package/dist/safe-bash/commands/tsort/internal.d.ts +50 -0
- package/dist/safe-bash/commands/tsort/internal.d.ts.map +1 -0
- package/dist/safe-bash/commands/tsort/internal.js +176 -0
- package/dist/safe-bash/commands/tsort/internal.js.map +1 -0
- package/dist/safe-bash/commands/tsort/io.d.ts +29 -0
- package/dist/safe-bash/commands/tsort/io.d.ts.map +1 -0
- package/dist/safe-bash/commands/tsort/io.js +192 -0
- package/dist/safe-bash/commands/tsort/io.js.map +1 -0
- package/dist/safe-bash/core.browser.js +46 -5
- package/dist/safe-bash/core.browser.js.map +3 -3
- package/dist/safe-bash/core.d.ts +2 -0
- package/dist/safe-bash/core.d.ts.map +1 -1
- package/dist/safe-bash/core.js +2 -0
- package/dist/safe-bash/core.js.map +1 -1
- package/dist/safe-bash/plugins/composition.d.ts +4 -0
- package/dist/safe-bash/plugins/composition.d.ts.map +1 -1
- package/dist/safe-bash/plugins/composition.js +7 -1
- package/dist/safe-bash/plugins/composition.js.map +1 -1
- package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
- package/dist/safe-bash/shell/runtime.js +28 -3
- package/dist/safe-bash/shell/runtime.js.map +1 -1
- package/package.json +14 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/commands/tsort/index.ts", "../../src/commands/tsort/command.ts", "../../src/commands/tsort/internal.ts", "../../src/commands/tsort/io.ts", "../../src/commands/tsort/graph.ts"],
|
|
4
|
+
"sourcesContent": ["import type { CommandDefinition, VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { createTsortCommand } from \"./command.js\";\nimport type { TsortCommandsOptions } from \"./internal.js\";\n\nexport { createTsortCommand } from \"./command.js\";\nexport type { TsortCommandsOptions, TsortLimits } from \"./internal.js\";\n\nexport function createTsortCommands(options: TsortCommandsOptions = {}): readonly CommandDefinition[] {\n return [createTsortCommand(options)];\n}\n\nexport function tsortCommands(options: TsortCommandsOptions = {}): VirtualShellPlugin {\n const commands = createTsortCommands(options);\n return { name: \"tsort-commands\", setup(host) {\n for (const command of commands) host.commands.register(command, { replace: options.replace ?? false });\n } };\n}\n", "import type { CommandDefinition } from \"../../contracts/index.js\";\nimport { createOutputOperation } from \"../../contracts/output.js\";\nimport { Budget, TsortError, quote, settings, type TsortCommandsOptions } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\nimport { sort } from \"./graph.js\";\n\nexport function createTsortCommand(options: TsortCommandsOptions = {}): CommandDefinition {\n const limits = settings(options);\n return { name: \"tsort\", description: \"Topologically sort pairs of byte-valued node names\", async execute(context) {\n const output = createOutputOperation(context, context.stdout);\n const budget = new Budget(context, limits, output.signal);\n let lifecycle: Lifecycle | undefined;\n let failure: { reason: unknown } | undefined;\n let primary: { reason: unknown } | undefined;\n let exitCode = 0;\n try {\n lifecycle = new Lifecycle(budget, output);\n const args = budget.arguments();\n const lone = args.length === 1 ? args[0]! : \"\";\n if (lone.length > 2 && (\"--help\".startsWith(lone) || \"--version\".startsWith(lone))) {\n await lifecycle.write(\"--help\".startsWith(lone) ? \"Usage: tsort [OPTION] [FILE]\\nWrite a topological ordering of whitespace-separated node pairs.\\nWith no FILE, or FILE -, read standard input.\\nOptions: --help --version\\n\" : \"tsort (virtual-bash)\\n\");\n } else {\n let optionsEnded = false;\n const files: string[] = [];\n for (const argument of args) {\n if (!optionsEnded && argument === \"--\") { optionsEnded = true; continue; }\n if (!optionsEnded && argument.startsWith(\"--\")) throw new TsortError(`unrecognized option '${argument}'`, true);\n if (!optionsEnded && argument.length > 1 && argument.startsWith(\"-\")) throw new TsortError(`invalid option -- '${argument[1]}'`, true);\n files.push(argument);\n if (context.env.POSIXLY_CORRECT !== undefined) optionsEnded = true;\n }\n if (files.length > 1) throw new TsortError(`extra operand ${quote(files[1]!)}`, true);\n const reader = new Reader(files[0] ?? \"-\", lifecycle);\n await reader.open();\n exitCode = await sort(reader, lifecycle);\n }\n } catch (error) {\n primary = { reason: error };\n if (error instanceof TsortError && !output.signal.aborted && lifecycle) {\n exitCode = 1;\n try { await lifecycle.write(`tsort: ${error.message}\\n${error.usage ? \"Try 'tsort --help' for more information.\\n\" : \"\"}`, true); }\n catch (reporting) { failure = { reason: new AggregateError([error, reporting], \"tsort failure reporting failed\") }; }\n } else failure = { reason: error };\n }\n try { await output.close(); }\n catch (cleanup) {\n const previous = failure ?? primary;\n failure = { reason: previous ? new AggregateError([previous.reason, cleanup], \"tsort execution and cleanup failed\") : cleanup };\n }\n context.signal.throwIfAborted();\n output.signal.throwIfAborted();\n if (failure) throw failure.reason;\n return { exitCode };\n } };\n}\n", "import { getCommandArguments, type CommandContext } from \"../../contracts/index.js\";\nimport { shellValueByteLength, shellValueBytes } from \"../../contracts/value.js\";\nimport { yieldTurn } from \"../../contracts/yield.js\";\nimport { PublicDiagnostic } from \"../../diagnostics.js\";\n\nexport interface TsortLimits {\n readonly maxArguments: number;\n readonly maxArgumentBytes: number;\n readonly maxInputBytes: number;\n readonly maxTokenBytes: number;\n readonly maxTokens: number;\n readonly maxNodes: number;\n readonly maxEdges: number;\n readonly maxBufferedBytes: number;\n readonly maxOutputBytes: number;\n readonly maxDiagnosticBytes: number;\n readonly maxWork: number;\n readonly maxEmptyChunks: number;\n}\n\nexport interface TsortCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<TsortLimits>;\n}\n\nexport function settings(options: TsortCommandsOptions): TsortLimits {\n const limits: TsortLimits = {\n maxArguments: 4096, maxArgumentBytes: 65_536, maxInputBytes: 33_554_432,\n maxTokenBytes: 1_048_576, maxTokens: 2_097_152, maxNodes: 131_072,\n maxEdges: 1_048_576, maxBufferedBytes: 33_554_432, maxOutputBytes: 67_108_864,\n maxDiagnosticBytes: 65_536, maxWork: 134_217_728, maxEmptyChunks: 4096, ...options.limits,\n };\n for (const [name, value] of Object.entries(limits)) {\n if (!Number.isSafeInteger(value) || value < 1) throw new RangeError(`Invalid tsort limit: ${name}`);\n }\n return Object.freeze(limits);\n}\n\nexport class TsortError extends PublicDiagnostic {\n constructor(message: string, readonly usage = false) { super(message); }\n}\n\nexport function raw(value: Uint8Array): string {\n let result = \"\";\n for (let offset = 0; offset < value.length; offset += 4096) result += String.fromCharCode(...value.subarray(offset, offset + 4096));\n return result;\n}\n\nexport function bytes(value: string): Uint8Array {\n return Uint8Array.from(value, character => character.charCodeAt(0));\n}\n\nexport function pathText(value: string): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(bytes(value)); }\n catch { throw new TsortError(\"filesystem paths must be valid UTF-8\"); }\n}\n\nexport function quote(value: string): string {\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\", \"\\\\\": \"\\\\\\\\\", \"'\": \"\\\\'\" };\n let result = \"'\";\n for (const character of value) {\n const code = character.charCodeAt(0);\n result += escapes[character] ?? (code >= 32 && code < 127 ? character : `\\\\${code.toString(8).padStart(3, \"0\")}`);\n }\n return `${result}'`;\n}\n\nexport function fileQuote(value: string): string {\n let safe = value.length > 0;\n let escaped = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (!(character >= \"a\" && character <= \"z\" || character >= \"A\" && character <= \"Z\" || character >= \"0\" && character <= \"9\" || \"_./-\".includes(character))) safe = false;\n if (code < 32 || code >= 127) escaped = true;\n }\n if (safe) return value;\n if (!escaped) {\n if (value.includes(\"'\") && ![\"$\", \"`\", \"\\\\\", '\"'].some(character => value.includes(character))) return `\"${value}\"`;\n return `'${value.split(\"'\").join(\"'\\\\''\")}'`;\n }\n const escapes: Readonly<Record<string, string>> = { \"\\x07\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\f\": \"\\\\f\", \"\\n\": \"\\\\n\", \"\\r\": \"\\\\r\", \"\\t\": \"\\\\t\", \"\\v\": \"\\\\v\" };\n let result = \"'\", inEscape = false;\n for (const character of value) {\n const code = character.charCodeAt(0);\n if (code < 32 || code >= 127) {\n if (!inEscape) { result += \"'$'\"; inEscape = true; }\n result += escapes[character] ?? `\\\\${code.toString(8).padStart(3, \"0\")}`;\n } else {\n if (inEscape) { result += \"''\"; inEscape = false; }\n result += character === \"'\" ? \"'\\\\''\" : character;\n }\n }\n return `${result}'`;\n}\n\nexport class Budget {\n private work = 0;\n private checkpoint = 0;\n private retained = 0;\n private input = 0;\n private output = 0;\n private diagnostics = 0;\n constructor(readonly context: CommandContext, readonly limits: TsortLimits, readonly signal: AbortSignal) {}\n check(value: number, maximum: number, label: string): void {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum) throw new TsortError(`${label} limit exceeded`);\n }\n charge(amount = 1): void {\n this.signal.throwIfAborted();\n this.check(this.work + amount, this.limits.maxWork, \"work\");\n this.work += amount;\n }\n async checkpointWork(): Promise<void> {\n this.signal.throwIfAborted();\n if (this.work - this.checkpoint >= 4096) { this.checkpoint = this.work; await yieldTurn(this.signal); }\n }\n retain(amount: number): void {\n this.check(this.retained + amount, this.limits.maxBufferedBytes, \"buffered bytes\");\n this.retained += amount;\n }\n inputBytes(amount: number): void {\n this.check(this.input + amount, this.limits.maxInputBytes, \"input bytes\");\n this.input += amount;\n }\n emitted(amount: number, diagnostic: boolean): void {\n if (diagnostic) {\n this.check(this.diagnostics + amount, this.limits.maxDiagnosticBytes, \"diagnostic bytes\");\n this.diagnostics += amount;\n } else {\n this.check(this.output + amount, this.limits.maxOutputBytes, \"output bytes\");\n this.output += amount;\n this.charge(amount);\n }\n }\n arguments(): string[] {\n this.check(this.context.args.length, this.limits.maxArguments, \"argument count\");\n let total = 0;\n for (const argument of this.context.args) {\n total += argument.length;\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n for (let offset = 0; offset < argument.length; offset++) {\n const unit = argument.charCodeAt(offset);\n if (unit >= 0xd800 && unit <= 0xdbff) {\n const next = argument.charCodeAt(++offset);\n if (!(next >= 0xdc00 && next <= 0xdfff)) throw new TsortError(\"arguments must contain well-formed Unicode\");\n } else if (unit >= 0xdc00 && unit <= 0xdfff) throw new TsortError(\"arguments must contain well-formed Unicode\");\n }\n }\n total = 0;\n const values = this.context.argumentValues === undefined ? this.context.args : getCommandArguments(this.context).values;\n for (const argument of values) {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n }\n this.charge(total);\n this.retain(total * 8 + this.context.args.length * 64 + 128);\n total = 0;\n return getCommandArguments(this.context).values.map(argument => {\n total += shellValueByteLength(argument);\n this.check(total, this.limits.maxArgumentBytes, \"argument bytes\");\n this.charge(shellValueByteLength(argument));\n const value = shellValueBytes(argument);\n if (value.includes(0)) throw new TsortError(\"NUL is not supported in arguments\");\n return raw(value);\n });\n }\n}\n", "import { FsError, resolvePath, type ByteSource } from \"../../contracts/index.js\";\nimport type { OutputOperation } from \"../../contracts/output.js\";\nimport { Budget, TsortError, bytes, fileQuote, pathText } from \"./internal.js\";\n\nexport class Lifecycle {\n private readonly pending = new Set<Promise<unknown>>();\n private readonly cleanups: (() => Promise<void>)[] = [];\n private closing: Promise<void> | undefined;\n constructor(readonly budget: Budget, output: OutputOperation) { output.registerCleanup(() => this.close()); }\n cleanup(action: () => Promise<void>): void { this.assertOpen(); this.cleanups.push(action); }\n assertOpen(): void {\n this.budget.signal.throwIfAborted();\n if (this.closing) throw new TsortError(\"command is closed\");\n }\n async operation<Value>(action: () => Value | Promise<Value>, diagnostic = false): Promise<Value> {\n this.assertOpen();\n if (!diagnostic) this.budget.charge();\n const pending = Promise.resolve().then(() => { this.assertOpen(); return action(); });\n this.pending.add(pending);\n try { const value = await pending; this.assertOpen(); return value; }\n finally { this.pending.delete(pending); }\n }\n close(): Promise<void> {\n return this.closing ??= Promise.resolve().then(async () => {\n while (this.pending.size) await Promise.allSettled([...this.pending]);\n const failures: unknown[] = [];\n for (const cleanup of this.cleanups) {\n try { await cleanup(); } catch (error) { failures.push(error); }\n }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"tsort cleanup failed\");\n });\n }\n async write(value: string, diagnostic = false): Promise<void> {\n this.budget.emitted(value.length, diagnostic);\n await this.operation(async () => {\n if (!diagnostic) this.budget.retain(value.length * 3);\n try {\n const sink = diagnostic ? this.budget.context.stderr : this.budget.context.stdout;\n await (sink.ownedOutput ?? sink).write(bytes(value));\n } finally { if (!diagnostic) this.budget.retain(-value.length * 3); }\n }, diagnostic);\n }\n}\n\nexport class Reader {\n private iterator: AsyncIterator<Uint8Array> | undefined;\n private chunk: Uint8Array = new Uint8Array();\n private offset = 0;\n private ended = false;\n private empties = 0;\n private snapshotBytes = 0;\n constructor(readonly name: string, readonly lifecycle: Lifecycle) {\n lifecycle.cleanup(async () => {\n try { if (!this.ended) await this.iterator?.return?.(); }\n finally {\n this.iterator = undefined;\n this.releaseSnapshot();\n lifecycle.budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n }\n });\n }\n private readonly releaseSnapshot = (): void => {\n this.lifecycle.budget.retain(-this.snapshotBytes);\n this.snapshotBytes = 0;\n };\n async open(): Promise<void> {\n const { budget } = this.lifecycle;\n const { fs, stdin } = budget.context;\n try {\n await this.lifecycle.operation(async () => {\n let source: ByteSource;\n if (this.name === \"-\") source = stdin;\n else {\n const path = resolvePath(budget.context.cwd, pathText(this.name));\n const stat = await fs.stat(path, { signal: budget.signal });\n budget.signal.throwIfAborted();\n if (stat.type === \"directory\") { this.ended = true; return; }\n if (stat.type !== \"file\" && stat.type !== \"character\") throw new FsError(\"ENOTSUP\", { path });\n const capabilities = await fs.capabilitiesFor?.(path, { signal: budget.signal }) ?? fs.capabilities;\n budget.signal.throwIfAborted();\n if (fs.readStream && capabilities.streamingRead !== false) source = fs.readStream(path, { signal: budget.signal, chunkSize: 16_384 });\n else {\n const maximum = Math.min(budget.limits.maxInputBytes, Math.floor(budget.limits.maxBufferedBytes / 2));\n budget.check(stat.size, maximum, \"buffered input bytes\");\n budget.retain(maximum);\n this.snapshotBytes = maximum;\n const content = await fs.readFile(path, { signal: budget.signal, maxBytes: maximum });\n if (!(content instanceof Uint8Array)) throw new TypeError(\"tsort input requires bytes\");\n budget.check(content.length, maximum, \"buffered input bytes\");\n budget.retain(content.length - maximum);\n this.snapshotBytes = content.length;\n const { releaseSnapshot } = this;\n source = { async *[Symbol.asyncIterator]() { try { yield content; } finally { releaseSnapshot(); } } };\n }\n }\n this.iterator = source[Symbol.asyncIterator]();\n });\n } catch (error) {\n if (error instanceof FsError) throw new TsortError(`${fileQuote(this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n }\n async get(): Promise<number> {\n const { budget } = this.lifecycle;\n budget.charge();\n await budget.checkpointWork();\n while (this.offset === this.chunk.length) {\n if (this.ended) return -1;\n let next: IteratorResult<Uint8Array>;\n try { next = await this.lifecycle.operation(() => this.iterator!.next()); }\n catch (error) {\n if (error instanceof FsError) throw new TsortError(`${fileQuote(this.name)}: ${fsDetail(error)}`);\n throw error;\n }\n budget.retain(-this.chunk.length);\n this.chunk = new Uint8Array();\n this.offset = 0;\n if (next.done) { this.ended = true; this.iterator = undefined; return -1; }\n if (!(next.value instanceof Uint8Array)) throw new TypeError(\"tsort input requires bytes\");\n budget.inputBytes(next.value.length);\n budget.charge(next.value.length);\n budget.retain(next.value.length);\n this.chunk = Uint8Array.from(next.value);\n if (!this.chunk.length) budget.check(++this.empties, budget.limits.maxEmptyChunks, \"empty input chunks\");\n }\n return this.chunk[this.offset++]!;\n }\n}\n\nfunction fsDetail(error: FsError): string {\n const details: Partial<Record<FsError[\"code\"], string>> = {\n EACCES: \"Permission denied\", EPERM: \"Operation not permitted\", ENOENT: \"No such file or directory\",\n EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", EIO: \"Input/output error\", ELOOP: \"Too many levels of symbolic links\",\n ENAMETOOLONG: \"File name too long\", ENOTSUP: \"Operation not supported\",\n };\n return details[error.code] ?? error.message;\n}\n", "import { TsortError, fileQuote, raw } from \"./internal.js\";\nimport { Lifecycle, Reader } from \"./io.js\";\n\ninterface Edge { target: Node; next: Edge | undefined }\ninterface Node { name: string; count: number; printed: boolean; top: Edge | undefined; link: Node | undefined }\n\nexport async function sort(reader: Reader, lifecycle: Lifecycle): Promise<number> {\n const { budget } = lifecycle;\n const nodes = new Map<string, Node>();\n let tokens = 0, edges = 0, length = 0, nameLength = 0;\n let nul = false;\n let token: Uint8Array = new Uint8Array();\n let predecessor: Node | undefined;\n const admitToken = (): void => {\n budget.check(++tokens, budget.limits.maxTokens, \"tokens\");\n budget.charge(nameLength + 1);\n budget.retain(nameLength * 4);\n const name = raw(token.subarray(0, nameLength));\n let node = nodes.get(name);\n if (!node) {\n budget.check(nodes.size + 1, budget.limits.maxNodes, \"nodes\");\n budget.retain(160);\n node = { name, count: 0, printed: false, top: undefined, link: undefined };\n nodes.set(name, node);\n } else budget.retain(-nameLength * 4);\n if (!predecessor) predecessor = node;\n else {\n if (predecessor !== node) {\n budget.check(++edges, budget.limits.maxEdges, \"edges\");\n budget.retain(48);\n predecessor.top = { target: node, next: predecessor.top };\n node.count++;\n }\n predecessor = undefined;\n }\n length = 0;\n nameLength = 0;\n nul = false;\n };\n for (;;) {\n const value = await reader.get();\n if (value < 0 || value === 32 || value === 9 || value === 10) {\n if (length) admitToken();\n if (value < 0) break;\n } else {\n budget.check(++length, budget.limits.maxTokenBytes, \"token bytes\");\n if (value === 0) nul = true;\n if (!nul) {\n if (nameLength === token.length) {\n const capacity = Math.min(budget.limits.maxTokenBytes, Math.max(64, token.length * 2));\n budget.retain(capacity);\n budget.charge(token.length);\n const grown = new Uint8Array(capacity);\n grown.set(token);\n budget.retain(-token.length);\n token = grown;\n }\n token[nameLength++] = value;\n }\n }\n }\n budget.retain(-token.length);\n token = new Uint8Array();\n if (predecessor) throw new TsortError(`${fileQuote(reader.name)}: input contains an odd number of tokens`);\n budget.retain(nodes.size * 16);\n let ordered = [...nodes.values()];\n let scratch = new Array<Node>(ordered.length);\n for (let width = 1; width < ordered.length; width *= 2) {\n for (let start = 0; start < ordered.length; start += width * 2) {\n const middle = Math.min(start + width, ordered.length), end = Math.min(start + width * 2, ordered.length);\n let left = start, right = middle;\n for (let offset = start; offset < end; offset++) {\n budget.charge();\n let useLeft = right === end;\n if (left < middle && right < end) {\n budget.charge(Math.min(ordered[left]!.name.length, ordered[right]!.name.length) + 1);\n useLeft = ordered[left]!.name < ordered[right]!.name;\n }\n scratch[offset] = left < middle && useLeft ? ordered[left++]! : ordered[right++]!;\n await budget.checkpointWork();\n }\n }\n [ordered, scratch] = [scratch, ordered];\n }\n let remaining = ordered.length, status = 0;\n while (remaining) {\n let head: Node | undefined, tail: Node | undefined;\n for (const node of ordered) {\n budget.charge();\n if (!node.printed && !node.count) {\n if (tail) tail.link = node; else head = node;\n tail = node;\n node.link = undefined;\n }\n await budget.checkpointWork();\n }\n while (head) {\n const node: Node = head;\n budget.check(node.name.length + 1, budget.limits.maxOutputBytes, \"output bytes\");\n await lifecycle.write(`${node.name}\\n`);\n node.printed = true;\n remaining--;\n for (let edge = node.top; edge; edge = edge.next) {\n budget.charge();\n if (!--edge.target.count) {\n tail!.link = edge.target;\n tail = edge.target;\n tail.link = undefined;\n }\n await budget.checkpointWork();\n }\n head = node.link;\n node.link = undefined;\n }\n if (!remaining) break;\n status = 1;\n await lifecycle.write(`tsort: ${fileQuote(reader.name)}: input contains a loop:\\n`, true);\n let loop: Node | undefined;\n do {\n let found = false;\n for (const node of ordered) {\n budget.charge();\n await budget.checkpointWork();\n if (!node.count) continue;\n if (!loop) { loop = node; continue; }\n let previous: Edge | undefined;\n for (let edge = node.top; edge; edge = edge.next) {\n budget.charge();\n await budget.checkpointWork();\n if (edge.target === loop) {\n if (node.link) {\n while (loop) {\n budget.charge();\n const next: Node | undefined = loop.link;\n await lifecycle.write(`tsort: ${loop.name}\\n`, true);\n if (loop === node) {\n edge.target.count--;\n if (previous) previous.next = edge.next; else node.top = edge.next;\n break;\n }\n loop.link = undefined;\n loop = next;\n }\n while (loop) {\n budget.charge();\n const next: Node | undefined = loop.link;\n loop.link = undefined;\n loop = next;\n await budget.checkpointWork();\n }\n found = true;\n } else { node.link = loop; loop = node; }\n break;\n }\n previous = edge;\n }\n if (found) break;\n }\n } while (loop);\n }\n return status;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|