poe-code 15.0.21 → 15.0.22

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.
Files changed (114) hide show
  1. package/dist/metafile.json +1 -1
  2. package/package.json +1 -1
  3. package/packages/safe-bash/dist/chunks/{chunk-UO33SQJU.js → chunk-2PQ3XOCQ.js} +239 -2
  4. package/packages/safe-bash/dist/chunks/chunk-2PQ3XOCQ.js.map +7 -0
  5. package/packages/safe-bash/dist/chunks/{chunk-WISNTI7E.js → chunk-3Y5PKSHX.js} +7 -11
  6. package/packages/safe-bash/dist/chunks/{chunk-WISNTI7E.js.map → chunk-3Y5PKSHX.js.map} +1 -1
  7. package/packages/safe-bash/dist/chunks/{chunk-VY5N6O6I.js → chunk-BXVGCJXW.js} +108 -21
  8. package/packages/safe-bash/dist/chunks/chunk-BXVGCJXW.js.map +7 -0
  9. package/packages/safe-bash/dist/chunks/chunk-C7QNJ3D4.js +13 -0
  10. package/packages/safe-bash/dist/chunks/chunk-C7QNJ3D4.js.map +7 -0
  11. package/packages/safe-bash/dist/chunks/{chunk-AWP6Z3RR.js → chunk-E3NZKSTA.js} +8 -12
  12. package/packages/safe-bash/dist/chunks/{chunk-AWP6Z3RR.js.map → chunk-E3NZKSTA.js.map} +1 -1
  13. package/packages/safe-bash/dist/chunks/{chunk-WXUZXY35.js → chunk-FMTBJ7SG.js} +3 -3
  14. package/packages/safe-bash/dist/chunks/{chunk-QX2X5EC5.js → chunk-H6E6F5KJ.js} +7 -11
  15. package/packages/safe-bash/dist/chunks/{chunk-QX2X5EC5.js.map → chunk-H6E6F5KJ.js.map} +1 -1
  16. package/packages/safe-bash/dist/chunks/{chunk-IDJQT32M.js → chunk-HQCBEAFK.js} +7 -11
  17. package/packages/safe-bash/dist/chunks/{chunk-IDJQT32M.js.map → chunk-HQCBEAFK.js.map} +1 -1
  18. package/packages/safe-bash/dist/chunks/{chunk-4V3NGZAG.js → chunk-IYFB6VED.js} +6 -10
  19. package/packages/safe-bash/dist/chunks/{chunk-4V3NGZAG.js.map → chunk-IYFB6VED.js.map} +1 -1
  20. package/packages/safe-bash/dist/chunks/chunk-KJYVSFGF.js +284 -0
  21. package/packages/safe-bash/dist/chunks/chunk-KJYVSFGF.js.map +7 -0
  22. package/packages/safe-bash/dist/chunks/{chunk-O7BRWSKX.js → chunk-LHKAA57T.js} +60 -17
  23. package/packages/safe-bash/dist/chunks/chunk-LHKAA57T.js.map +7 -0
  24. package/packages/safe-bash/dist/chunks/chunk-LR32SJ3D.js +915 -0
  25. package/packages/safe-bash/dist/chunks/chunk-LR32SJ3D.js.map +7 -0
  26. package/packages/safe-bash/dist/chunks/{chunk-EUNOVYVT.js → chunk-OECKXHVJ.js} +2 -2
  27. package/packages/safe-bash/dist/chunks/{chunk-DKT746UJ.js → chunk-PE5NZIA2.js} +5 -9
  28. package/packages/safe-bash/dist/chunks/{chunk-DKT746UJ.js.map → chunk-PE5NZIA2.js.map} +1 -1
  29. package/packages/safe-bash/dist/chunks/{chunk-4JW32W4B.js → chunk-PMBBUNNN.js} +7 -11
  30. package/packages/safe-bash/dist/chunks/{chunk-4JW32W4B.js.map → chunk-PMBBUNNN.js.map} +1 -1
  31. package/packages/safe-bash/dist/chunks/{chunk-YFFFBLBC.js → chunk-TJVKGNKA.js} +6 -10
  32. package/packages/safe-bash/dist/chunks/{chunk-YFFFBLBC.js.map → chunk-TJVKGNKA.js.map} +1 -1
  33. package/packages/safe-bash/dist/chunks/{chunk-FIY2BMTU.js → chunk-W3TLNFDB.js} +8 -12
  34. package/packages/safe-bash/dist/chunks/{chunk-FIY2BMTU.js.map → chunk-W3TLNFDB.js.map} +1 -1
  35. package/packages/safe-bash/dist/chunks/{chunk-PPFWG34Y.js → chunk-XBLVOMEJ.js} +2 -2
  36. package/packages/safe-bash/dist/chunks/{chunk-WJWYJDQE.js → chunk-XYVCXUGM.js} +7 -11
  37. package/packages/safe-bash/dist/chunks/{chunk-WJWYJDQE.js.map → chunk-XYVCXUGM.js.map} +1 -1
  38. package/packages/safe-bash/dist/commands/csplit/index.browser.js +4 -6
  39. package/packages/safe-bash/dist/commands/factor/index.browser.js +3 -5
  40. package/packages/safe-bash/dist/commands/getopt/index.browser.js +3 -5
  41. package/packages/safe-bash/dist/commands/hexdump/index.browser.js +3 -5
  42. package/packages/safe-bash/dist/commands/iconv/index.browser.js +3 -5
  43. package/packages/safe-bash/dist/commands/line-endings/index.browser.js +4 -6
  44. package/packages/safe-bash/dist/commands/llm/command.d.ts +3 -2
  45. package/packages/safe-bash/dist/commands/llm/command.d.ts.map +1 -1
  46. package/packages/safe-bash/dist/commands/llm/command.js +260 -181
  47. package/packages/safe-bash/dist/commands/llm/command.js.map +1 -1
  48. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.d.ts +3 -0
  49. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.d.ts.map +1 -0
  50. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.js +118 -0
  51. package/packages/safe-bash/dist/commands/llm/elevenlabs-stream.js.map +1 -0
  52. package/packages/safe-bash/dist/commands/llm/elevenlabs.d.ts +16 -0
  53. package/packages/safe-bash/dist/commands/llm/elevenlabs.d.ts.map +1 -0
  54. package/packages/safe-bash/dist/commands/llm/elevenlabs.js +120 -0
  55. package/packages/safe-bash/dist/commands/llm/elevenlabs.js.map +1 -0
  56. package/packages/safe-bash/dist/commands/llm/index.browser.js +10 -4
  57. package/packages/safe-bash/dist/commands/llm/index.d.ts +5 -5
  58. package/packages/safe-bash/dist/commands/llm/index.d.ts.map +1 -1
  59. package/packages/safe-bash/dist/commands/llm/index.js +3 -11
  60. package/packages/safe-bash/dist/commands/llm/index.js.map +1 -1
  61. package/packages/safe-bash/dist/commands/llm/mime.d.ts +2 -1
  62. package/packages/safe-bash/dist/commands/llm/mime.d.ts.map +1 -1
  63. package/packages/safe-bash/dist/commands/llm/mime.js +125 -21
  64. package/packages/safe-bash/dist/commands/llm/mime.js.map +1 -1
  65. package/packages/safe-bash/dist/commands/llm/openai-http.d.ts +9 -0
  66. package/packages/safe-bash/dist/commands/llm/openai-http.d.ts.map +1 -0
  67. package/packages/safe-bash/dist/commands/llm/openai-http.js +144 -0
  68. package/packages/safe-bash/dist/commands/llm/openai-http.js.map +1 -0
  69. package/packages/safe-bash/dist/commands/llm/openai-sse.d.ts +3 -0
  70. package/packages/safe-bash/dist/commands/llm/openai-sse.d.ts.map +1 -0
  71. package/packages/safe-bash/dist/commands/llm/openai-sse.js +67 -0
  72. package/packages/safe-bash/dist/commands/llm/openai-sse.js.map +1 -0
  73. package/packages/safe-bash/dist/commands/llm/openai.d.ts +15 -0
  74. package/packages/safe-bash/dist/commands/llm/openai.d.ts.map +1 -0
  75. package/packages/safe-bash/dist/commands/llm/openai.js +203 -0
  76. package/packages/safe-bash/dist/commands/llm/openai.js.map +1 -0
  77. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.d.ts +1 -15
  78. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.d.ts.map +1 -1
  79. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.js +1 -50
  80. package/packages/safe-bash/dist/commands/llm/providers/elevenlabs.js.map +1 -1
  81. package/packages/safe-bash/dist/commands/llm/providers/index.browser.js +2 -4
  82. package/packages/safe-bash/dist/commands/llm/providers/openai.d.ts +1 -14
  83. package/packages/safe-bash/dist/commands/llm/providers/openai.d.ts.map +1 -1
  84. package/packages/safe-bash/dist/commands/llm/providers/openai.js +1 -77
  85. package/packages/safe-bash/dist/commands/llm/providers/openai.js.map +1 -1
  86. package/packages/safe-bash/dist/commands/llm/providers/shared.d.ts +4 -14
  87. package/packages/safe-bash/dist/commands/llm/providers/shared.d.ts.map +1 -1
  88. package/packages/safe-bash/dist/commands/llm/providers/shared.js +3 -156
  89. package/packages/safe-bash/dist/commands/llm/providers/shared.js.map +1 -1
  90. package/packages/safe-bash/dist/commands/network/index.browser.js +8 -13
  91. package/packages/safe-bash/dist/commands/pr/index.browser.js +3 -5
  92. package/packages/safe-bash/dist/commands/tsort/index.browser.js +3 -5
  93. package/packages/safe-bash/dist/commands/xml/index.browser.js +4 -7
  94. package/packages/safe-bash/dist/commands/yq/index.browser.js +5 -8
  95. package/packages/safe-bash/dist/core.browser.js +36 -43
  96. package/packages/safe-bash/dist/core.browser.js.map +1 -1
  97. package/packages/safe-bash/dist/chunks/chunk-BZUQJTOZ.js +0 -322
  98. package/packages/safe-bash/dist/chunks/chunk-BZUQJTOZ.js.map +0 -7
  99. package/packages/safe-bash/dist/chunks/chunk-EUTSYRNM.js +0 -111
  100. package/packages/safe-bash/dist/chunks/chunk-EUTSYRNM.js.map +0 -7
  101. package/packages/safe-bash/dist/chunks/chunk-F5AOPLRZ.js +0 -355
  102. package/packages/safe-bash/dist/chunks/chunk-F5AOPLRZ.js.map +0 -7
  103. package/packages/safe-bash/dist/chunks/chunk-FDGESHPB.js +0 -224
  104. package/packages/safe-bash/dist/chunks/chunk-FDGESHPB.js.map +0 -7
  105. package/packages/safe-bash/dist/chunks/chunk-KYU6MXVK.js +0 -58
  106. package/packages/safe-bash/dist/chunks/chunk-KYU6MXVK.js.map +0 -7
  107. package/packages/safe-bash/dist/chunks/chunk-O7BRWSKX.js.map +0 -7
  108. package/packages/safe-bash/dist/chunks/chunk-TTTOMUAY.js +0 -33
  109. package/packages/safe-bash/dist/chunks/chunk-TTTOMUAY.js.map +0 -7
  110. package/packages/safe-bash/dist/chunks/chunk-UO33SQJU.js.map +0 -7
  111. package/packages/safe-bash/dist/chunks/chunk-VY5N6O6I.js.map +0 -7
  112. /package/packages/safe-bash/dist/chunks/{chunk-WXUZXY35.js.map → chunk-FMTBJ7SG.js.map} +0 -0
  113. /package/packages/safe-bash/dist/chunks/{chunk-EUNOVYVT.js.map → chunk-OECKXHVJ.js.map} +0 -0
  114. /package/packages/safe-bash/dist/chunks/{chunk-PPFWG34Y.js.map → chunk-XBLVOMEJ.js.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/yq/index.ts", "../../src/commands/structured/query-core.ts", "../../src/commands/structured/interpreter.ts", "../../src/commands/structured/input.ts", "../../src/commands/structured/split.ts", "../../src/commands/structured/values.ts", "../../src/commands/structured/parser.ts", "../../src/commands/yq/accounting.ts", "../../src/commands/yq/errors.ts", "../../src/commands/yq/encoder.ts", "../../src/commands/yq/parser.ts", "../../src/commands/yq/toml.ts"],
4
4
  "sourcesContent": ["import { escapeText } from \"../../escaping.js\";\nimport { pathOf } from \"../internal.js\";\nimport {\n createOutputOperation,\n FsError,\n getCommandArguments,\n readBytes,\n type ByteSource,\n type CommandContext,\n type CommandDefinition,\n type FileSystemCapabilities,\n type InvocationCleanup,\n type OutputOperation,\n type VirtualShellPlugin,\n} from \"../../contracts/index.js\";\nimport { shellValueByteLength } from \"../../contracts/value.js\";\nimport { createYqQuerySession, YqValueFailure, type YqQuerySession } from \"../structured/query-core.js\";\nimport { interruptible, JqError, JqLimitError, wellFormed, type Json } from \"../structured/limits.js\";\nimport { YqLedger, yqCaps } from \"./accounting.js\";\nimport { encodeJson, encodeRaw, encodeYaml } from \"./encoder.js\";\nimport { fromJqLimit, YqError, type YqCode } from \"./errors.js\";\nimport { parseYamlDocuments } from \"./parser.js\";\nimport { parseTomlDocument } from \"./toml.js\";\n\nconst help = \"virtual-bash restricted YAML/TOML profile\\nusage: yq [eval|e] [OPTION ...] [--] [FILTER [FILE ...]]\\n yq [eval|e] --help\\n yq [eval|e] --version\\noptions:\\n -p, --input-format FORMAT FORMAT is yaml (default) or toml\\n --input-format=FORMAT same as above\\n -o, --output-format FORMAT FORMAT is yaml or json\\n --output-format=FORMAT same as above\\n -c, --compact-output compact JSON; requires -o json\\n -r, --unwrapScalar raw strings; requires -o json\\n -h, --help show this help (sole argument)\\n --version show profile identity (sole argument)\\n\";\nconst version = \"virtual-bash restricted YAML/TOML profile\\n\";\nconst diagnosticFallback = \"yq: limit: DIAGNOSTIC_TRUNCATED\\n\";\n\ninterface ParsedArguments {\n readonly inputFormat: \"yaml\" | \"toml\";\n readonly format: \"yaml\" | \"json\";\n readonly explicitJson: boolean;\n readonly compact: boolean;\n readonly raw: boolean;\n readonly filter: string;\n readonly files: readonly string[];\n}\n\ninterface InputFrame {\n readonly bytes: Uint8Array;\n readonly rawBytes: number;\n readonly lineOffset: number;\n}\n\ninterface FrameRange {\n readonly start: number;\n readonly end: number;\n readonly lineOffset: number;\n}\n\nclass RawDocumentFramer {\n readonly #ranges: FrameRange[] = [];\n #offset = 0;\n #frameStart = 0;\n #frameLine = 0;\n #lineStart = 0;\n #lineNumber = 0;\n #line = \"\";\n #pendingCr = false;\n #frameBytes = 0;\n #lineBytes = 0;\n #lineCouldBeMarker = true;\n #markerComment = false;\n #hasContent = false;\n\n admit(chunk: Uint8Array): void {\n for (const byte of chunk) {\n this.#offset++;\n this.#lineBytes++;\n if (this.#lineBytes > yqCaps.maxDocumentBytes) throw new YqError(\"limit\", \"LIMIT_MAX_DOCUMENT_BYTES\", 5);\n if (this.#pendingCr) {\n this.#pendingCr = false;\n if (byte === 0x0a) {\n this.#line += \"\\n\";\n this.#finishLine(this.#offset);\n continue;\n }\n this.#finishLine(this.#offset - 1);\n }\n if (!this.#markerComment && (this.#line.length <= 8 || /^(?:---|\\.\\.\\.)[ \\t]+#/u.test(this.#line))) {\n this.#line += String.fromCharCode(byte);\n }\n if (/^(?:---|\\.\\.\\.)[ \\t]+#/u.test(this.#line)) this.#markerComment = true;\n const candidate = this.#line.replace(/[\\r\\n]+$/u, \"\");\n this.#lineCouldBeMarker = /^(?:-{0,3}|\\.{0,3})$/u.test(candidate)\n || /^(?:---|\\.\\.\\.)(?:[ \\t]*|[ \\t]+#.*)$/u.test(candidate);\n if (!this.#lineCouldBeMarker && this.#lineBytes > yqCaps.maxDocumentBytes - this.#frameBytes) {\n throw new YqError(\"limit\", \"LIMIT_MAX_DOCUMENT_BYTES\", 5);\n }\n if (byte === 0x0d) this.#pendingCr = true;\n else if (byte === 0x0a) this.#finishLine(this.#offset);\n }\n }\n\n finish(bytes: Uint8Array): InputFrame[] {\n if (this.#line !== \"\") {\n this.#pendingCr = false;\n this.#finishLine(this.#offset);\n }\n if (this.#frameStart < this.#offset) this.#ranges.push({ start: this.#frameStart, end: this.#offset, lineOffset: this.#frameLine });\n return this.#ranges.map(range => ({\n bytes: bytes.subarray(range.start, range.end),\n rawBytes: range.end - range.start,\n lineOffset: range.lineOffset,\n }));\n }\n\n #finishLine(end: number): void {\n const line = this.#line.replace(/[\\r\\n]+$/u, \"\");\n const marker = /^---(?:[ \\t]+#.*)?$/u.test(line);\n const endMarker = /^\\.\\.\\.(?:[ \\t]+#.*)?$/u.test(line);\n if (marker && this.#hasContent && this.#lineStart > this.#frameStart) {\n this.#ranges.push({ start: this.#frameStart, end: this.#lineStart, lineOffset: this.#frameLine });\n this.#frameStart = this.#lineStart;\n this.#frameLine = this.#lineNumber;\n this.#frameBytes = this.#lineBytes;\n this.#hasContent = false;\n } else {\n if (this.#lineBytes > yqCaps.maxDocumentBytes - this.#frameBytes) throw new YqError(\"limit\", \"LIMIT_MAX_DOCUMENT_BYTES\", 5);\n this.#frameBytes += this.#lineBytes;\n }\n const visible = line.replace(/^\\ufeff/u, \"\").trimStart();\n if (visible !== \"\" && !visible.startsWith(\"#\") && !visible.startsWith(\"%\") && !marker && !endMarker) this.#hasContent = true;\n if (endMarker && this.#frameStart < end) {\n this.#ranges.push({ start: this.#frameStart, end, lineOffset: this.#frameLine });\n this.#frameStart = end;\n this.#frameLine = this.#lineNumber + 1;\n this.#frameBytes = 0;\n this.#hasContent = false;\n }\n this.#line = \"\";\n this.#lineBytes = 0;\n this.#lineCouldBeMarker = true;\n this.#markerComment = false;\n this.#lineStart = end;\n this.#lineNumber++;\n }\n}\n\nclass SinkFailure {\n constructor(readonly reason: unknown) {}\n}\n\nclass InvocationOwner {\n #accepting = true;\n #callbacks: InvocationCleanup[] = [];\n #closePromise: Promise<void> | undefined;\n\n assertOpen(signal: AbortSignal): void {\n if (signal.aborted) throw signal.reason;\n if (!this.#accepting) throw new Error(\"yq invocation is closed\");\n }\n\n register(cleanup: InvocationCleanup): void {\n if (!this.#accepting) throw new Error(\"yq invocation is closed\");\n if (typeof cleanup !== \"function\") throw new TypeError(\"cleanup must be callable\");\n this.#callbacks.push(cleanup);\n }\n\n close(): Promise<void> {\n if (this.#closePromise) return this.#closePromise;\n this.#accepting = false;\n this.#closePromise = (async (): Promise<void> => {\n const results = await Promise.allSettled(this.#callbacks.map(async cleanup => cleanup()));\n const failures = results.filter((result): result is PromiseRejectedResult => result.status === \"rejected\").map(result => result.reason);\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"yq invocation cleanup failed\");\n })();\n void this.#closePromise.catch(() => {});\n return this.#closePromise;\n }\n}\n\nfunction cli(code: YqCode): YqError {\n return new YqError(\"cli\", code, 2);\n}\n\nfunction preflightArguments(context: CommandContext): void {\n const args = context.args;\n if (args.length > yqCaps.maxArgvEntries) throw cli(\"CLI_ARGV_ENTRIES_LIMIT\");\n let bytes = 0;\n for (const argument of args) {\n if (!wellFormed(argument)) throw cli(\"CLI_INVALID_UNICODE\");\n const incoming = Buffer.byteLength(argument);\n if (incoming > yqCaps.maxArgvUtf8Bytes - bytes) throw cli(\"CLI_ARGV_BYTES_LIMIT\");\n bytes += incoming;\n }\n const carrier = getCommandArguments(context);\n bytes = 0;\n const decoder = new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true });\n for (let index = 0; index < args.length; index++) {\n const incoming = shellValueByteLength(carrier.values[index]!);\n if (incoming > yqCaps.maxArgvUtf8Bytes - bytes) throw cli(\"CLI_ARGV_BYTES_LIMIT\");\n bytes += incoming;\n let decoded: string;\n try { decoded = decoder.decode(carrier.bytes(index)); }\n catch { throw cli(\"CLI_INVALID_UNICODE\"); }\n if (decoded !== args[index]) throw cli(\"CLI_INVALID_UNICODE\");\n }\n}\n\nfunction isInformationForm(args: readonly string[]): \"help\" | \"version\" | undefined {\n const offset = args[0] === \"eval\" || args[0] === \"e\" ? 1 : 0;\n if (args.length !== offset + 1) return undefined;\n const token = args[offset];\n if (token === \"-h\" || token === \"--help\") return \"help\";\n if (token === \"--version\") return \"version\";\n return undefined;\n}\n\nfunction parseArguments(args: readonly string[], inputFormat: \"yaml\" | \"toml\"): ParsedArguments {\n let index = args[0] === \"eval\" || args[0] === \"e\" ? 1 : 0;\n if (args[0] === \"eval-all\" || args[0] === \"ea\") throw cli(\"CLI_UNSUPPORTED_COMMAND\");\n let ended = false;\n let inputFormatSeen = false;\n let format: \"yaml\" | \"json\" = \"yaml\";\n let explicitJson = false;\n let formatSeen = false;\n let compact = false;\n let compactSeen = false;\n let raw = false;\n let rawSeen = false;\n const operands: string[] = [];\n const refused = /^(?:-s|-n|-p|-i|--slurp|--null-input|--input-format|--yaml-schema|--schema|--json-schema|--failsafe-schema|--inplace|--in-place|--allow-lossy-write|--write|--split-exp|--front-matter|--xml|--properties|--color-output)(?:=.*)?$/u;\n for (; index < args.length; index++) {\n const argument = args[index]!;\n if (!ended && argument === \"--\") {\n ended = true;\n continue;\n }\n if (!ended && (argument === \"-p\" || argument === \"--input-format\" || argument.startsWith(\"--input-format=\"))) {\n if (inputFormatSeen) throw cli(\"CLI_DUPLICATE_OPTION\");\n const value = argument.startsWith(\"--input-format=\") ? argument.slice(\"--input-format=\".length) : args[++index];\n if (value === undefined || value === \"\") throw cli(\"CLI_MISSING_OPTION_VALUE\");\n if (value !== \"yaml\" && value !== \"toml\") throw cli(\"CLI_INVALID_OPTION_VALUE\");\n inputFormatSeen = true;\n inputFormat = value;\n continue;\n }\n if (!ended && (argument === \"-o\" || argument === \"--output-format\")) {\n if (formatSeen) throw cli(\"CLI_DUPLICATE_OPTION\");\n const value = args[++index];\n if (value === undefined) throw cli(\"CLI_MISSING_OPTION_VALUE\");\n if (value !== \"yaml\" && value !== \"json\") throw cli(\"CLI_INVALID_OPTION_VALUE\");\n formatSeen = true;\n format = value;\n explicitJson = value === \"json\";\n continue;\n }\n if (!ended && argument.startsWith(\"--output-format=\")) {\n if (formatSeen) throw cli(\"CLI_DUPLICATE_OPTION\");\n const value = argument.slice(\"--output-format=\".length);\n if (value === \"\") throw cli(\"CLI_MISSING_OPTION_VALUE\");\n if (value !== \"yaml\" && value !== \"json\") throw cli(\"CLI_INVALID_OPTION_VALUE\");\n formatSeen = true;\n format = value;\n explicitJson = value === \"json\";\n continue;\n }\n if (!ended && (argument === \"-c\" || argument === \"--compact-output\")) {\n if (compactSeen) throw cli(\"CLI_DUPLICATE_OPTION\");\n compactSeen = true;\n compact = true;\n continue;\n }\n if (!ended && (argument === \"-r\" || argument === \"--unwrapScalar\")) {\n if (rawSeen) throw cli(\"CLI_DUPLICATE_OPTION\");\n rawSeen = true;\n raw = true;\n continue;\n }\n if (!ended && refused.test(argument)) throw cli(\"CLI_UNSUPPORTED_OPTION\");\n if (!ended && argument.startsWith(\"-\") && argument !== \"-\") throw cli(\"CLI_UNKNOWN_OPTION\");\n operands.push(argument);\n }\n if ((compact || raw) && !explicitJson) throw cli(\"CLI_INCOMPATIBLE_OPTIONS\");\n const filter = operands[0] ?? \".\";\n const files = operands.slice(1);\n let stdinSeen = false;\n for (const file of files) {\n if (file === \"-\") {\n if (stdinSeen) throw cli(\"CLI_DUPLICATE_STDIN\");\n stdinSeen = true;\n } else if (Buffer.byteLength(file) > yqCaps.maxVfsOperandPathBytes) throw cli(\"CLI_VFS_OPERAND_LIMIT\");\n }\n return { inputFormat, format, explicitJson, compact, raw, filter, files };\n}\n\nfunction displayedSource(source: string): string {\n if (source === \"<stdin>\") return source;\n const parts: string[] = ['\"'];\n let bytes = 2;\n let truncated = false;\n for (const character of source) {\n const encoded = escapeText(JSON.stringify(character).slice(1, -1), \"diagnostic\");\n const incoming = Buffer.byteLength(encoded);\n if (incoming > yqCaps.maxDisplayedFilenameBytes - bytes) {\n truncated = true;\n break;\n }\n parts.push(encoded);\n bytes += incoming;\n }\n if (truncated) {\n while (parts.length > 1 && Buffer.byteLength(parts.join(\"\")) + 4 > yqCaps.maxDisplayedFilenameBytes) parts.pop();\n parts.push(\"...\");\n }\n parts.push('\"');\n return parts.join(\"\");\n}\n\nfunction diagnostic(error: YqError): string {\n let location = \"\";\n if (error.source !== undefined) {\n location = ` at ${displayedSource(error.source)}`;\n if (error.line !== undefined && error.column !== undefined) location += `:${error.line}:${error.column}`;\n }\n return `yq: ${error.category}: ${error.code}${location}\\n`;\n}\n\nfunction classifyValueFailure(error: YqValueFailure): YqError {\n const category = error.code.startsWith(\"ENCODE_\") ? \"encode\" : \"schema\";\n return new YqError(category, error.code, 5);\n}\n\nfunction withSource(error: YqError, source: string): YqError {\n if (error.source !== undefined) return error;\n return new YqError(error.category, error.code, error.status, source, error.line, error.column);\n}\n\nasync function collectSource(\n context: CommandContext,\n owner: InvocationOwner,\n session: YqQuerySession,\n sourceName: string,\n source: ByteSource,\n vfs: boolean,\n inputFormat: \"yaml\" | \"toml\",\n): Promise<InputFrame[]> {\n let iterator: AsyncIterator<Uint8Array> | undefined;\n let returned: Promise<unknown> | undefined;\n owner.register(async () => {\n if (iterator?.return) {\n returned ??= Promise.resolve().then(() => iterator!.return!());\n await returned;\n }\n });\n iterator = readBytes(source, context.signal)[Symbol.asyncIterator]();\n const chunks: Uint8Array[] = [];\n const framer = inputFormat === \"yaml\" ? new RawDocumentFramer() : undefined;\n let size = 0;\n while (true) {\n let next: IteratorResult<Uint8Array>;\n try {\n next = await iterator.next();\n } catch (failure) {\n if (context.signal.aborted) throw context.signal.reason;\n if (vfs && failure instanceof FsError) throw new YqError(\"vfs\", \"VFS_INPUT_READ\", 2, sourceName);\n throw failure;\n }\n owner.assertOpen(context.signal);\n if (next.done) break;\n const chunk = next.value;\n if (inputFormat === \"toml\") await session.ownedWork.charge();\n session.ownedWork.admitInputBytes(chunk.byteLength);\n if (chunk.byteLength > yqCaps.maxInputBytes - size) throw fromJqLimit(new JqLimitError(\"maxInputBytes\"));\n if (inputFormat === \"toml\" && chunk.byteLength > yqCaps.maxDocumentBytes - size) throw new YqError(\"limit\", \"LIMIT_MAX_DOCUMENT_BYTES\", 5);\n framer?.admit(chunk);\n const owned = new Uint8Array(chunk);\n owner.assertOpen(context.signal);\n chunks.push(owned);\n size += owned.byteLength;\n }\n owner.assertOpen(context.signal);\n const bytes = new Uint8Array(size);\n let offset = 0;\n for (const chunk of chunks) {\n bytes.set(chunk, offset);\n offset += chunk.byteLength;\n }\n owner.assertOpen(context.signal);\n return framer ? framer.finish(bytes) : [{ bytes, rawBytes: size, lineOffset: 0 }];\n}\n\nasync function sourceFrames(\n context: CommandContext,\n owner: InvocationOwner,\n session: YqQuerySession,\n sourceName: string,\n inputFormat: \"yaml\" | \"toml\",\n): Promise<InputFrame[]> {\n if (sourceName === \"-\") return collectSource(context, owner, session, \"<stdin>\", context.stdin, false, inputFormat);\n const path = pathOf(context, sourceName);\n await session.ownedWork.charge();\n owner.assertOpen(context.signal);\n let capabilities: FileSystemCapabilities;\n try {\n capabilities = context.fs.capabilitiesFor\n ? await interruptible(() => context.fs.capabilitiesFor!(path, { signal: context.signal }), context.signal)\n : context.fs.capabilities;\n } catch (failure) {\n if (context.signal.aborted) throw context.signal.reason;\n if (failure instanceof FsError) throw new YqError(\"vfs\", \"VFS_INPUT_OPEN\", 2, sourceName);\n throw failure;\n }\n owner.assertOpen(context.signal);\n if (context.fs.readStream && capabilities.streamingRead !== false) {\n let source: ByteSource;\n try { source = context.fs.readStream(path, { signal: context.signal }); }\n catch (failure) {\n if (context.signal.aborted) throw context.signal.reason;\n if (failure instanceof FsError) throw new YqError(\"vfs\", \"VFS_INPUT_OPEN\", 2, sourceName);\n throw failure;\n }\n return collectSource(context, owner, session, sourceName, source, true, inputFormat);\n }\n let bytes: Uint8Array;\n try {\n bytes = await context.fs.readFile(path, { signal: context.signal, maxBytes: inputFormat === \"toml\" ? yqCaps.maxDocumentBytes : yqCaps.maxInputBytes });\n } catch (failure) {\n if (context.signal.aborted) throw context.signal.reason;\n if (inputFormat === \"toml\" && failure instanceof FsError && failure.code === \"EFBIG\") throw new YqError(\"limit\", \"LIMIT_MAX_DOCUMENT_BYTES\", 5);\n if (failure instanceof FsError) throw new YqError(\"vfs\", \"VFS_INPUT_READ\", 2, sourceName);\n throw failure;\n }\n owner.assertOpen(context.signal);\n session.ownedWork.admitInputBytes(bytes.byteLength);\n if (inputFormat === \"toml\") {\n if (bytes.byteLength > yqCaps.maxDocumentBytes) throw new YqError(\"limit\", \"LIMIT_MAX_DOCUMENT_BYTES\", 5);\n return [{ bytes: new Uint8Array(bytes), rawBytes: bytes.byteLength, lineOffset: 0 }];\n }\n const framer = new RawDocumentFramer();\n framer.admit(bytes);\n const owned = new Uint8Array(bytes);\n owner.assertOpen(context.signal);\n return framer.finish(owned);\n}\n\nfunction decodeDocument(bytes: Uint8Array, inputFormat: \"yaml\" | \"toml\"): string {\n try { return new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: inputFormat === \"toml\" }).decode(bytes); }\n catch { throw new YqError(\"input\", \"INPUT_INVALID_UTF8\", 5); }\n}\n\nasync function writeOperation(\n operation: OutputOperation,\n bytes: Uint8Array,\n owner: InvocationOwner,\n callerSignal: AbortSignal,\n): Promise<void> {\n owner.assertOpen(callerSignal);\n try { await operation.output.write(bytes); }\n catch (failure) { throw new SinkFailure(failure); }\n owner.assertOpen(callerSignal);\n}\n\nasync function runCommand(context: CommandContext, owner: InvocationOwner, inputFormat: \"yaml\" | \"toml\"): Promise<{ exitCode: number }> {\n const ledger = new YqLedger();\n let session: YqQuerySession | undefined;\n let stdout: OutputOperation | undefined;\n let stderr: OutputOperation | undefined;\n const stdoutOperation = (): OutputOperation => {\n stdout ??= createOutputOperation({ signal: context.signal, registerCleanup: cleanup => owner.register(cleanup) }, context.stdout);\n return stdout;\n };\n const stderrOperation = (): OutputOperation => {\n stderr ??= createOutputOperation({ signal: context.signal, registerCleanup: cleanup => owner.register(cleanup) }, context.stderr);\n return stderr;\n };\n const emitDiagnostic = async (error: YqError): Promise<void> => {\n const preferred = Buffer.from(diagnostic(error));\n const fallback = Buffer.from(diagnosticFallback);\n const selected = ledger.canAdmitDiagnostic(preferred.byteLength) ? preferred : ledger.canAdmitDiagnostic(fallback.byteLength) ? fallback : undefined;\n if (!selected) return;\n ledger.admitDiagnostic(selected.byteLength);\n session?.ownedWork.admitOutputBytes(selected.byteLength);\n await writeOperation(stderrOperation(), selected, owner, context.signal);\n };\n try {\n preflightArguments(context);\n const info = isInformationForm(context.args);\n if (context.args.some(argument => argument === \"-h\" || argument === \"--help\" || argument === \"--version\") && info === undefined) {\n throw cli(\"CLI_INFO_COMBINATION\");\n }\n if (info) {\n const bytes = Buffer.from(info === \"help\" ? help : version);\n ledger.admitStdout(bytes.byteLength);\n await writeOperation(stdoutOperation(), bytes, owner, context.signal);\n return { exitCode: 0 };\n }\n const options = parseArguments(context.args, inputFormat);\n if (Buffer.byteLength(options.filter) > yqCaps.maxQuerySourceBytes) throw new YqError(\"limit\", \"LIMIT_MAX_QUERY_SOURCE_BYTES\", 5);\n owner.register(async () => session?.close());\n session = createYqQuerySession({ signal: context.signal });\n try { session.compileOnce(options.filter); }\n catch (failure) {\n if (failure instanceof JqLimitError) throw fromJqLimit(failure);\n if (failure instanceof JqError) throw new YqError(\"query\", \"QUERY_COMPILE_FAILED\", 3);\n throw failure;\n }\n const files = options.files.length > 0 ? options.files : [\"-\"];\n let emitted = 0;\n for (const file of files) {\n const sourceName = file === \"-\" ? \"<stdin>\" : file;\n let frames: InputFrame[];\n try { frames = await sourceFrames(context, owner, session, file, options.inputFormat); }\n catch (failure) { throw failure instanceof YqError ? withSource(failure, sourceName) : failure; }\n owner.assertOpen(context.signal);\n for (const frame of frames) {\n ledger.admitDocumentBytes(frame.rawBytes);\n let input: string;\n try { input = decodeDocument(frame.bytes, options.inputFormat); }\n catch (failure) { throw failure instanceof YqError ? withSource(failure, sourceName) : failure; }\n owner.assertOpen(context.signal);\n try {\n const documents = options.inputFormat === \"toml\"\n ? [await parseTomlDocument(input, session.ownedWork, ledger, frame.rawBytes)]\n : parseYamlDocuments(input, session.ownedWork, ledger, frame.rawBytes, frame.lineOffset);\n for await (const document of documents) {\n owner.assertOpen(context.signal);\n try { await session.ownedWork.measure(document); }\n catch (failure) {\n if (failure instanceof JqLimitError) throw fromJqLimit(failure);\n if (failure instanceof YqValueFailure) throw classifyValueFailure(failure);\n throw failure;\n }\n owner.assertOpen(context.signal);\n const iterator = session.run(document);\n try {\n while (true) {\n let next: IteratorResult<Json>;\n try { next = await iterator.next(); }\n catch (failure) {\n if (context.signal.aborted) throw context.signal.reason;\n if (failure instanceof JqLimitError) throw fromJqLimit(failure);\n if (failure instanceof JqError) throw new YqError(\"query\", \"QUERY_RUNTIME_FAILED\", 5, sourceName);\n throw failure;\n }\n owner.assertOpen(context.signal);\n if (next.done) break;\n try { await session.ownedWork.measure(next.value); }\n catch (failure) {\n if (failure instanceof JqLimitError) throw fromJqLimit(failure);\n if (failure instanceof YqValueFailure) throw classifyValueFailure(failure);\n throw failure;\n }\n owner.assertOpen(context.signal);\n session.ownedWork.admitResult();\n const separator = emitted === 0 || options.format === \"json\" ? \"\" : \"---\\n\";\n const suffixBytes = Buffer.byteLength(separator) + 1;\n const remaining = yqCaps.stdoutCapBytes - ledger.stdoutBytes;\n if (suffixBytes > remaining) throw new YqError(\"limit\", \"LIMIT_MAX_OUTPUT_BYTES\", 5, sourceName);\n let encoded: string;\n try {\n encoded = options.format === \"yaml\"\n ? await encodeYaml(next.value, session.ownedWork, remaining - suffixBytes)\n : options.raw && typeof next.value === \"string\"\n ? await encodeRaw(next.value, session.ownedWork, remaining - 1)\n : await encodeJson(next.value, session.ownedWork, !options.compact, remaining - 1);\n } catch (failure) {\n if (failure instanceof JqLimitError) throw fromJqLimit(failure);\n if (failure instanceof YqValueFailure) throw classifyValueFailure(failure);\n throw failure;\n }\n owner.assertOpen(context.signal);\n const encodedBytes = Buffer.byteLength(encoded);\n const outputBytes = encodedBytes + suffixBytes;\n ledger.admitStdout(outputBytes);\n session.ownedWork.admitOutputBytes(outputBytes);\n owner.assertOpen(context.signal);\n const output = Buffer.allocUnsafe(outputBytes);\n let offset = 0;\n if (separator !== \"\") offset += output.write(separator, offset, \"utf8\");\n offset += output.write(encoded, offset, \"utf8\");\n output[offset] = 0x0a;\n owner.assertOpen(context.signal);\n await writeOperation(stdoutOperation(), output, owner, context.signal);\n emitted++;\n }\n } finally {\n await iterator.return(undefined);\n owner.assertOpen(context.signal);\n }\n }\n } catch (failure) {\n throw failure instanceof YqError ? withSource(failure, sourceName) : failure;\n }\n }\n }\n return { exitCode: 0 };\n } catch (failure) {\n if (context.signal.aborted) throw context.signal.reason;\n if (failure instanceof SinkFailure) throw failure.reason;\n let normal: YqError | undefined;\n if (failure instanceof YqError) normal = failure;\n else if (failure instanceof JqLimitError) normal = fromJqLimit(failure);\n else if (failure instanceof YqValueFailure) normal = classifyValueFailure(failure);\n if (!normal) throw failure;\n await emitDiagnostic(normal);\n return { exitCode: normal.status };\n }\n}\n\nasync function execute(context: CommandContext, inputFormat: \"yaml\" | \"toml\"): Promise<{ exitCode: number }> {\n const owner = new InvocationOwner();\n context.registerCleanup?.(() => owner.close());\n let result: { exitCode: number } | undefined;\n let primary: unknown;\n let hasPrimary = false;\n try {\n result = await runCommand(context, owner, inputFormat);\n } catch (failure) {\n primary = failure;\n hasPrimary = true;\n }\n let cleanup: unknown;\n let hasCleanup = false;\n try { await owner.close(); }\n catch (failure) {\n cleanup = failure;\n hasCleanup = true;\n }\n if (context.signal.aborted) throw context.signal.reason;\n if (hasPrimary) throw primary;\n if (hasCleanup) throw cleanup;\n return result!;\n}\n\nexport interface YqCommandsOptions {\n readonly replace?: boolean;\n readonly inputFormat?: \"yaml\" | \"toml\";\n}\n\nfunction admittedOptions(options: YqCommandsOptions): { replace: boolean; inputFormat: \"yaml\" | \"toml\" } {\n if (typeof options !== \"object\" || options === null) throw new TypeError(\"options must be an object\");\n if (Object.keys(options).some(key => key !== \"replace\" && key !== \"inputFormat\")) throw new TypeError(\"unsupported yq option\");\n const { replace = false, inputFormat = \"yaml\" } = options;\n if (typeof replace !== \"boolean\") throw new TypeError(\"replace must be a boolean\");\n if (inputFormat !== \"yaml\" && inputFormat !== \"toml\") throw new TypeError(\"inputFormat must be yaml or toml\");\n return { replace, inputFormat };\n}\n\nexport function createYqCommand(options: YqCommandsOptions = {}): CommandDefinition {\n const { inputFormat } = admittedOptions(options);\n return Object.freeze({\n name: \"yq\",\n description: \"Bounded restricted YAML/TOML query and formatter\",\n execute: (context: CommandContext) => execute(context, inputFormat),\n });\n}\n\nexport function createYqCommands(options: YqCommandsOptions = {}): readonly CommandDefinition[] {\n return Object.freeze([createYqCommand(options)]);\n}\n\nexport function yqCommands(options: YqCommandsOptions = {}): VirtualShellPlugin {\n const captured = admittedOptions(options);\n const { replace } = captured;\n const definitions = createYqCommands(captured);\n const plugin: VirtualShellPlugin = {\n name: \"yq-commands\",\n setup(host) {\n if (!replace) for (const definition of definitions) {\n if (host.commands.has(definition.name)) throw new Error(`Command already registered: ${definition.name}`);\n }\n for (const definition of definitions) host.commands.register(definition, { replace: replace ?? false });\n },\n };\n return Object.freeze(plugin);\n}\n", "import { yieldTurn } from \"../../contracts/yield.js\";\nimport { Interpreter } from \"./interpreter.js\";\nimport {\n Budget,\n JqLimitError,\n objectKeys,\n wellFormed,\n type JqLimits,\n type Json,\n} from \"./limits.js\";\nimport { Decimal, isNumber, numberText } from \"./numbers.js\";\nimport { parse, type Ast } from \"./parser.js\";\n\nconst checkpointWidth = 1023;\n\nconst yqQueryLimits: Readonly<JqLimits> = Object.freeze({\n maxInputBytes: 16_000_000,\n maxValueBytes: 8_388_608,\n maxOutputBytes: 16_777_216,\n maxSourceBytes: 8_192,\n maxDepth: 128,\n maxAstDepth: 64,\n maxSteps: 1_000_000,\n maxResults: 100_000,\n maxCollectionSize: 100_000,\n});\n\nexport type YqValueFailureCode =\n | \"ENCODE_UNSUPPORTED_VALUE\"\n | \"ENCODE_INVALID_UNICODE\"\n | \"ENCODE_CYCLIC_GRAPH\"\n | \"SCHEMA_NONFINITE_NUMBER\"\n | \"SCHEMA_UNSAFE_INTEGER\";\n\nexport class YqValueFailure extends Error {\n constructor(readonly code: YqValueFailureCode) {\n super(code);\n }\n}\n\nexport interface YqPrepaidWork {\n beforeUnit(): Promise<void>;\n finish(): void;\n abandon(): void;\n}\n\nexport interface YqOwnedWork {\n charge(units?: number): Promise<void>;\n admitInputBytes(bytes: number): void;\n admitOutputBytes(bytes: number): void;\n admitResult(): void;\n measure(value: Json): Promise<number>;\n stringifyJson(value: Json, options: {\n readonly pretty: boolean;\n readonly maxBytes: number;\n readonly limitName: \"maxValueBytes\" | \"maxOutputBytes\";\n }): Promise<string>;\n reserve(ordinaryUnits: number): YqPrepaidWork;\n assertOpen(): void;\n}\n\nexport interface YqQuerySession {\n readonly ownedWork: YqOwnedWork;\n compileOnce(source: string): void;\n run(input: Json): AsyncGenerator<Json, void, undefined>;\n close(): Promise<void>;\n}\n\nfunction assertNonnegativeSafe(value: number, name: string): void {\n if (!Number.isSafeInteger(value) || value < 0) throw new RangeError(`${name} must be a nonnegative safe integer`);\n}\n\nfunction checkedAdd(current: number, incoming: number, limitName: keyof JqLimits, limit: number): number {\n assertNonnegativeSafe(incoming, \"count\");\n if (incoming > limit - current) throw new JqLimitError(limitName);\n return current + incoming;\n}\n\nfunction throwSignal(signal: AbortSignal): void {\n if (signal.aborted) throw signal.reason;\n}\n\nfunction scalarBytes(value: null | boolean | number | Decimal): number {\n return Buffer.byteLength(isNumber(value) ? numberText(value) : JSON.stringify(value));\n}\n\nfunction validateNumber(value: number | Decimal): void {\n const numeric = value instanceof Decimal ? value.double : value;\n if (!Number.isFinite(numeric)) throw new YqValueFailure(\"SCHEMA_NONFINITE_NUMBER\");\n if (Number.isInteger(numeric) && !Number.isSafeInteger(numeric)) {\n throw new YqValueFailure(\"SCHEMA_UNSAFE_INTEGER\");\n }\n}\n\nfunction jsonEscape(codePoint: number): string {\n if (codePoint === 0x22) return \"\\\\\\\"\";\n if (codePoint === 0x5c) return \"\\\\\\\\\";\n if (codePoint === 0x08) return \"\\\\b\";\n if (codePoint === 0x0c) return \"\\\\f\";\n if (codePoint === 0x0a) return \"\\\\n\";\n if (codePoint === 0x0d) return \"\\\\r\";\n if (codePoint === 0x09) return \"\\\\t\";\n if (codePoint < 0x20) return `\\\\u${codePoint.toString(16).padStart(4, \"0\")}`;\n return String.fromCodePoint(codePoint);\n}\n\nfunction jsonEscapedBytes(codePoint: number): number {\n if (codePoint < 0x20 && ![0x08, 0x09, 0x0a, 0x0c, 0x0d].includes(codePoint)) return 6;\n if (codePoint === 0x22 || codePoint === 0x5c || codePoint === 0x08 || codePoint === 0x09\n || codePoint === 0x0a || codePoint === 0x0c || codePoint === 0x0d) return 2;\n return codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4;\n}\n\ninterface OwnedState {\n pending: number;\n activeReservation: boolean;\n accepting: boolean;\n terminal: boolean;\n}\n\nclass OwnedWork implements YqOwnedWork {\n readonly #budget: Budget;\n readonly #signal: AbortSignal;\n readonly #state: OwnedState = { pending: 0, activeReservation: false, accepting: true, terminal: false };\n readonly #active = new Set<Promise<unknown>>();\n #activeAbandon: (() => void) | undefined;\n\n constructor(budget: Budget, signal: AbortSignal) {\n this.#budget = budget;\n this.#signal = signal;\n }\n\n assertOpen(): void {\n throwSignal(this.#signal);\n if (!this.#state.accepting || this.#state.terminal) throw new Error(\"yq query session is closed\");\n }\n\n async charge(units = 1): Promise<void> {\n return this.#track(this.#charge(units));\n }\n\n async #charge(units = 1): Promise<void> {\n if (!Number.isSafeInteger(units) || units <= 0) throw new RangeError(\"units must be a positive safe integer\");\n this.assertOpen();\n if (this.#state.activeReservation) throw new Error(\"owned work cannot interleave with a prepaid reservation\");\n let remaining = units;\n while (remaining > 0) {\n this.assertOpen();\n if (this.#state.pending === checkpointWidth) {\n try {\n await this.#budget.tick();\n } catch (failure) {\n throwSignal(this.#signal);\n throw failure;\n }\n this.assertOpen();\n this.#state.pending = 0;\n }\n const admitted = Math.min(remaining, checkpointWidth - this.#state.pending);\n this.#budget.step(admitted);\n this.#state.pending += admitted;\n remaining -= admitted;\n }\n }\n\n admitInputBytes(bytes: number): void {\n this.assertOpen();\n this.#budget.inputBytes = checkedAdd(this.#budget.inputBytes, bytes, \"maxInputBytes\", this.#budget.limits.maxInputBytes);\n }\n\n admitOutputBytes(bytes: number): void {\n this.assertOpen();\n this.#budget.outputBytes = checkedAdd(this.#budget.outputBytes, bytes, \"maxOutputBytes\", this.#budget.limits.maxOutputBytes);\n }\n\n admitResult(): void {\n this.assertOpen();\n this.#budget.results = checkedAdd(this.#budget.results, 1, \"maxResults\", this.#budget.limits.maxResults);\n }\n\n measure(value: Json): Promise<number> {\n return this.#track(this.#measure(value));\n }\n\n async #measure(value: Json): Promise<number> {\n this.assertOpen();\n let bytes = 0;\n const ancestors = new Set<object>();\n type Visit = { readonly kind: \"value\"; readonly value: unknown; readonly depth: number } | { readonly kind: \"leave\"; readonly value: object };\n const stack: Visit[] = [{ kind: \"value\", value, depth: 0 }];\n while (stack.length > 0) {\n const item = stack.pop()!;\n if (item.kind === \"leave\") {\n ancestors.delete(item.value);\n continue;\n }\n await this.charge(1);\n this.assertOpen();\n if (item.depth > this.#budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n const current = item.value;\n if (current === null || typeof current === \"boolean\") {\n bytes = this.#addMeasured(bytes, scalarBytes(current));\n } else if (typeof current === \"number\" || current instanceof Decimal) {\n validateNumber(current);\n const text = numberText(current);\n await this.#visitText(text, false);\n this.assertOpen();\n bytes = this.#addMeasured(bytes, Buffer.byteLength(text));\n } else if (typeof current === \"string\") {\n if (!wellFormed(current)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n const escaped = await this.#visitText(current, true);\n this.assertOpen();\n bytes = this.#addMeasured(bytes, escaped + 2);\n } else if (typeof current === \"object\") {\n const objectValue = current as object;\n if (ancestors.has(objectValue)) throw new YqValueFailure(\"ENCODE_CYCLIC_GRAPH\");\n const prototype = Object.getPrototypeOf(objectValue);\n const array = Array.isArray(current);\n if (!array && prototype !== null && prototype !== Object.prototype) {\n throw new YqValueFailure(\"ENCODE_UNSUPPORTED_VALUE\");\n }\n if (item.depth + 1 > this.#budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n const keys = array ? Object.keys(current) : objectKeys(current as Record<string, Json>);\n this.#budget.collection(keys.length);\n bytes = this.#addMeasured(bytes, 2 + Math.max(0, keys.length - 1));\n ancestors.add(objectValue);\n stack.push({ kind: \"leave\", value: objectValue });\n for (let index = keys.length - 1; index >= 0; index--) {\n const key = keys[index]!;\n if (!array) {\n if (!wellFormed(key)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n const escaped = await this.#visitText(key, true);\n this.assertOpen();\n bytes = this.#addMeasured(bytes, escaped + 3);\n }\n stack.push({ kind: \"value\", value: (current as Record<string, unknown>)[key], depth: item.depth + 1 });\n }\n } else {\n throw new YqValueFailure(\"ENCODE_UNSUPPORTED_VALUE\");\n }\n }\n this.assertOpen();\n return bytes;\n }\n\n stringifyJson(value: Json, options: { readonly pretty: boolean; readonly maxBytes: number; readonly limitName: \"maxValueBytes\" | \"maxOutputBytes\" }): Promise<string> {\n return this.#track(this.#stringifyJson(value, options));\n }\n\n async #stringifyJson(value: Json, options: { readonly pretty: boolean; readonly maxBytes: number; readonly limitName: \"maxValueBytes\" | \"maxOutputBytes\" }): Promise<string> {\n assertNonnegativeSafe(options.maxBytes, \"maxBytes\");\n const fragments: string[] = [];\n let bytes = 0;\n const append = async (fragment: string): Promise<void> => {\n const fragmentBytes = Buffer.byteLength(fragment);\n if (fragmentBytes > options.maxBytes - bytes) throw new JqLimitError(options.limitName);\n if (fragmentBytes > 0) await this.charge(Math.ceil(fragmentBytes / 1024));\n this.assertOpen();\n fragments.push(fragment);\n bytes += fragmentBytes;\n };\n const reserveFragment = (projectedBytes: number): void => {\n if (!Number.isSafeInteger(projectedBytes) || projectedBytes < 0 || projectedBytes > options.maxBytes - bytes) {\n throw new JqLimitError(options.limitName);\n }\n bytes += projectedBytes;\n };\n const appendReserved = async (fragment: string, projectedBytes: number): Promise<void> => {\n if (Buffer.byteLength(fragment) !== projectedBytes) throw new Error(\"escaped fragment projection mismatch\");\n if (projectedBytes > 0) await this.charge(Math.ceil(projectedBytes / 1024));\n this.assertOpen();\n fragments.push(fragment);\n };\n const appendIndent = async (depth: number): Promise<void> => {\n const indentBytes = depth * 2;\n if (!Number.isSafeInteger(indentBytes) || indentBytes > options.maxBytes - bytes) throw new JqLimitError(options.limitName);\n await append(\" \".repeat(depth));\n };\n const appendString = async (text: string): Promise<void> => {\n if (!wellFormed(text)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n await append('\"');\n for (let start = 0; start < text.length;) {\n let end = start;\n let codePoints = 0;\n let projectedBytes = 0;\n while (end < text.length && codePoints < 256) {\n const codePoint = text.codePointAt(end)!;\n projectedBytes += jsonEscapedBytes(codePoint);\n end += codePoint > 0xffff ? 2 : 1;\n codePoints++;\n }\n reserveFragment(projectedBytes);\n let fragment = \"\";\n for (let index = start; index < end;) {\n const codePoint = text.codePointAt(index)!;\n fragment += jsonEscape(codePoint);\n index += codePoint > 0xffff ? 2 : 1;\n }\n await this.charge(codePoints);\n this.assertOpen();\n await appendReserved(fragment, projectedBytes);\n this.assertOpen();\n start = end;\n }\n this.assertOpen();\n await append('\"');\n };\n const ancestors = new Set<object>();\n const encode = async (current: unknown, depth: number): Promise<void> => {\n await this.charge(1);\n this.assertOpen();\n if (depth > this.#budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n if (current === null || typeof current === \"boolean\") {\n await append(JSON.stringify(current));\n } else if (typeof current === \"number\" || current instanceof Decimal) {\n validateNumber(current);\n await append(numberText(current));\n } else if (typeof current === \"string\") {\n await appendString(current);\n } else if (typeof current === \"object\") {\n const objectValue = current as object;\n if (ancestors.has(objectValue)) throw new YqValueFailure(\"ENCODE_CYCLIC_GRAPH\");\n const array = Array.isArray(current);\n const prototype = Object.getPrototypeOf(objectValue);\n if (!array && prototype !== null && prototype !== Object.prototype) throw new YqValueFailure(\"ENCODE_UNSUPPORTED_VALUE\");\n if (depth + 1 > this.#budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n const keys = array ? Object.keys(current) : objectKeys(current as Record<string, Json>);\n this.#budget.collection(keys.length);\n ancestors.add(objectValue);\n try {\n await append(array ? \"[\" : \"{\");\n if (options.pretty && keys.length > 0) await append(\"\\n\");\n for (let index = 0; index < keys.length; index++) {\n const key = keys[index]!;\n if (index > 0) await append(options.pretty ? \",\\n\" : \",\");\n if (options.pretty) await appendIndent(depth + 1);\n if (!array) {\n if (!wellFormed(key)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n await appendString(key);\n await append(options.pretty ? \": \" : \":\");\n }\n await encode((current as Record<string, unknown>)[key], depth + 1);\n }\n if (options.pretty && keys.length > 0) {\n await append(\"\\n\");\n await appendIndent(depth);\n }\n await append(array ? \"]\" : \"}\");\n } finally {\n ancestors.delete(objectValue);\n }\n } else {\n throw new YqValueFailure(\"ENCODE_UNSUPPORTED_VALUE\");\n }\n };\n await encode(value, 0);\n this.assertOpen();\n if (bytes > options.maxBytes) throw new JqLimitError(options.limitName);\n return fragments.join(\"\");\n }\n\n reserve(ordinaryUnits: number): YqPrepaidWork {\n assertNonnegativeSafe(ordinaryUnits, \"ordinaryUnits\");\n this.assertOpen();\n if (this.#state.activeReservation) throw new Error(\"nested owned reservation\");\n const startPending = this.#state.pending;\n let checkpoints = 0;\n let targetPending = startPending;\n if (ordinaryUnits > 0) {\n if (ordinaryUnits > Number.MAX_SAFE_INTEGER - startPending) throw new RangeError(\"owned reservation overflow\");\n const sum = startPending + ordinaryUnits;\n checkpoints = Math.floor((sum - 1) / checkpointWidth);\n targetPending = sum - checkpoints * checkpointWidth;\n }\n if (checkpoints > Number.MAX_SAFE_INTEGER - ordinaryUnits) throw new RangeError(\"owned reservation overflow\");\n const total = ordinaryUnits + checkpoints;\n this.#budget.step(total);\n this.assertOpen();\n this.#state.activeReservation = true;\n let ordinaryRemaining = ordinaryUnits;\n let checkpointRemaining = checkpoints;\n let executionPending = startPending;\n let active = true;\n let releaseReservation!: () => void;\n const reservationLifetime = new Promise<void>(resolve => { releaseReservation = resolve; });\n this.#active.add(reservationLifetime);\n void reservationLifetime.finally(() => this.#active.delete(reservationLifetime));\n const fail = (): never => {\n active = false;\n this.#state.activeReservation = false;\n this.#state.terminal = true;\n this.#activeAbandon = undefined;\n releaseReservation();\n throw new Error(\"invalid prepaid owned-work schedule\");\n };\n const abandon = (): void => {\n if (!active) return;\n active = false;\n this.#state.activeReservation = false;\n this.#state.terminal = true;\n this.#activeAbandon = undefined;\n releaseReservation();\n };\n this.#activeAbandon = abandon;\n const beforeUnit = async (): Promise<void> => {\n if (!active || ordinaryRemaining === 0) fail();\n this.assertOpen();\n if (executionPending === checkpointWidth) {\n if (checkpointRemaining === 0) fail();\n checkpointRemaining--;\n throwSignal(this.#signal);\n try {\n await yieldTurn(this.#signal);\n } catch (failure) {\n if (this.#signal.aborted) throw this.#signal.reason;\n throw failure;\n }\n this.assertOpen();\n executionPending = 0;\n } else {\n await Promise.resolve();\n this.assertOpen();\n }\n ordinaryRemaining--;\n executionPending++;\n };\n return Object.freeze({\n beforeUnit: (): Promise<void> => this.#track(beforeUnit()),\n finish: (): void => {\n if (!active || ordinaryRemaining !== 0 || checkpointRemaining !== 0 || executionPending !== targetPending) fail();\n this.assertOpen();\n active = false;\n this.#state.pending = targetPending;\n this.#state.activeReservation = false;\n this.#activeAbandon = undefined;\n releaseReservation();\n },\n abandon,\n });\n }\n\n async close(): Promise<void> {\n this.#state.accepting = false;\n this.#activeAbandon?.();\n await Promise.allSettled([...this.#active]);\n }\n\n #addMeasured(current: number, incoming: number): number {\n if (incoming > this.#budget.limits.maxValueBytes - current) throw new JqLimitError(\"maxValueBytes\");\n return current + incoming;\n }\n\n async #visitText(text: string, escaped: boolean): Promise<number> {\n if (!wellFormed(text)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n let encodedBytes = 0;\n let payloadBytes = 0;\n let codePoints = 0;\n for (const character of text) {\n const fragment = escaped ? jsonEscape(character.codePointAt(0)!) : character;\n const bytes = Buffer.byteLength(fragment);\n if (bytes > this.#budget.limits.maxValueBytes - encodedBytes) throw new JqLimitError(\"maxValueBytes\");\n encodedBytes += bytes;\n payloadBytes += Buffer.byteLength(character);\n codePoints++;\n if (codePoints === 256) {\n await this.charge(codePoints);\n this.assertOpen();\n codePoints = 0;\n }\n }\n if (codePoints > 0) {\n await this.charge(codePoints);\n this.assertOpen();\n }\n if (payloadBytes > 0) {\n await this.charge(Math.ceil(payloadBytes / 1024));\n this.assertOpen();\n }\n return encodedBytes;\n }\n\n #track<Result>(promise: Promise<Result>): Promise<Result> {\n this.#active.add(promise);\n void promise.finally(() => this.#active.delete(promise)).catch(() => {});\n return promise;\n }\n}\n\nclass QuerySession implements YqQuerySession {\n readonly ownedWork: OwnedWork;\n readonly #signal: AbortSignal;\n readonly #variables: ReadonlyMap<string, Json> = new Map();\n readonly #budget: Budget;\n readonly #interpreter: Interpreter;\n #ast: Ast | undefined;\n #compileAttempted = false;\n #accepting = true;\n #active: AsyncGenerator<Json> | undefined;\n #activeReturn: Promise<unknown> | undefined;\n #closePromise: Promise<void> | undefined;\n\n constructor(signal: AbortSignal) {\n if (!(signal instanceof AbortSignal)) throw new TypeError(\"signal must be an AbortSignal\");\n this.#signal = signal;\n this.#budget = new Budget(yqQueryLimits, signal);\n this.#interpreter = new Interpreter(this.#budget, this.#variables);\n this.ownedWork = new OwnedWork(this.#budget, signal);\n }\n\n compileOnce(source: string): void {\n this.#assertAdmission();\n if (this.#compileAttempted) throw new Error(\"yq query compilation was already attempted\");\n this.#compileAttempted = true;\n this.#ast = parse(source, this.#variables, this.#budget);\n }\n\n run(input: Json): AsyncGenerator<Json, void, undefined> {\n const session = this;\n return (async function* (): AsyncGenerator<Json, void, undefined> {\n session.#assertAdmission();\n if (!session.#ast) throw new Error(\"yq query was not compiled successfully\");\n if (session.#active) throw new Error(\"overlapping yq query runs are not allowed\");\n const iterator = session.#interpreter.run(session.#ast, input);\n session.#active = iterator;\n session.#activeReturn = undefined;\n try {\n while (true) {\n let next: IteratorResult<Json>;\n try {\n next = await iterator.next();\n } catch (failure) {\n throwSignal(session.#signal);\n throw failure;\n }\n session.#assertAdmission();\n if (next.done) return;\n yield next.value;\n session.#assertAdmission();\n }\n } finally {\n try {\n await session.#returnActive(iterator);\n } finally {\n if (session.#active === iterator) session.#active = undefined;\n }\n }\n })();\n }\n\n close(): Promise<void> {\n if (this.#closePromise) return this.#closePromise;\n this.#accepting = false;\n this.#closePromise = (async (): Promise<void> => {\n const failures: unknown[] = [];\n const active = this.#active;\n if (active) {\n try { await this.#returnActive(active); }\n catch (failure) { failures.push(failure); }\n }\n try { await this.ownedWork.close(); }\n catch (failure) { failures.push(failure); }\n if (failures.length === 1) throw failures[0];\n if (failures.length > 1) throw new AggregateError(failures, \"yq query session cleanup failed\");\n })();\n void this.#closePromise.catch(() => {});\n return this.#closePromise;\n }\n\n #assertAdmission(): void {\n throwSignal(this.#signal);\n if (!this.#accepting) throw new Error(\"yq query session is closed\");\n }\n\n #returnActive(iterator: AsyncGenerator<Json>): Promise<unknown> {\n if (this.#active === iterator && this.#activeReturn) return this.#activeReturn;\n const returned = Promise.resolve().then(() => iterator.return(undefined));\n if (this.#active === iterator) this.#activeReturn = returned;\n void returned.catch(() => {});\n return returned;\n }\n}\n\nexport function createYqQuerySession(options: { readonly signal: AbortSignal }): YqQuerySession {\n if (typeof options !== \"object\" || options === null) throw new TypeError(\"options must be an object\");\n return new QuerySession(options.signal);\n}\n", "import { Budget, copyObject, isObject, JqError, JqLimitError, object, objectKeyIterator, objectKeys, put, remove as removeKey, truth, type Json } from \"./limits.js\";\nimport { isNumber, numberValue, type Numeric } from \"./numbers.js\";\nimport { JqParseError, measureValue, parseJson, stringify } from \"./input.js\";\nimport type { Ast } from \"./parser.js\";\nimport { splitString } from \"./split.js\";\nimport { binary, compare, contains, describe, entries, equal, indexValue, sliceValue, sortedKeys, stableSort, type } from \"./values.js\";\n\ntype Path = (string | number)[];\ninterface Frame { readonly name: string; readonly value: Json; readonly parent: Frame | undefined; readonly depth: number }\nconst deleted = Symbol(\"deleted\");\nexport class Interpreter {\n constructor(readonly budget: Budget, readonly variables: ReadonlyMap<string, Json>, private readonly frame?: Frame) {}\n async collect(ast: Ast, input: Json): Promise<Json[]> {\n const result: Json[] = [];\n let bytes = 2;\n for await (const value of this.run(ast, input)) {\n this.budget.collection(result.length + 1);\n bytes += this.budget.value(value) + (result.length ? 1 : 0);\n if (bytes > this.budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n result.push(value);\n }\n this.budget.value(result);\n return result;\n }\n async *run(ast: Ast, input: Json): AsyncGenerator<Json> {\n await this.budget.tick();\n switch (ast.kind) {\n case \"identity\": yield input; return;\n case \"literal\": yield ast.value; return;\n case \"variable\": {\n for (let frame = this.frame; frame; frame = frame.parent) {\n await this.budget.tick();\n if (frame.name === ast.name) { yield frame.value; return; }\n }\n yield this.variables.get(ast.name)!; return;\n }\n case \"descend\": yield* this.descend(input); return;\n case \"try\":\n try { yield* this.run(ast.body, input); }\n catch (error) {\n if (!(error instanceof JqError) || error instanceof JqLimitError || this.budget.signal.aborted) throw error;\n if (ast.handler) yield* this.run(ast.handler, error.message);\n }\n return;\n case \"reduce\":\n case \"foreach\": {\n const depth = (this.frame?.depth ?? 0) + 1;\n if (depth > this.budget.limits.maxAstDepth) throw new JqLimitError(\"maxAstDepth\");\n let sourceInput = input;\n for await (const initial of this.run(ast.init, input)) {\n let accumulator = initial;\n for await (const value of this.run(ast.source, sourceInput)) {\n await this.budget.tick();\n const scope = new Interpreter(this.budget, this.variables, { name: ast.name, value, parent: this.frame, depth });\n const previous = accumulator;\n accumulator = null;\n for await (const updated of scope.run(ast.update, previous)) {\n await this.budget.tick();\n accumulator = updated;\n if (ast.kind === \"foreach\") {\n if (ast.extract) yield* scope.run(ast.extract, updated);\n else yield updated;\n }\n }\n }\n if (ast.kind === \"reduce\") { sourceInput = null; yield accumulator; }\n }\n return;\n }\n case \"unary\":\n for await (const value of this.run(ast.operand, input)) {\n if (!isNumber(value)) throw new JqError(\"negation requires a number\");\n yield -numberValue(value);\n }\n return;\n case \"optional\":\n try { yield* this.run(ast.operand, input); }\n catch (error) { if (!(error instanceof JqError) || error instanceof JqLimitError || this.budget.signal.aborted) throw error; }\n return;\n case \"index\":\n for await (const index of this.run(ast.index, input)) for await (const base of this.run(ast.base, input)) yield indexValue(base, index);\n return;\n case \"slice\":\n for await (const start of ast.start ? this.run(ast.start, input) : [null])\n for await (const end of ast.end ? this.run(ast.end, input) : [null])\n for await (const base of this.run(ast.base, input)) { await this.budget.tick(); yield await sliceValue(base, start, end, this.budget); }\n return;\n case \"iterate\":\n for await (const base of this.run(ast.base, input)) for await (const [, value] of entries(base, this.budget)) { await this.budget.tick(); yield value; }\n return;\n case \"array\": yield ast.body ? await this.collect(ast.body, input) : []; return;\n case \"object\": {\n if (!ast.fields.length) { yield object(); return; }\n const stack = [this.field(ast.fields[0]!, object(), input)];\n try {\n while (stack.length) {\n const next = await stack[stack.length - 1]!.next();\n if (next.done) { stack.pop(); continue; }\n if (stack.length === ast.fields.length) yield next.value;\n else stack.push(this.field(ast.fields[stack.length]!, next.value, input));\n }\n } finally { for (const iterator of stack.reverse()) await iterator.return(undefined); }\n return;\n }\n case \"if\":\n for await (const condition of this.run(ast.condition, input)) yield* this.run(truth(condition) ? ast.yes : ast.no, input);\n return;\n case \"binary\": {\n const operator = ast.operator;\n if (operator === \"|\") { for await (const value of this.run(ast.left, input)) yield* this.run(ast.right, value); return; }\n if (operator === \",\") { yield* this.run(ast.left, input); yield* this.run(ast.right, input); return; }\n if (operator === \"//\") {\n let found = false;\n for await (const value of this.run(ast.left, input)) if (truth(value)) { found = true; yield value; }\n if (!found) yield* this.run(ast.right, input);\n return;\n }\n if ([\"=\", \"|=\", \"+=\", \"-=\", \"*=\", \"/=\", \"%=\", \"//=\"].includes(operator)) { yield* this.assign(ast.left, ast.right, operator, input); return; }\n if (operator === \"and\" || operator === \"or\") {\n for await (const left of this.run(ast.left, input)) {\n if (operator === \"and\" && !truth(left)) { yield false; continue; }\n if (operator === \"or\" && truth(left)) { yield true; continue; }\n for await (const right of this.run(ast.right, input)) yield truth(right);\n }\n return;\n }\n for await (const right of this.run(ast.right, input)) {\n for await (const left of this.run(ast.left, input)) {\n const result = await binary(operator, left, right, this.budget);\n this.budget.value(result); yield result;\n }\n }\n return;\n }\n case \"call\": yield* this.call(ast.name, ast.args, input); return;\n }\n }\n async *descend(input: Json, depth = 0): AsyncGenerator<Json> {\n await this.budget.tick();\n if (depth > this.budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n yield input;\n if (Array.isArray(input)) {\n if (depth + 1 > this.budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n this.budget.collection(input.length);\n for (const value of input) yield* this.descend(value, depth + 1);\n } else if (isObject(input)) {\n if (depth + 1 > this.budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n const keys = objectKeys(input);\n this.budget.collection(keys.length);\n for (const key of keys) yield* this.descend(input[key]!, depth + 1);\n }\n }\n async *field(field: { key: Ast; value: Ast }, previous: Record<string, Json>, input: Json): AsyncGenerator<Record<string, Json>> {\n for await (const key of this.run(field.key, input)) {\n if (typeof key !== \"string\") throw new JqError(\"object keys must be strings\");\n for await (const value of this.run(field.value, input)) {\n const item = copyObject(previous); put(item, key, value);\n this.budget.value(item); yield item;\n }\n }\n }\n async *paths(ast: Ast, input: Json): AsyncGenerator<Path> {\n await this.budget.tick();\n if (ast.kind === \"identity\") { yield []; return; }\n if (ast.kind === \"binary\" && ast.operator === \",\") { yield* this.paths(ast.left, input); yield* this.paths(ast.right, input); return; }\n if (ast.kind !== \"index\" && ast.kind !== \"iterate\") throw new JqError(\"unsupported assignment path\");\n if (ast.kind === \"index\") {\n for await (const key of this.run(ast.index, input)) for await (const path of this.paths(ast.base, input)) {\n let base = input;\n for (const component of path) base = indexValue(base, component);\n if (typeof key !== \"string\" && (!isNumber(key) || !Number.isFinite(numberValue(key)))) throw new JqError(\"assignment index must be a string or finite number\");\n indexValue(base, key);\n const integer = isNumber(key) ? Math.trunc(numberValue(key)) : key;\n yield [...path, typeof integer === \"number\" && integer < 0 && Array.isArray(base) ? base.length + integer : integer];\n }\n return;\n }\n for await (const path of this.paths(ast.base, input)) {\n let base = input;\n for (const component of path) base = indexValue(base, component);\n for await (const [key] of entries(base, this.budget)) { await this.budget.tick(); yield [...path, key]; }\n }\n }\n set(input: Json, path: Path, value: Json | typeof deleted, depth = 0): Json {\n this.budget.step();\n if (depth > this.budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n if (depth === path.length) return value === deleted ? null : value;\n const key = path[depth]!;\n if (value === deleted && (input === null\n || (typeof key === \"string\" && isObject(input) && !Object.hasOwn(input, key))\n || (typeof key === \"number\" && Array.isArray(input) && (key < 0 || key >= input.length)))) return input;\n const previous = indexValue(input, key);\n const remove = value === deleted && depth === path.length - 1;\n if (typeof key === \"string\") {\n if (input !== null && !isObject(input)) throw new JqError(\"object assignment requires object or null\");\n const result = copyObject(input);\n if (remove) removeKey(result, key);\n else put(result, key, this.set(previous, path, value, depth + 1));\n this.budget.collection(objectKeys(result).length); return result;\n }\n if (key < 0) throw new JqError(\"array index out of bounds\");\n if (input !== null && !Array.isArray(input)) throw new JqError(\"array assignment requires array or null\");\n const result = input === null ? [] : [...input];\n if (remove) { if (key < result.length) result.splice(key, 1); }\n else {\n this.budget.collection(Math.max(result.length, key + 1));\n while (result.length <= key) result.push(null);\n result[key] = this.set(previous, path, value, depth + 1);\n }\n return result;\n }\n async *assign(left: Ast, right: Ast, operator: string, input: Json): AsyncGenerator<Json> {\n if (operator !== \"|=\") {\n for await (const value of this.run(right, input)) {\n let result = input;\n for await (const path of this.paths(left, input)) {\n let previous = result;\n for (const key of path) previous = indexValue(previous, key);\n const assigned = operator === \"=\" ? value : operator === \"//=\" ? truth(previous) ? previous : value : await binary(operator.slice(0, -1), previous, value, this.budget);\n result = this.set(result, path, assigned); this.budget.value(result);\n }\n yield result;\n }\n return;\n }\n const paths: Path[] = [];\n for await (const path of this.paths(left, input)) { this.budget.collection(paths.length + 1); paths.push(path); }\n let result = input;\n const deletions: Path[] = [];\n for (const path of paths) {\n let previous = result;\n for (const key of path) previous = indexValue(previous, key);\n let value: Json | typeof deleted = deleted;\n for await (const output of this.run(right, previous)) { value = output; break; }\n if (value === deleted) deletions.push(path);\n else { result = this.set(result, path, value); this.budget.value(result); }\n }\n await stableSort(deletions, this.budget, async (first, second) => -await compare(first, second, this.budget));\n let lastDeletion: Path | undefined;\n for (const path of deletions) {\n if (!lastDeletion || await compare(lastDeletion, path, this.budget) !== 0) result = this.set(result, path, deleted);\n lastDeletion = path;\n }\n this.budget.value(result); yield result;\n }\n async *call(name: string, args: Ast[], input: Json): AsyncGenerator<Json> {\n const budget = this.budget;\n if (name === \"empty\") return;\n if (name === \"select\") { for await (const value of this.run(args[0]!, input)) if (truth(value)) yield input; return; }\n if (name === \"values\") { if (input !== null) yield input; return; }\n const filters: Readonly<Record<string, string>> = { strings: \"string\", numbers: \"number\", booleans: \"boolean\", arrays: \"array\", objects: \"object\", nulls: \"null\" };\n if (Object.hasOwn(filters, name)) { if (type(input) === filters[name]) yield input; return; }\n if (name === \"scalars\" || name === \"iterables\") {\n if ((isObject(input) || Array.isArray(input)) === (name === \"iterables\")) yield input; return;\n }\n if (name === \"type\") { yield type(input); return; }\n if (name === \"nan\" || name === \"infinite\") { yield name === \"nan\" ? NaN : Infinity; return; }\n if (name === \"isnan\" || name === \"isinfinite\" || name === \"isfinite\") {\n const value = isNumber(input) ? numberValue(input) : undefined;\n const infinite = value === Infinity || value === -Infinity;\n yield name === \"isnan\" ? value !== undefined && Number.isNaN(value) : name === \"isinfinite\" ? infinite : value !== undefined && !infinite;\n return;\n }\n if (name === \"not\") { yield !truth(input); return; }\n if (name === \"length\") {\n if (input === null) yield 0;\n else if (isNumber(input)) yield Math.abs(numberValue(input));\n else if (typeof input === \"string\") {\n await budget.tick(input.length);\n let length = 0;\n for (let offset = 0; offset < input.length; length++) {\n if (length % 32 === 0) await budget.tick(0);\n offset += input.codePointAt(offset)! > 0xffff ? 2 : 1;\n }\n yield length;\n }\n else if (Array.isArray(input)) yield input.length;\n else if (isObject(input)) {\n let length = 0;\n for (const key of objectKeyIterator(input)) { await budget.tick(); void key; length++; }\n yield length;\n }\n else throw new JqError(\"boolean has no length\");\n return;\n }\n if (name === \"keys\" || name === \"keys_unsorted\") {\n let result: Json[];\n if (Array.isArray(input)) {\n budget.collection(input.length);\n await budget.tick(input.length);\n result = [];\n let bytes = 2;\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n for (let index = 0; index < input.length; index++) {\n await budget.tick();\n bytes += String(index).length + (index ? 1 : 0);\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n result.push(index);\n }\n } else if (isObject(input)) {\n let bytes = 2;\n let count = 0;\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n for (const key of objectKeyIterator(input)) {\n await budget.tick();\n budget.collection(++count);\n const separator = count > 1 ? 1 : 0;\n bytes += separator + await measureValue(key, budget, 1, budget.limits.maxValueBytes - bytes - separator);\n }\n if (name === \"keys\") result = await sortedKeys(input, budget);\n else {\n result = [];\n for (const key of objectKeyIterator(input)) {\n await budget.tick();\n budget.collection(result.length + 1);\n result.push(key);\n }\n }\n } else throw new JqError(\"keys requires an object or array\");\n yield result; return;\n }\n if (name === \"map\" || name === \"map_values\") {\n const result: Json = name === \"map_values\" && isObject(input) ? object() : [];\n let bytes = 2;\n for await (const [key, value] of entries(input, budget)) for await (const mapped of this.run(args[0]!, value)) {\n bytes += budget.value(mapped) + 1 + (Array.isArray(result) ? 0 : Buffer.byteLength(JSON.stringify(String(key))) + 1);\n if (bytes - 1 > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n if (Array.isArray(result)) { budget.collection(result.length + 1); result.push(mapped); }\n else put(result, String(key), mapped);\n if (name === \"map_values\") break;\n }\n budget.value(result); yield result; return;\n }\n if (name === \"has\" || name === \"contains\") {\n for await (const argument of this.run(args[0]!, input)) {\n if (name === \"contains\") {\n if (type(input) !== type(argument)) throw new JqError(\"contains requires matching types\");\n yield contains(input, argument, budget);\n } else if (input === null) yield false;\n else if (isObject(input) && typeof argument === \"string\") yield Object.hasOwn(input, argument);\n else if (Array.isArray(input) && isNumber(argument)) yield Math.trunc(numberValue(argument)) >= 0 && Math.trunc(numberValue(argument)) < input.length;\n else throw new JqError(\"has requires object/string or array/number\");\n }\n return;\n }\n if (name === \"split\") {\n for await (const separator of this.run(args[0]!, input)) {\n yield await splitString(input, separator, budget);\n }\n return;\n }\n if (name === \"join\") {\n for await (const separator of this.run(args[0]!, input)) {\n const separatorBytes = budget.value(separator);\n let result = \"\";\n let bytes = 2;\n let first = true;\n const append = (text: string, encodedBytes: number): void => {\n bytes += encodedBytes - 2;\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n result += text;\n };\n for await (const [, item] of entries(input, budget)) {\n await budget.tick();\n if (!first && separator !== null) {\n if (typeof separator !== \"string\") await binary(\"+\", result, separator, budget);\n if (typeof separator !== \"string\") throw new JqError(\"join separator must be a string or null when used\");\n append(separator, separatorBytes);\n }\n first = false;\n if (isObject(item) || Array.isArray(item)) await binary(\"+\", result, item, budget);\n const text = item === null ? \"\" : typeof item === \"string\" ? item : await stringify(item, budget);\n append(text, budget.value(text));\n }\n budget.value(result); yield result;\n }\n return;\n }\n if (name === \"first\" || name === \"last\") {\n if (!args.length) {\n if (!Array.isArray(input) && input !== null) throw new JqError(`${name} requires an array`);\n yield input === null ? null : input[name === \"first\" ? 0 : input.length - 1] ?? null; return;\n }\n let last: Json | undefined;\n for await (const value of this.run(args[0]!, input)) { if (name === \"first\") { yield value; return; } last = value; }\n if (name === \"last\") yield last ?? null; return;\n }\n if (name === \"limit\") {\n for await (const argument of this.run(args[0]!, input)) {\n if (!isNumber(argument) || !Number.isSafeInteger(numberValue(argument)) || numberValue(argument) < 0) throw new JqError(\"limit requires a nonnegative integer\");\n const count = numberValue(argument);\n if (count === 0) continue;\n let emitted = 0;\n for await (const value of this.run(args[1]!, input)) { yield value; if (++emitted >= count) break; }\n }\n return;\n }\n if (name === \"range\") {\n for await (const start of args.length === 1 ? [0] : this.run(args[0]!, input))\n for await (const end of this.run(args[args.length === 1 ? 0 : 1]!, input))\n for await (const increment of args[2] ? this.run(args[2], input) : [1]) {\n if (!isNumber(start) || !isNumber(end) || !isNumber(increment)) throw new JqError(\"range requires numbers\");\n const step = numberValue(increment);\n const stop = numberValue(end);\n if (step === 0) continue;\n for (let value: Numeric = start; step > 0 ? numberValue(value) < stop : numberValue(value) > stop;) {\n await budget.tick(); yield value;\n const next = numberValue(value) + step;\n if (!Number.isFinite(next)) throw new JqError(\"nonfinite range increment\");\n if (next === numberValue(value)) throw new JqError(\"range increment makes no progress\"); value = next;\n }\n }\n return;\n }\n if (name === \"tostring\" || name === \"tojson\") {\n if (typeof input === \"string\" && name === \"tostring\") { await measureValue(input, budget); yield input; }\n else yield await stringify(input, budget, false, budget.limits.maxValueBytes, \"maxValueBytes\", true);\n return;\n }\n if (name === \"tonumber\" || name === \"fromjson\") {\n if (name === \"tonumber\" && isNumber(input)) { yield input; return; }\n if (typeof input !== \"string\") throw new JqError(name === \"fromjson\" ? `${describe(input, budget)} only strings can be parsed` : `${describe(input, budget)} cannot be parsed as a number`);\n let result: Json;\n try { result = parseJson(input, budget); }\n catch (error) {\n if (!(error instanceof JqParseError)) throw error;\n throw new JqError(`${error.diagnostic()} (while parsing '${input.split(\"\\0\", 1)[0]}')`);\n }\n if (name === \"tonumber\" && !isNumber(result)) throw new JqError(`${describe(input, budget)} cannot be parsed as a number`);\n yield result; return;\n }\n if (name === \"to_entries\") {\n if (Array.isArray(input)) await budget.tick(input.length);\n const result: Json[] = [];\n let bytes = 2;\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n for await (const [key, value] of entries(input, budget)) {\n budget.collection(result.length + 1);\n budget.collection(2);\n const overhead = 17 + (result.length ? 1 : 0);\n const keyBytes = await measureValue(key, budget, 2, budget.limits.maxValueBytes - bytes - overhead);\n const valueBytes = await measureValue(value, budget, 2, budget.limits.maxValueBytes - bytes - overhead - keyBytes);\n await budget.tick(4);\n bytes += overhead + keyBytes + valueBytes;\n const entry = object();\n put(entry, \"key\", key); put(entry, \"value\", value);\n result.push(entry);\n }\n yield result; return;\n }\n if (name === \"from_entries\" || name === \"with_entries\") {\n let values = input;\n if (name === \"with_entries\") {\n values = [];\n let bytes = 2;\n for await (const [key, value] of entries(input, budget)) for await (const mapped of this.run(args[0]!, copyObject({ key, value }))) {\n budget.collection(values.length + 1); bytes += budget.value(mapped) + (values.length ? 1 : 0);\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n values.push(mapped);\n }\n }\n const result = object();\n for await (const [, entry] of entries(values, budget)) {\n await budget.tick();\n if (!isObject(entry)) throw new JqError(`Cannot index ${type(entry)} with string \"key\"`);\n const key = [\"key\", \"Key\", \"name\", \"Name\"].find(candidate => Object.hasOwn(entry, candidate) && truth(entry[candidate]!));\n const value = [\"value\", \"Value\"].find(candidate => Object.hasOwn(entry, candidate));\n if (key === undefined || typeof entry[key] !== \"string\") throw new JqError(\"from_entries requires string keys\");\n put(result, entry[key] as string, value === undefined ? null : entry[value]!);\n }\n budget.value(result); yield result; return;\n }\n if (name === \"any\" || name === \"all\") {\n const generator: Ast = args.length === 2 ? args[0]! : { kind: \"iterate\", base: { kind: \"identity\" } };\n const condition: Ast = args[args.length === 2 ? 1 : 0] ?? { kind: \"identity\" };\n for await (const item of this.run(generator, input)) {\n for await (const value of this.run(condition, item)) {\n await budget.tick();\n if (truth(value) === (name === \"any\")) { yield name === \"any\"; return; }\n }\n }\n yield name === \"all\"; return;\n }\n if (!Array.isArray(input)) {\n if (name === \"unique\" && !isObject(input)) throw new JqError(`Cannot iterate over ${describe(input, budget)}`);\n if (name === \"sort\") throw new JqError(`${describe(input, budget)} cannot be sorted, as it is not an array`);\n throw new JqError(`${name} requires an array`);\n }\n if (name === \"reverse\") {\n await budget.tick(input.length);\n await measureValue(input, budget);\n const result: Json[] = [];\n for (let index = input.length - 1; index >= 0; index--) { await budget.tick(0); result.push(input[index]!); }\n yield result; return;\n }\n if (name === \"add\") {\n let result: Json = null;\n for (const item of input) { await budget.tick(); result = await binary(\"+\", result, item, budget); budget.value(result); }\n yield result; return;\n }\n const keyed: { key: Json; value: Json }[] = [];\n let keyBytes = 0;\n for (const value of input) {\n await budget.tick(); const key = args[0] ? await this.collect(args[0], value) : value;\n keyBytes += budget.value(key);\n if (keyBytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n keyed.push({ value, key });\n }\n await stableSort(keyed, budget, (left, right) => compare(left.key, right.key, budget));\n if (name === \"min\" || name === \"min_by\" || name === \"max\" || name === \"max_by\") { yield keyed[name.startsWith(\"min\") ? 0 : keyed.length - 1]?.value ?? null; return; }\n if (name === \"sort\" || name === \"sort_by\") { yield keyed.map(item => item.value); return; }\n if (name === \"unique\" || name === \"unique_by\") { yield keyed.filter((item, index) => index === 0 || !equal(item.key, keyed[index - 1]!.key, budget)).map(item => item.value); return; }\n if (name === \"group_by\") {\n const groups: Json[][] = [];\n let previous: Json | undefined;\n for (const item of keyed) {\n if (previous === undefined || !equal(previous, item.key, budget)) groups.push([]);\n groups[groups.length - 1]!.push(item.value); previous = item.key;\n }\n budget.value(groups); yield groups; return;\n }\n throw new JqError(`unsupported function ${name}`);\n }\n}\n", "import { readBytes, type ByteSource } from \"../../contracts/index.js\";\nimport { Budget, JqError, JqLimitError, object, objectKeyIterator, objectSize, put, scalarJson, type Json } from \"./limits.js\";\nimport { numericToken, isNumber } from \"./numbers.js\";\n\nexport class JqParseError extends JqError {\n constructor(readonly detail: string, readonly offset: number, readonly line = 1, readonly column = offset, readonly located = true) { super(detail); }\n diagnostic(): string { return this.located ? `${this.detail} at line ${this.line}, column ${this.column}` : this.detail; }\n}\nexport function decodeUtf8(bytes: string, budget: Budget): string {\n const points: string[] = [];\n budget.step(Math.ceil(bytes.length / 1024));\n let block = \"\";\n for (let offset = 0; offset < bytes.length;) {\n if (offset % 1024 === 0) { budget.signal.throwIfAborted(); points.push(block); block = \"\"; }\n const first = bytes.charCodeAt(offset);\n let length = first < 0x80 ? 1 : first >= 0xc2 && first <= 0xdf ? 2 : first >= 0xe0 && first <= 0xef ? 3 : first >= 0xf0 && first <= 0xf4 ? 4 : 1;\n let point = first < 0x80 ? first : -1;\n if (length > bytes.length - offset) length = bytes.length - offset;\n else if (length > 1) {\n point = first & (0x7f >> length);\n for (let index = 1; index < length; index++) {\n const next = bytes.charCodeAt(offset + index);\n if (next < 0x80 || next > 0xbf) { point = -1; length = index; break; }\n point = (point << 6) | (next & 0x3f);\n }\n if (point < [0, 0, 0x80, 0x800, 0x10000][length]! || point > 0x10ffff || (point >= 0xd800 && point <= 0xdfff)) point = -1;\n }\n block += String.fromCodePoint(point < 0 ? 0xfffd : point);\n offset += length;\n }\n return points.join(\"\") + block;\n}\nclass JsonParser {\n private readonly stack: (Json[] | Record<string, Json> | string)[] = [];\n private next: Json | undefined;\n private token = \"\";\n private quoted = false;\n private escaped = false;\n private bom = 0;\n private bytes = 0;\n private depth = 0;\n private offset = 0;\n private line = 1;\n private column = 0;\n constructor(private readonly budget: Budget) {}\n private fail(detail: string, located = true): never {\n throw new JqParseError(detail, this.offset, this.line, this.column, located);\n }\n private accept(value: Json): void {\n this.budget.step();\n if (this.next !== undefined) this.fail(\"Expected separator between values\");\n this.next = value;\n }\n private literal(eof = false): void {\n if (!this.token) return;\n const text = this.token;\n const pattern = text[0] === \"t\" ? \"true\" : text[0] === \"f\" ? \"false\" : text.startsWith(\"nu\") ? \"null\" : undefined;\n let value: Json | undefined;\n if (pattern) {\n if (text !== pattern) this.fail(\"Invalid literal\" + (eof ? \" at EOF\" : \"\"));\n value = pattern === \"true\" ? true : pattern === \"false\" ? false : null;\n } else {\n value = numericToken(text, this.budget);\n if (value === undefined) this.fail(\"Invalid numeric literal\" + (eof ? \" at EOF\" : \"\"));\n }\n this.accept(value);\n this.token = \"\";\n }\n private string(): string {\n let result = \"\";\n let start = 0;\n for (let index = 0; index < this.token.length; index++) {\n if (index % 1024 === 0) this.budget.step();\n const character = this.token[index]!;\n if (character === \"\\\\\") {\n result += decodeUtf8(this.token.slice(start, index), this.budget);\n const escaped = this.token[++index];\n if (escaped === \"u\") {\n const digits = this.token.slice(index + 1, index + 5);\n if (digits.length < 4) this.fail(\"Invalid \\\\uXXXX escape\");\n if (!/^[0-9a-f]{4}$/iu.test(digits)) this.fail(\"Invalid characters in \\\\uXXXX escape\");\n let point = parseInt(digits, 16);\n index += 4;\n if (point >= 0xd800 && point <= 0xdbff) {\n const tail = this.token.slice(index + 1, index + 7);\n const low = /^\\\\u[0-9a-f]{4}$/iu.test(tail) ? parseInt(tail.slice(2), 16) : 0;\n if (low < 0xdc00 || low > 0xdfff) this.fail(\"Invalid \\\\uXXXX\\\\uXXXX surrogate pair escape\");\n point = 0x10000 + ((point - 0xd800) << 10) + low - 0xdc00;\n index += 6;\n }\n result += String.fromCodePoint(point >= 0xdc00 && point <= 0xdfff ? 0xfffd : point);\n } else {\n const escapes: Record<string, string> = { '\"': '\"', \"\\\\\": \"\\\\\", \"/\": \"/\", b: \"\\b\", f: \"\\f\", n: \"\\n\", r: \"\\r\", t: \"\\t\" };\n if (escaped === undefined || !Object.hasOwn(escapes, escaped)) this.fail(\"Invalid escape\");\n result += escapes[escaped];\n }\n start = index + 1;\n } else if (character.charCodeAt(0) < 0x20) this.fail(\"Invalid string: control characters from U+0000 through U+001F must be escaped\");\n }\n result += decodeUtf8(this.token.slice(start), this.budget);\n this.budget.text(result);\n return result;\n }\n private done(): Json | undefined {\n if (this.stack.length || this.next === undefined) return undefined;\n const value = this.next;\n this.next = undefined;\n this.budget.value(value);\n this.bytes = 0;\n return value;\n }\n private append(): void {\n const parent = this.stack.at(-1);\n if (Array.isArray(parent)) {\n this.budget.collection(parent.length + 1);\n parent.push(this.next!);\n } else if (typeof parent === \"string\") {\n const container = this.stack.at(-2) as Record<string, Json>;\n if (!Object.hasOwn(container, parent)) this.budget.collection(objectSize(container) + 1);\n put(container, parent, this.next!);\n this.stack.pop();\n } else this.fail(\"Objects must consist of key:value pairs\");\n this.next = undefined;\n }\n private structure(character: string): void {\n const parent = this.stack.at(-1);\n if (character === \"[\" || character === \"{\") {\n if (this.next !== undefined) this.fail(\"Expected separator between values\");\n if (++this.depth > this.budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n this.stack.push(character === \"[\" ? [] : object());\n } else if (character === \":\") {\n if (this.next === undefined) this.fail(\"Expected string key before ':'\");\n if (!parent || Array.isArray(parent) || typeof parent === \"string\") this.fail(\"':' not as part of an object\");\n if (typeof this.next !== \"string\") this.fail(\"Object keys must be strings\");\n this.stack.push(this.next);\n this.next = undefined;\n } else if (character === \",\") {\n if (this.next === undefined) this.fail(\"Expected value before ','\");\n if (!this.stack.length) this.fail(\"',' not as part of an object or array\");\n this.append();\n } else if (character === \"]\") {\n if (!Array.isArray(parent)) this.fail(\"Unmatched ']'\");\n if (this.next !== undefined) this.append();\n else if (parent.length) this.fail(\"Expected another array element\");\n this.next = this.stack.pop() as Json;\n this.depth--;\n } else if (character === \"}\") {\n if (!this.stack.length) this.fail(\"Unmatched '}'\");\n if (this.next !== undefined) {\n if (typeof parent !== \"string\") this.fail(\"Objects must consist of key:value pairs\");\n this.append();\n } else {\n if (typeof parent === \"string\" || Array.isArray(parent)) this.fail(\"Unmatched '}'\");\n if (objectSize(parent!)) this.fail(\"Expected another key-value pair\");\n }\n this.next = this.stack.pop() as Json;\n this.depth--;\n }\n }\n feed(character: string): Json | undefined {\n this.offset++;\n if (this.bom < 3) {\n if (character.charCodeAt(0) === [0xef, 0xbb, 0xbf][this.bom]) { this.bom++; return undefined; }\n if (this.bom) this.fail(\"Malformed BOM\", false);\n this.bom = 3;\n }\n if (character === \"\\n\") { this.line++; this.column = 0; } else this.column++;\n const space = character === \" \" || character === \"\\t\" || character === \"\\r\" || character === \"\\n\";\n const structure = \"[]{}:,\".includes(character);\n const endsScalar = !this.quoted && !this.stack.length && this.token !== \"\" && (space || structure || character === '\"');\n if (!endsScalar && (this.bytes || !space)) {\n if (++this.bytes > this.budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n }\n if (this.quoted) {\n if (character === '\"' && !this.escaped) {\n this.accept(this.string());\n this.token = \"\";\n this.quoted = false;\n return this.done();\n }\n this.token += character;\n this.escaped = character === \"\\\\\" && !this.escaped;\n return undefined;\n }\n if (!space && !structure && character !== '\"') { this.token += character; return undefined; }\n this.literal();\n const output = this.done();\n if (character === '\"') this.quoted = true;\n else if (structure) this.structure(character);\n if (output !== undefined && (this.quoted || this.stack.length)) this.bytes = 1;\n return this.done() ?? output;\n }\n finish(): Json | undefined {\n if (this.quoted) this.fail(\"Unfinished string at EOF\");\n this.literal(true);\n if (this.stack.length) this.fail(\"Unfinished JSON term at EOF\");\n return this.done();\n }\n}\nexport function parseJson(input: string, budget: Budget, byteEncoded = false): Json {\n const text = byteEncoded ? input : Buffer.from(input).toString(\"latin1\");\n if (text.length > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n const parser = new JsonParser(budget);\n let value: Json | undefined;\n const accept = (next: Json | undefined): void => {\n if (next === undefined) return;\n if (value !== undefined) throw new JqParseError(\"Unexpected extra JSON values\", 0, 1, 0, false);\n value = next;\n };\n for (let index = 0; index < text.length; index++) {\n if (index % 1024 === 0) budget.step();\n accept(parser.feed(text[index]!));\n }\n accept(parser.finish());\n if (value === undefined) throw new JqParseError(\"Expected JSON value\", 0, 1, 0, false);\n return value;\n}\nexport async function* readChunks(source: ByteSource, budget: Budget): AsyncGenerator<Uint8Array> {\n for await (const chunk of readBytes(source, budget.signal)) {\n await budget.tick();\n budget.inputBytes += chunk.byteLength;\n if (budget.inputBytes > budget.limits.maxInputBytes) throw new JqLimitError(\"maxInputBytes\");\n let offset = 0;\n while (offset < chunk.length) {\n if (budget.inputLocation.complete) budget.inputLocation = { ...budget.inputLocation, complete: false };\n const newline = chunk.indexOf(10, offset);\n const end = Math.min(newline < 0 ? chunk.length : newline + 1, offset + 16384);\n budget.step(Math.ceil((end - offset) / 1024));\n await budget.tick();\n if (newline >= 0 && end === newline + 1) { budget.inputLocation.line++; budget.inputLocation.complete = true; }\n yield chunk.subarray(offset, end);\n offset = end;\n }\n }\n budget.inputLocation.complete = true;\n}\nexport async function* jsonValues(source: ByteSource, budget: Budget): AsyncGenerator<Json> {\n const parser = new JsonParser(budget);\n let scanned = 0;\n let nulTail: string | undefined;\n async function* scan(text: string, completeLine = false): AsyncGenerator<Json> {\n for (const character of text) {\n if (++scanned % 1024 === 0) await budget.tick();\n if (!completeLine && character === \"\\0\" && nulTail === undefined) nulTail = \"\";\n if (nulTail !== undefined) {\n nulTail += character;\n if (nulTail.length > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n if (character === \"\\n\") { const tail = nulTail; nulTail = undefined; yield* scan(tail, true); }\n continue;\n }\n const value = parser.feed(character);\n if (value !== undefined) yield value;\n }\n }\n try {\n for await (const chunk of readChunks(source, budget)) yield* scan(Buffer.from(chunk).toString(\"latin1\"));\n const value = parser.finish();\n if (value !== undefined) yield value;\n } catch (error) {\n if (!(error instanceof JqParseError)) throw error;\n throw new JqError(`parse error: ${error.diagnostic()}`);\n }\n}\n\nexport async function* rawValues(sources: AsyncIterable<ByteSource>, budget: Budget, slurp: boolean): AsyncGenerator<string> {\n let buffer = \"\";\n let bytes = 2;\n const append = (text: string): void => {\n bytes += Buffer.byteLength(JSON.stringify(text)) - 2;\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n buffer += text;\n };\n for await (const source of sources) {\n let pending = \"\";\n for await (const chunk of readChunks(source, budget)) {\n await budget.tick();\n pending += Buffer.from(chunk).toString(\"latin1\");\n if (pending.length + bytes - (!slurp && pending.endsWith(\"\\n\") ? 1 : 0) > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n if (pending.endsWith(\"\\n\")) {\n append(decodeUtf8(slurp ? pending : pending.slice(0, -1), budget));\n pending = \"\";\n if (!slurp) { budget.value(buffer); yield buffer; buffer = \"\"; bytes = 2; }\n }\n }\n append(decodeUtf8(pending, budget));\n }\n if (slurp || buffer) { budget.value(buffer); yield buffer; }\n}\n\nexport type JsonFragment = { readonly bytes: number; readonly text: string } | {\n readonly bytes: number;\n readonly value: string;\n readonly start: number;\n readonly end: number;\n readonly quoted: boolean;\n};\n\nfunction* quotedFragments(value: string, budget: Budget): Generator<JsonFragment> {\n yield { text: '\"', bytes: 1 };\n let offset = 0;\n while (offset < value.length) {\n const start = offset;\n const limit = Math.min(start + 32, value.length);\n budget.step(limit - start);\n let bytes = 0;\n while (offset < limit) {\n const code = value.charCodeAt(offset);\n if (code >= 0xd800 && code <= 0xdbff && offset + 1 === limit && limit < value.length) break;\n if (code >= 0xd800 && code <= 0xdbff && offset + 1 < limit) {\n const next = value.charCodeAt(offset + 1);\n if (next >= 0xdc00 && next <= 0xdfff) { bytes += 4; offset += 2; continue; }\n }\n if (code === 34 || code === 92 || code === 8 || code === 9 || code === 10 || code === 12 || code === 13) bytes += 2;\n else if (code < 32 || (code >= 0xd800 && code <= 0xdfff)) bytes += 6;\n else bytes += code < 128 ? 1 : code < 2048 ? 2 : 3;\n offset++;\n }\n yield { value, start, end: offset, bytes, quoted: true };\n }\n yield { text: '\"', bytes: 1 };\n}\n\nexport function renderJsonFragment(fragment: JsonFragment, budget: Budget): string {\n if (\"text\" in fragment) return fragment.text;\n budget.step(fragment.end - fragment.start);\n const text = fragment.value.slice(fragment.start, fragment.end);\n return fragment.quoted ? JSON.stringify(text).slice(1, -1) : text;\n}\n\nexport function* jsonFragments(value: Json, budget: Budget, pretty = false, depth = 0): Generator<JsonFragment> {\n budget.step();\n if (depth > budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n if (typeof value === \"string\") { yield* quotedFragments(value, budget); return; }\n if (value === null || typeof value !== \"object\" || isNumber(value)) {\n const text = scalarJson(value, budget);\n for (let start = 0; start < text.length; start += 32) {\n const end = Math.min(start + 32, text.length);\n budget.step(end - start);\n yield { value: text, start, end, bytes: end - start, quoted: false };\n }\n return;\n }\n if (depth + 1 > budget.limits.maxDepth) throw new JqLimitError(\"maxDepth\");\n const array = Array.isArray(value);\n if (array) budget.collection(value.length);\n yield { text: array ? \"[\" : \"{\", bytes: 1 };\n let count = 0;\n const keys = array ? value.keys() : objectKeyIterator(value);\n for (const key of keys) {\n budget.step();\n budget.collection(count + 1);\n if (count++) yield { text: \",\", bytes: 1 };\n if (pretty) {\n const bytes = 1 + 2 * (depth + 1);\n budget.step(bytes);\n yield { text: `\\n${\" \".repeat(depth + 1)}`, bytes };\n }\n if (!array) {\n yield* quotedFragments(String(key), budget);\n yield { text: pretty ? \": \" : \":\", bytes: pretty ? 2 : 1 };\n }\n yield* jsonFragments((value as Record<string | number, Json>)[key]!, budget, pretty, depth + 1);\n }\n if (pretty && count) {\n const bytes = 1 + 2 * depth;\n budget.step(bytes);\n yield { text: `\\n${\" \".repeat(depth)}`, bytes };\n }\n yield { text: array ? \"]\" : \"}\", bytes: 1 };\n}\n\nexport async function measureValue(value: Json, budget: Budget, depth = 0, maxBytes = budget.limits.maxValueBytes): Promise<number> {\n await budget.tick(0);\n let bytes = 0;\n for (const fragment of jsonFragments(value, budget, false, depth)) {\n await budget.tick(0);\n bytes += fragment.bytes;\n if (bytes > maxBytes) throw new JqLimitError(\"maxValueBytes\");\n }\n return bytes;\n}\n\nexport async function stringify(value: Json, budget: Budget, pretty = false, maxBytes = budget.limits.maxValueBytes, limitName: \"maxValueBytes\" | \"maxOutputBytes\" = \"maxValueBytes\", asStringValue = false): Promise<string> {\n await budget.tick(0);\n const parts: string[] = [];\n let bytes = 0;\n let units = 0;\n let stringBytes = 2;\n for (const fragment of jsonFragments(value, budget, pretty)) {\n await budget.tick(0);\n bytes += fragment.bytes;\n if (bytes > maxBytes) throw new JqLimitError(limitName);\n const text = renderJsonFragment(fragment, budget);\n if (asStringValue) {\n for (const encoded of quotedFragments(text, budget)) stringBytes += encoded.bytes;\n stringBytes -= 2;\n if (stringBytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n }\n budget.step();\n units += text.length;\n parts.push(text);\n }\n await budget.tick(units);\n return parts.join(\"\");\n}\n", "import { Budget, JqError, JqLimitError, type Json } from \"./limits.js\";\n\nexport async function splitString(input: Json, separator: Json, budget: Budget): Promise<string[]> {\n await budget.tick();\n if (typeof input !== \"string\" || typeof separator !== \"string\") {\n throw new JqError(\"split input and separator must be strings\");\n }\n const guaranteedFitUnits = Math.floor((budget.limits.maxValueBytes - 2) / 6);\n for (const operand of [input, separator]) {\n if (operand.length <= guaranteedFitUnits) budget.step();\n else budget.value(operand);\n }\n const result: string[] = [];\n let bytes = 2;\n const append = (start: number, end: number): void => {\n budget.collection(result.length + 1);\n const part = input.slice(start, end);\n bytes += budget.value(part) + (result.length ? 1 : 0);\n if (bytes > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n result.push(part);\n };\n if (separator.length === 0) {\n let offset = 0;\n for (const character of input) {\n await budget.tick();\n append(offset, offset + character.length);\n offset += character.length;\n }\n } else if (input.length !== 0) {\n if (separator.length > input.length) append(0, input.length);\n else {\n const prefixes = new Int32Array(separator.length);\n let matched = 0;\n for (let index = 1; index < separator.length; index++) {\n await budget.tick();\n while (matched > 0 && separator[index] !== separator[matched]) {\n await budget.tick();\n matched = prefixes[matched - 1]!;\n }\n if (separator[index] === separator[matched]) matched++;\n prefixes[index] = matched;\n }\n matched = 0;\n let start = 0;\n for (let index = 0; index < input.length; index++) {\n await budget.tick();\n while (matched > 0 && input[index] !== separator[matched]) {\n await budget.tick();\n matched = prefixes[matched - 1]!;\n }\n if (input[index] === separator[matched]) matched++;\n if (matched === separator.length) {\n append(start, index + 1 - separator.length);\n start = index + 1;\n matched = 0;\n }\n }\n append(start, input.length);\n }\n }\n budget.value(result);\n return result;\n}\n", "import { Budget, copyObject, isObject, JqError, JqLimitError, objectKeyIterator, objectKeys, put, type Json } from \"./limits.js\";\nimport { compareNumbers, isNumber, numberValue, type Numeric } from \"./numbers.js\";\nimport { jsonFragments, renderJsonFragment } from \"./input.js\";\n\nexport function type(value: Json): string {\n return value === null ? \"null\" : isNumber(value) ? \"number\" : Array.isArray(value) ? \"array\" : typeof value;\n}\nexport function describe(value: Json, budget: Budget): string {\n const parts: Uint8Array[] = [];\n let length = 0;\n for (const fragment of jsonFragments(value, budget)) {\n const text = renderJsonFragment(fragment, budget);\n budget.step(text.length);\n const bytes = Buffer.from(text);\n const retained = Math.min(15 - length, bytes.length);\n parts.push(bytes.subarray(0, retained));\n length += retained;\n if (length === 15) break;\n }\n const bytes = Buffer.concat(parts, length);\n const text = length < 15 ? bytes.toString() : `${bytes.subarray(0, 11).toString()}...`;\n return `${type(value)} (${text})`;\n}\nexport async function stringCompare(left: string, right: string, budget: Budget): Promise<number> {\n await budget.tick(1 + Math.ceil(Math.min(left.length, right.length) / 32));\n let leftOffset = 0;\n let rightOffset = 0;\n let points = 0;\n while (leftOffset < left.length && rightOffset < right.length) {\n if (points++ % 32 === 0) await budget.tick(0);\n const leftPoint = left.codePointAt(leftOffset)!;\n const rightPoint = right.codePointAt(rightOffset)!;\n if (leftPoint !== rightPoint) return leftPoint < rightPoint ? -1 : 1;\n leftOffset += leftPoint > 0xffff ? 2 : 1;\n rightOffset += rightPoint > 0xffff ? 2 : 1;\n }\n return leftOffset < left.length ? 1 : rightOffset < right.length ? -1 : 0;\n}\nexport async function stableSort<Item>(items: Item[], budget: Budget, comparator: (left: Item, right: Item) => Promise<number>): Promise<void> {\n await budget.tick(0);\n budget.collection(items.length);\n if (items.length < 2) return;\n await budget.tick(items.length);\n const scratch = new Array<Item>(items.length);\n let source = items;\n let target = scratch;\n for (let width = 1; width < items.length; width *= 2) {\n for (let start = 0; start < items.length; start += width * 2) {\n const middle = Math.min(start + width, items.length);\n const end = Math.min(start + width * 2, items.length);\n let left = start;\n let right = middle;\n for (let index = start; index < end; index++) {\n await budget.tick();\n if (left < middle && (right >= end || await comparator(source[left]!, source[right]!) <= 0)) target[index] = source[left++]!;\n else target[index] = source[right++]!;\n }\n }\n const previous = source;\n source = target;\n target = previous;\n }\n if (source !== items) for (let index = 0; index < items.length; index++) {\n await budget.tick();\n items[index] = source[index]!;\n }\n}\nexport async function sortedKeys(value: Record<string, Json>, budget: Budget): Promise<string[]> {\n await budget.tick(0);\n const keys: string[] = [];\n for (const key of objectKeyIterator(value)) {\n await budget.tick();\n budget.collection(keys.length + 1);\n keys.push(key);\n }\n await stableSort(keys, budget, (left, right) => stringCompare(left, right, budget));\n return keys;\n}\nexport async function compare(left: Json, right: Json, budget: Budget): Promise<number> {\n await budget.tick();\n const rank = (value: Json): number => value === null ? 0 : value === false ? 1 : value === true ? 2 : isNumber(value) ? 3 : typeof value === \"string\" ? 4 : Array.isArray(value) ? 5 : 6;\n const difference = rank(left) - rank(right);\n if (difference) return Math.sign(difference);\n if (isNumber(left) && isNumber(right)) return compareNumbers(left, right, budget);\n if (typeof left === \"string\" && typeof right === \"string\") return stringCompare(left, right, budget);\n if (left === right && !Array.isArray(left) && !isObject(left)) return 0;\n if (Array.isArray(left) && Array.isArray(right)) {\n for (let index = 0; index < Math.min(left.length, right.length); index++) {\n const result = await compare(left[index]!, right[index]!, budget); if (result) return result;\n }\n return Math.sign(left.length - right.length);\n }\n if (isObject(left) && isObject(right)) {\n const keys = await sortedKeys(left, budget);\n const otherKeys = await sortedKeys(right, budget);\n const keyDifference = await compare(keys, otherKeys, budget);\n if (keyDifference) return keyDifference;\n for (const key of keys) { const result = await compare(left[key]!, right[key]!, budget); if (result) return result; }\n }\n return 0;\n}\nexport function equal(left: Json, right: Json, budget: Budget): boolean {\n budget.step();\n if (left === right) return true;\n if (isNumber(left) && isNumber(right)) return compareNumbers(left, right, budget) === 0;\n if (Array.isArray(left) && Array.isArray(right)) return left.length === right.length && left.every((value, index) => equal(value, right[index]!, budget));\n if (isObject(left) && isObject(right)) {\n const keys = objectKeys(left);\n return keys.length === objectKeys(right).length && keys.every(key => Object.hasOwn(right, key) && equal(left[key]!, right[key]!, budget));\n }\n return false;\n}\nexport async function* entries(value: Json, budget: Budget): AsyncGenerator<[string | number, Json]> {\n budget.signal.throwIfAborted();\n if (Array.isArray(value)) {\n budget.collection(value.length);\n for (let index = 0; index < value.length; index++) {\n await budget.tick(2);\n yield [index, value[index]!];\n }\n return;\n }\n if (isObject(value)) {\n let count = 0;\n for (const key of objectKeyIterator(value)) {\n await budget.tick(2);\n budget.collection(++count);\n yield [key, value[key]!];\n }\n return;\n }\n throw new JqError(`Cannot iterate over ${describe(value, budget)}`);\n}\nexport function indexValue(value: Json, index: Json): Json {\n if (typeof index === \"string\") {\n if (value === null) return null;\n if (isObject(value)) return Object.hasOwn(value, index) ? value[index]! : null;\n } else if (isNumber(index) && Number.isFinite(numberValue(index))) {\n if (value === null) return null;\n const integer = Math.trunc(numberValue(index));\n if (Array.isArray(value)) return value[integer < 0 ? value.length + integer : integer] ?? null;\n }\n throw new JqError(`Cannot index ${type(value)} with ${type(index)}${typeof index === \"string\" && Buffer.byteLength(index) < 30 ? ` ${JSON.stringify(index)}` : \"\"}`);\n}\nexport async function sliceValue(value: Json, start: Json, end: Json, budget: Budget): Promise<Json> {\n if (start !== null && (!isNumber(start) || !Number.isSafeInteger(numberValue(start)))) throw new JqError(\"slice start must be an integer or null\");\n if (end !== null && (!isNumber(end) || !Number.isSafeInteger(numberValue(end)))) throw new JqError(\"slice end must be an integer or null\");\n budget.signal.throwIfAborted();\n let first = start === null ? 0 : numberValue(start);\n let last = end === null ? undefined : numberValue(end);\n if (value === null) return null;\n if (Array.isArray(value)) return value.slice(first, last);\n if (typeof value !== \"string\") throw new JqError(`cannot slice ${type(value)}`);\n if (last === 0 || (last !== undefined && (first < 0) === (last < 0) && first >= last)) return \"\";\n if (first < 0 || (last !== undefined && last < 0)) {\n let length = 0;\n for (let offset = 0; offset < value.length; length++) {\n await budget.tick();\n offset += value.codePointAt(offset)! > 0xffff ? 2 : 1;\n }\n if (first < 0) first = Math.max(0, length + first);\n if (last !== undefined && last < 0) last = Math.max(0, length + last);\n if (last !== undefined && first >= last) return \"\";\n }\n let firstOffset = first === 0 ? 0 : value.length;\n let offset = 0;\n const stop = last ?? first;\n for (let point = 0; point < stop && offset < value.length;) {\n await budget.tick();\n offset += value.codePointAt(offset)! > 0xffff ? 2 : 1;\n if (++point === first) firstOffset = offset;\n }\n return value.slice(firstOffset, last === undefined ? undefined : offset);\n}\nexport function contains(value: Json, sought: Json, budget: Budget): boolean {\n budget.step();\n if (typeof value === \"string\" && typeof sought === \"string\") return value.includes(sought);\n if (Array.isArray(value) && Array.isArray(sought)) return sought.every(item => value.some(candidate => contains(candidate, item, budget)));\n if (isObject(value) && isObject(sought)) return objectKeys(sought).every(key => Object.hasOwn(value, key) && contains(value[key]!, sought[key]!, budget));\n return type(value) === type(sought) && equal(value, sought, budget);\n}\nexport async function binary(operator: string, left: Json, right: Json, budget: Budget): Promise<Json> {\n budget.step();\n if ([\"==\", \"!=\", \"<\", \"<=\", \">\", \">=\"].includes(operator)) {\n if (operator === \"==\") return equal(left, right, budget);\n if (operator === \"!=\") return !equal(left, right, budget);\n const order = await compare(left, right, budget);\n switch (operator) {\n case \"<\": return order < 0;\n case \"<=\": return order <= 0;\n case \">\": return order > 0;\n default: return order >= 0;\n }\n }\n if (operator === \"+\") {\n if (left === null) return right;\n if (right === null) return left;\n if (isNumber(left) && isNumber(right)) return numberValue(left) + numberValue(right);\n if (typeof left === \"string\" && typeof right === \"string\") {\n budget.step(left.length + right.length);\n const result = left + right;\n budget.text(result); return result;\n }\n if (Array.isArray(left) && Array.isArray(right)) { budget.collection(left.length + right.length); return [...left, ...right]; }\n if (isObject(left) && isObject(right)) { const result = copyObject(left, right); budget.collection(objectKeys(result).length); return result; }\n }\n if (operator === \"-\" && Array.isArray(left) && Array.isArray(right)) return left.filter(item => !right.some(other => equal(item, other, budget)));\n if (operator === \"*\" && isObject(left) && isObject(right)) {\n const result = copyObject(left);\n for (const key of objectKeys(right)) {\n const value = right[key]!;\n put(result, key, Object.hasOwn(left, key) && isObject(left[key]!) && isObject(value) ? await binary(\"*\", left[key]!, value, budget) : value);\n }\n budget.collection(objectKeys(result).length); return result;\n }\n if (operator === \"*\" && ((typeof left === \"string\" && isNumber(right)) || (typeof right === \"string\" && isNumber(left)))) {\n const text = typeof left === \"string\" ? left : right as string;\n const count = numberValue(isNumber(left) ? left : right as Numeric);\n if (count < 0) return null;\n if (text === \"\") return \"\";\n if (!Number.isFinite(count) || Buffer.byteLength(text) * Math.floor(count) > budget.limits.maxValueBytes) throw new JqLimitError(\"maxValueBytes\");\n const result = text.repeat(Math.floor(count)); budget.text(result); return result;\n }\n if (operator === \"/\" && typeof left === \"string\" && typeof right === \"string\") {\n const result = right === \"\" ? Array.from(left) : left.split(right); budget.collection(result.length); return result;\n }\n if (isNumber(left) && isNumber(right)) {\n const first = numberValue(left);\n const second = numberValue(right);\n if (operator === \"%\" && (Number.isNaN(first) || Number.isNaN(second))) return NaN;\n if ((operator === \"/\" && second === 0) || (operator === \"%\" && Math.trunc(second) === 0)) throw new JqError(`${describe(left, budget)} and ${describe(right, budget)} cannot be divided${operator === \"%\" ? \" (remainder)\" : \"\"} because the divisor is zero`);\n if (operator === \"-\") return first - second;\n if (operator === \"*\") return first * second;\n if (operator === \"/\") return first / second;\n if (operator === \"%\") {\n const integer = (value: number): bigint => value >= 2 ** 63 ? 9223372036854775807n : value <= -(2 ** 63) ? -9223372036854775808n : BigInt(Math.trunc(value));\n return Number(integer(first) % integer(second));\n }\n }\n if (operator === \"+\") throw new JqError(`${describe(left, budget)} and ${describe(right, budget)} cannot be added`);\n if (operator === \"-\") throw new JqError(`${describe(left, budget)} and ${describe(right, budget)} cannot be subtracted`);\n throw new JqError(`cannot apply ${operator} to ${type(left)} and ${type(right)}`);\n}\n", "import { JqError, JqLimitError, wellFormed, type Budget, type Json } from \"./limits.js\";\nimport { decimalNumber } from \"./numbers.js\";\n\nexport type Ast =\n | { kind: \"identity\" }\n | { kind: \"literal\"; value: Json }\n | { kind: \"variable\"; name: string }\n | { kind: \"binary\"; operator: string; left: Ast; right: Ast }\n | { kind: \"unary\"; operand: Ast }\n | { kind: \"optional\"; operand: Ast }\n | { kind: \"descend\" }\n | { kind: \"try\"; body: Ast; handler: Ast | undefined }\n | { kind: \"reduce\" | \"foreach\"; source: Ast; name: string; init: Ast; update: Ast; extract: Ast | undefined }\n | { kind: \"index\"; base: Ast; index: Ast }\n | { kind: \"slice\"; base: Ast; start: Ast | undefined; end: Ast | undefined }\n | { kind: \"iterate\"; base: Ast }\n | { kind: \"array\"; body: Ast | undefined }\n | { kind: \"object\"; fields: { key: Ast; value: Ast }[] }\n | { kind: \"call\"; name: string; args: Ast[] }\n | { kind: \"if\"; condition: Ast; yes: Ast; no: Ast };\ninterface Token { text: string; offset: number; kind: \"symbol\" | \"name\" | \"number\" | \"string\" | \"end\" }\nconst precedence: Readonly<Record<string, number>> = Object.freeze({\n \"|\": 1, \",\": 2, \"=\": 3, \"|=\": 3, \"+=\": 3, \"-=\": 3, \"*=\": 3, \"/=\": 3, \"%=\": 3, \"//=\": 3,\n \"//\": 4, or: 5, and: 6, \"==\": 7, \"!=\": 7, \"<\": 7, \">\": 7, \"<=\": 7, \">=\": 7,\n \"+\": 8, \"-\": 8, \"*\": 9, \"/\": 9, \"%\": 9,\n});\nexport const functions: Readonly<Record<string, readonly number[]>> = Object.freeze({\n empty: [0], select: [1], map: [1], map_values: [1], length: [0], keys: [0], keys_unsorted: [0], values: [0],\n type: [0], has: [1], contains: [1], sort: [0], sort_by: [1], unique: [0], unique_by: [1], group_by: [1], add: [0],\n not: [0], reverse: [0], first: [0, 1], last: [0, 1], limit: [2], range: [1, 2, 3], join: [1], split: [1],\n tostring: [0], tonumber: [0], tojson: [0], fromjson: [0], to_entries: [0], from_entries: [0], with_entries: [1],\n min: [0], max: [0], min_by: [1], max_by: [1], any: [0, 1, 2], all: [0, 1, 2],\n strings: [0], numbers: [0], booleans: [0], arrays: [0], objects: [0], nulls: [0], scalars: [0], iterables: [0],\n nan: [0], infinite: [0], isnan: [0], isinfinite: [0], isfinite: [0],\n});\nfunction tokenize(source: string): Token[] {\n const tokens: Token[] = [];\n let offset = 0;\n while (offset < source.length) {\n const character = source[offset]!;\n if (/\\s/u.test(character)) { offset++; continue; }\n if (character === \"#\") { while (offset < source.length && source[offset] !== \"\\n\") offset++; continue; }\n const start = offset;\n if (character === '\"') {\n offset++;\n let escaped = false;\n while (offset < source.length) {\n const current = source[offset++]!;\n if (!escaped && current === '\"') break;\n if (!escaped && current === \"\\\\\") escaped = true;\n else escaped = false;\n }\n const text = source.slice(start, offset).replace(/[\\x00-\\x1f]/gu, character => `\\\\u${character.charCodeAt(0).toString(16).padStart(4, \"0\")}`);\n try { if (!wellFormed(JSON.parse(text) as string)) throw new Error(); } catch { throw new JqError(`invalid string at offset ${start}`, 3); }\n tokens.push({ text, offset: start, kind: \"string\" });\n continue;\n }\n const number = /^(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?/u.exec(source.slice(offset));\n if (number) {\n tokens.push({ text: number[0], offset, kind: \"number\" }); offset += number[0].length; continue;\n }\n const name = /^[A-Za-z_][A-Za-z_0-9]*/u.exec(source.slice(offset));\n if (name) { tokens.push({ text: name[0], offset, kind: \"name\" }); offset += name[0].length; continue; }\n if (source.startsWith(\"..\", offset)) {\n tokens.push({ text: \"..\", offset, kind: \"symbol\" }); offset += 2; continue;\n }\n const symbol = /^(?:\\/\\/=|\\|=|\\+=|-=|\\*=|\\/=|%=|==|!=|<=|>=|\\/\\/|[.\\[\\]{}(),:;?$|+*/%<>=-])/u.exec(source.slice(offset));\n if (!symbol) throw new JqError(`unexpected character at offset ${offset}`, 3);\n tokens.push({ text: symbol[0], offset, kind: \"symbol\" }); offset += symbol[0].length;\n }\n tokens.push({ text: \"\", offset, kind: \"end\" });\n return tokens;\n}\nfunction isPath(ast: Ast): boolean {\n const pending = [ast];\n while (pending.length) {\n const node = pending.pop()!;\n if (node.kind === \"identity\") continue;\n if (node.kind === \"index\" || node.kind === \"iterate\") pending.push(node.base);\n else if (node.kind === \"binary\" && node.operator === \",\") pending.push(node.left, node.right);\n else return false;\n }\n return true;\n}\nexport function parse(source: string, variables: ReadonlyMap<string, Json>, budget: Budget): Ast {\n const limits = budget.limits;\n if (Buffer.byteLength(source) > limits.maxSourceBytes) throw new JqLimitError(\"maxSourceBytes\");\n const tokens = tokenize(source);\n let position = 0;\n let nesting = 0;\n const unresolved = new Map<Ast, Token>();\n const bindings = new Map<string, number>();\n const peek = (): Token => tokens[Math.min(position, tokens.length - 1)]!;\n const take = (): Token => { const token = peek(); if (token.kind !== \"end\") position++; return token; };\n const accept = (text: string): boolean => { if (peek().text !== text) return false; take(); return true; };\n const fail = (message: string): never => { throw new JqError(`${message} at offset ${peek().offset}`, 3); };\n const diagnostic = (token: Token, message: string): string => {\n const prefix = source.slice(0, token.offset);\n const line = prefix.split(\"\\n\").length;\n const start = prefix.lastIndexOf(\"\\n\") + 1;\n const end = source.indexOf(\"\\n\", start);\n const context = source.slice(start, end < 0 ? source.length : end);\n return `error: ${message} at <top-level>, line ${line}:\\n${context}${\" \".repeat(Buffer.byteLength(prefix.slice(start)))}`;\n };\n const syntaxError = (token: Token, expectEnd = false): never => {\n const name = token.kind === \"end\" ? \"end of file\" : token.kind === \"name\" ? \"IDENT\" : token.kind === \"number\" || token.kind === \"string\" ? \"LITERAL\" : `'${token.text}'`;\n const location = token.kind === \"end\" ? tokens[Math.max(0, position - 1)]! : token;\n throw new JqError(`${diagnostic(location, `syntax error, unexpected ${name}${expectEnd ? \", expecting end of file\" : \"\"} (Unix shell quoting issues?)`)}\\njq: 1 compile error`, 3);\n };\n const expect = (text: string): void => { if (!accept(text)) fail(`expected '${text}'`); };\n const literal = (value: Json): Ast => ({ kind: \"literal\", value });\n const conditional = (): Ast => {\n const condition = expression(); expect(\"then\");\n const yes = expression();\n if (accept(\"elif\")) return { kind: \"if\", condition, yes, no: guardedConditional() };\n expect(\"else\"); const no = expression(); expect(\"end\");\n return { kind: \"if\", condition, yes, no };\n };\n const guardedConditional = (): Ast => {\n if (++nesting > limits.maxAstDepth) throw new JqLimitError(\"maxAstDepth\");\n try { return conditional(); } finally { nesting--; }\n };\n const expression = (minimum = 0, stopComma = false): Ast => {\n if (++nesting > limits.maxAstDepth) throw new JqLimitError(\"maxAstDepth\");\n try {\n let left = primary();\n while (true) {\n const operator = peek().text;\n const priority = Object.hasOwn(precedence, operator) ? precedence[operator]! : -1;\n if (priority < minimum || (stopComma && operator === \",\")) break;\n take();\n const assignment = priority === 3;\n if (assignment && !isPath(left)) fail(\"unsupported assignment path\");\n const right = expression(priority + (assignment ? 0 : 1), stopComma);\n left = { kind: \"binary\", operator, left, right };\n }\n return left;\n } finally { nesting--; }\n };\n const primary = (): Ast => {\n const token = take();\n let result: Ast;\n if (token.text === \"..\") result = { kind: \"descend\" };\n else if (token.text === \"try\") {\n const body = expression(10);\n result = { kind: \"try\", body, handler: accept(\"catch\") ? expression(10) : undefined };\n } else if (token.text === \"reduce\" || token.text === \"foreach\") {\n const source = expression(10); expect(\"as\"); expect(\"$\");\n const name = take(); if (name.kind !== \"name\") fail(\"expected variable name\");\n expect(\"(\"); const init = expression(); expect(\";\");\n const previous = bindings.get(name.text) ?? 0;\n bindings.set(name.text, previous + 1);\n try {\n const update = expression();\n const extract = token.text === \"foreach\" && accept(\";\") ? expression() : undefined;\n expect(\")\");\n result = { kind: token.text, source, name: name.text, init, update, extract };\n } finally {\n if (previous) bindings.set(name.text, previous);\n else bindings.delete(name.text);\n }\n } else if (token.text === \".\") {\n result = { kind: \"identity\" };\n if ((peek().kind === \"name\" && peek().offset === token.offset + 1) || peek().kind === \"string\") {\n const key = take(); result = { kind: \"index\", base: result, index: literal(key.kind === \"string\" ? JSON.parse(key.text) as string : key.text) };\n }\n } else if (token.text === \"(\") { result = expression(); expect(\")\"); }\n else if (token.text === \"[\") {\n result = { kind: \"array\", body: peek().text === \"]\" ? undefined : expression() }; expect(\"]\");\n } else if (token.text === \"{\") {\n const fields: { key: Ast; value: Ast }[] = [];\n if (peek().text !== \"}\") do {\n const keyToken = take();\n let key: Ast;\n if (keyToken.text === \"(\") { key = expression(); expect(\")\"); }\n else if (keyToken.kind === \"string\" || keyToken.kind === \"name\") key = literal(keyToken.kind === \"string\" ? JSON.parse(keyToken.text) as string : keyToken.text);\n else fail(\"expected object key\");\n const value = accept(\":\") ? expression(0, true) : key!.kind === \"literal\" ? { kind: \"index\" as const, base: { kind: \"identity\" as const }, index: key! } : fail(\"expected ':'\");\n fields.push({ key: key!, value });\n } while (accept(\",\"));\n expect(\"}\"); result = { kind: \"object\", fields };\n } else if (token.text === \"$\") {\n const name = take(); if (name.kind !== \"name\") fail(\"expected variable name\");\n if (!bindings.has(name.text) && !variables.has(name.text)) fail(`undefined variable $${name.text}`);\n result = { kind: \"variable\", name: name.text };\n } else if (token.text === \"-\") result = { kind: \"unary\", operand: expression(10) };\n else if (token.text === \"if\") result = guardedConditional();\n else if (token.kind === \"string\") result = literal(JSON.parse(token.text) as string);\n else if (token.kind === \"number\") {\n result = literal(decimalNumber(token.text, budget));\n } else if ([\"true\", \"false\", \"null\"].includes(token.text)) result = literal(JSON.parse(token.text) as Json);\n else if (token.kind === \"name\") {\n const args: Ast[] = [];\n if (accept(\"(\")) { if (peek().text !== \")\") do { args.push(expression()); } while (accept(\";\")); expect(\")\"); }\n if (token.text === \"split\" && args.length === 2) fail(\"unsupported function split/2\");\n result = { kind: \"call\", name: token.text, args };\n if (!Object.hasOwn(functions, token.text) || !functions[token.text]!.includes(args.length)) unresolved.set(result, token);\n } else syntaxError(token, nesting === 1);\n while (true) {\n if (accept(\"?\")) result = { kind: \"optional\", operand: result! };\n else if (accept(\".\")) {\n const key = take(); if (key.kind !== \"name\" && key.kind !== \"string\") fail(\"expected property name\");\n result = { kind: \"index\", base: result!, index: literal(key.kind === \"string\" ? JSON.parse(key.text) as string : key.text) };\n } else if (accept(\"[\")) {\n if (accept(\"]\")) result = { kind: \"iterate\", base: result! };\n else {\n const start = peek().text === \":\" ? undefined : expression();\n if (accept(\":\")) {\n const end = peek().text === \"]\" ? undefined : expression(); expect(\"]\");\n result = { kind: \"slice\", base: result!, start, end };\n } else { expect(\"]\"); result = { kind: \"index\", base: result!, index: start! }; }\n }\n } else break;\n }\n return result!;\n };\n const ast = expression();\n if (peek().kind !== \"end\") syntaxError(peek(), true);\n const pending: { node: Ast; depth: number }[] = [{ node: ast, depth: 1 }];\n const errors: string[] = [];\n let errorBytes = 0;\n while (pending.length) {\n const { node, depth } = pending.pop()!;\n if (depth > limits.maxAstDepth) throw new JqLimitError(\"maxAstDepth\");\n const token = unresolved.get(node);\n if (token && node.kind === \"call\") {\n const message = diagnostic(token, `${node.name}/${node.args.length} is not defined`);\n errorBytes += Buffer.byteLength(message) + 5;\n if (errorBytes > limits.maxOutputBytes) throw new JqLimitError(\"maxOutputBytes\");\n errors.push(message);\n continue;\n }\n const children: Ast[] = [];\n if (node.kind === \"binary\") children.push(node.left, node.right);\n else if (node.kind === \"unary\" || node.kind === \"optional\") children.push(node.operand);\n else if (node.kind === \"index\") children.push(node.base, node.index);\n else if (node.kind === \"iterate\") children.push(node.base);\n else if (node.kind === \"slice\") { children.push(node.base); if (node.start) children.push(node.start); if (node.end) children.push(node.end); }\n else if (node.kind === \"array\" && node.body) children.push(node.body);\n else if (node.kind === \"object\") for (const field of node.fields) children.push(field.key, field.value);\n else if (node.kind === \"call\") children.push(...node.args);\n else if (node.kind === \"if\") children.push(node.condition, node.yes, node.no);\n else if (node.kind === \"try\") { children.push(node.body); if (node.handler) children.push(node.handler); }\n else if (node.kind === \"reduce\" || node.kind === \"foreach\") {\n children.push(node.source, node.init, node.update);\n if (node.extract) children.push(node.extract);\n }\n for (const child of children.reverse()) pending.push({ node: child, depth: depth + 1 });\n }\n if (errors.length) throw new JqError(`${errors.join(\"\\njq: \")}\\njq: ${errors.length} compile error${errors.length === 1 ? \"\" : \"s\"}`, 3);\n return ast;\n}\n", "import { object, objectKeys, put, type Json } from \"../structured/limits.js\";\nimport { Decimal, numberText } from \"../structured/numbers.js\";\nimport type { YqOwnedWork } from \"../structured/query-core.js\";\nimport { YqError, limit } from \"./errors.js\";\n\nexport const yqCaps = Object.freeze({\n maxArgvEntries: 4096,\n maxArgvUtf8Bytes: 65_536,\n maxVfsOperandPathBytes: 16_384,\n maxInputBytes: 16_000_000,\n maxDocumentBytes: 8_388_608,\n maxValueBytes: 8_388_608,\n maxScalarBytes: 1_048_576,\n maxQuerySourceBytes: 8192,\n maxDepth: 128,\n maxAstDepth: 64,\n maxSteps: 1_000_000,\n maxResults: 100_000,\n maxCollectionSize: 100_000,\n maxDocuments: 1024,\n maxAnchorsPerDocument: 1024,\n maxAliasReferences: 1024,\n maxDocumentNodes: 100_000,\n maxOutputBytes: 16_777_216,\n diagnosticReserveBytes: 4096,\n stdoutCapBytes: 16_773_120,\n maxDisplayedFilenameBytes: 256,\n});\n\nfunction checked(current: number, incoming: number, limitValue: number, code: Parameters<typeof limit>[0]): number {\n if (!Number.isSafeInteger(incoming) || incoming < 0) throw new RangeError(\"invalid yq accounting projection\");\n if (incoming > limitValue - current) throw limit(code);\n return current + incoming;\n}\n\nexport class YqLedger {\n documents = 0;\n aliases = 0;\n documentNodes = 0;\n documentValueBytes = 0;\n anchors = 0;\n stdoutBytes = 0;\n combinedOutputBytes = 0;\n\n admitDocumentBytes(rawBytes: number): void {\n if (!Number.isSafeInteger(rawBytes) || rawBytes < 0) throw new RangeError(\"invalid raw document byte count\");\n if (rawBytes > yqCaps.maxDocumentBytes) throw limit(\"LIMIT_MAX_DOCUMENT_BYTES\");\n }\n\n beginDocument(rawBytes: number): void {\n this.admitDocumentBytes(rawBytes);\n this.documents = checked(this.documents, 1, yqCaps.maxDocuments, \"LIMIT_MAX_DOCUMENTS\");\n this.documentNodes = 0;\n this.documentValueBytes = 0;\n this.anchors = 0;\n }\n\n admitNode(): void {\n this.documentNodes = checked(this.documentNodes, 1, yqCaps.maxDocumentNodes, \"LIMIT_MAX_DOCUMENT_NODES\");\n }\n\n admitAnchor(): void {\n this.anchors = checked(this.anchors, 1, yqCaps.maxAnchorsPerDocument, \"LIMIT_MAX_ANCHORS_PER_DOCUMENT\");\n }\n\n admitScalar(bytes: number): void {\n if (bytes > yqCaps.maxScalarBytes) throw limit(\"LIMIT_MAX_SCALAR_BYTES\");\n }\n\n admitValueBytes(bytes: number): void {\n this.documentValueBytes = checked(this.documentValueBytes, bytes, yqCaps.maxValueBytes, \"LIMIT_MAX_VALUE_BYTES\");\n }\n\n preflightAlias(descriptor: AliasDescriptor): { readonly aliases: number; readonly nodes: number; readonly valueBytes: number } {\n const aliases = checked(this.aliases, 1, yqCaps.maxAliasReferences, \"LIMIT_MAX_ALIAS_REFERENCES\");\n const nodes = checked(this.documentNodes, descriptor.nodes, yqCaps.maxDocumentNodes, \"LIMIT_MAX_DOCUMENT_NODES\");\n const valueBytes = checked(this.documentValueBytes, descriptor.compactBytes, yqCaps.maxValueBytes, \"LIMIT_MAX_VALUE_BYTES\");\n if (descriptor.maxDepth > yqCaps.maxDepth) throw limit(\"LIMIT_MAX_DEPTH\");\n return { aliases, nodes, valueBytes };\n }\n\n commitAlias(projection: { readonly aliases: number; readonly nodes: number; readonly valueBytes: number }): void {\n this.aliases = projection.aliases;\n this.documentNodes = projection.nodes;\n this.documentValueBytes = projection.valueBytes;\n }\n\n admitStdout(bytes: number): void {\n this.stdoutBytes = checked(this.stdoutBytes, bytes, yqCaps.stdoutCapBytes, \"LIMIT_MAX_OUTPUT_BYTES\");\n this.combinedOutputBytes = checked(this.combinedOutputBytes, bytes, yqCaps.maxOutputBytes, \"LIMIT_MAX_OUTPUT_BYTES\");\n }\n\n canAdmitDiagnostic(bytes: number): boolean {\n return Number.isSafeInteger(bytes)\n && bytes >= 0\n && bytes <= yqCaps.diagnosticReserveBytes\n && bytes <= yqCaps.maxOutputBytes - this.combinedOutputBytes;\n }\n\n admitDiagnostic(bytes: number): void {\n if (!this.canAdmitDiagnostic(bytes)) throw limit(\"LIMIT_MAX_OUTPUT_BYTES\");\n this.combinedOutputBytes += bytes;\n }\n}\n\nexport interface AliasDescriptor {\n readonly nodes: number;\n readonly compactBytes: number;\n readonly maxDepth: number;\n readonly ordinaryUnits: number;\n}\n\nfunction addProjection(current: number, incoming: number): number {\n if (!Number.isSafeInteger(incoming) || incoming < 0 || incoming > Number.MAX_SAFE_INTEGER - current) {\n throw new RangeError(\"alias projection overflow\");\n }\n return current + incoming;\n}\n\nasync function payload(work: YqOwnedWork, text: string): Promise<number> {\n let codePoints = 0;\n let bytes = 0;\n for (const character of text) {\n codePoints++;\n bytes += Buffer.byteLength(character);\n if (codePoints === 256) {\n await work.charge(codePoints);\n work.assertOpen();\n codePoints = 0;\n }\n }\n if (codePoints > 0) {\n await work.charge(codePoints);\n work.assertOpen();\n }\n const units = bytes === 0 ? 0 : Math.ceil(bytes / 1024);\n if (units > 0) {\n await work.charge(units);\n work.assertOpen();\n }\n return units;\n}\n\nfunction jsonStringBytes(text: string): number {\n let bytes = 2;\n for (const character of text) {\n const point = character.codePointAt(0)!;\n if (point === 0x22 || point === 0x5c || point === 0x08 || point === 0x0c || point === 0x0a || point === 0x0d || point === 0x09) bytes += 2;\n else if (point < 0x20) bytes += 6;\n else bytes += Buffer.byteLength(character);\n }\n return bytes;\n}\n\nexport async function estimateAlias(value: Json, work: YqOwnedWork): Promise<AliasDescriptor> {\n let nodes = 0;\n let compactBytes = 0;\n let maxDepth = 0;\n let ordinaryUnits = 0;\n const stack: { readonly value: Json; readonly depth: number }[] = [{ value, depth: 0 }];\n while (stack.length > 0) {\n const item = stack.pop()!;\n await work.charge(1);\n work.assertOpen();\n nodes = addProjection(nodes, 1);\n ordinaryUnits = addProjection(ordinaryUnits, 1);\n maxDepth = Math.max(maxDepth, item.depth);\n if (maxDepth > yqCaps.maxDepth) throw limit(\"LIMIT_MAX_DEPTH\");\n const current = item.value;\n if (current === null || typeof current === \"boolean\") {\n compactBytes = addProjection(compactBytes, Buffer.byteLength(JSON.stringify(current)));\n } else if (typeof current === \"number\" || current instanceof Decimal) {\n const text = numberText(current);\n const units = await payload(work, text);\n work.assertOpen();\n ordinaryUnits = addProjection(ordinaryUnits, units);\n compactBytes = addProjection(compactBytes, Buffer.byteLength(text));\n } else if (typeof current === \"string\") {\n const units = await payload(work, current);\n work.assertOpen();\n ordinaryUnits = addProjection(ordinaryUnits, units);\n compactBytes = addProjection(compactBytes, jsonStringBytes(current));\n } else {\n const keys = Array.isArray(current) ? Object.keys(current) : objectKeys(current);\n if (keys.length > yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n compactBytes = addProjection(compactBytes, 2 + Math.max(0, keys.length - 1));\n for (let index = keys.length - 1; index >= 0; index--) {\n const key = keys[index]!;\n if (!Array.isArray(current)) {\n const units = await payload(work, key);\n work.assertOpen();\n ordinaryUnits = addProjection(ordinaryUnits, units);\n compactBytes = addProjection(compactBytes, jsonStringBytes(key) + 1);\n }\n stack.push({ value: (current as Record<string, Json>)[key]!, depth: item.depth + 1 });\n }\n }\n if (compactBytes > yqCaps.maxValueBytes) throw limit(\"LIMIT_MAX_VALUE_BYTES\");\n }\n return Object.freeze({ nodes, compactBytes, maxDepth, ordinaryUnits });\n}\n\nasync function consumePayload(work: YqOwnedWork, reservation: ReturnType<YqOwnedWork[\"reserve\"]>, text: string): Promise<void> {\n const bytes = Buffer.byteLength(text);\n const units = bytes === 0 ? 0 : Math.ceil(bytes / 1024);\n for (let unit = 0; unit < units; unit++) {\n await reservation.beforeUnit();\n work.assertOpen();\n }\n}\n\nexport async function copyAlias(value: Json, ledger: YqLedger, work: YqOwnedWork): Promise<Json> {\n const descriptor = await estimateAlias(value, work);\n work.assertOpen();\n const projection = ledger.preflightAlias(descriptor);\n const reservation = work.reserve(descriptor.ordinaryUnits);\n ledger.commitAlias(projection);\n let completed = false;\n const copy = async (current: Json): Promise<Json> => {\n await reservation.beforeUnit();\n work.assertOpen();\n if (current === null || typeof current === \"boolean\") return current;\n if (typeof current === \"number\" || current instanceof Decimal) {\n await consumePayload(work, reservation, numberText(current));\n work.assertOpen();\n return current;\n }\n if (typeof current === \"string\") {\n await consumePayload(work, reservation, current);\n work.assertOpen();\n return current;\n }\n if (Array.isArray(current)) {\n const result: Json[] = [];\n for (const child of current) {\n const copied = await copy(child);\n work.assertOpen();\n result.push(copied);\n }\n return result;\n }\n const result = object();\n for (const key of objectKeys(current)) {\n await consumePayload(work, reservation, key);\n work.assertOpen();\n const copied = await copy(current[key]!);\n work.assertOpen();\n put(result, key, copied);\n }\n return result;\n };\n try {\n const result = await copy(value);\n work.assertOpen();\n reservation.finish();\n work.assertOpen();\n completed = true;\n return result;\n } finally {\n if (!completed) reservation.abandon();\n }\n}\n\nexport function aliasFailure(code: \"ALIAS_UNDEFINED\" | \"ALIAS_FORWARD\" | \"ALIAS_CURRENT_NODE\" | \"ALIAS_CYCLE\"): YqError {\n return new YqError(\"alias\", code, 5);\n}\n", "import { JqLimitError, type JqLimits } from \"../structured/limits.js\";\n\nexport type YqCategory = \"cli\" | \"query\" | \"input\" | \"schema\" | \"alias\" | \"limit\" | \"vfs\" | \"encode\";\n\nexport type YqCode =\n | \"CLI_ARGV_ENTRIES_LIMIT\" | \"CLI_ARGV_BYTES_LIMIT\" | \"CLI_INVALID_UNICODE\" | \"CLI_INFO_COMBINATION\"\n | \"CLI_UNSUPPORTED_COMMAND\" | \"CLI_MISSING_OPTION_VALUE\" | \"CLI_INVALID_OPTION_VALUE\" | \"CLI_UNSUPPORTED_OPTION\"\n | \"CLI_UNKNOWN_OPTION\" | \"CLI_DUPLICATE_OPTION\" | \"CLI_INCOMPATIBLE_OPTIONS\" | \"CLI_DUPLICATE_STDIN\"\n | \"CLI_VFS_OPERAND_LIMIT\" | \"QUERY_COMPILE_FAILED\" | \"QUERY_RUNTIME_FAILED\" | \"INPUT_INVALID_UTF8\"\n | \"INPUT_YAML_SYNTAX\" | \"INPUT_TOML_SYNTAX\" | \"INPUT_DOCUMENT_STRUCTURE\" | \"SCHEMA_UNSUPPORTED_DIRECTIVE\" | \"SCHEMA_UNSUPPORTED_TAG\"\n | \"SCHEMA_TAG_KIND_MISMATCH\" | \"SCHEMA_TAG_LEXEME_MISMATCH\" | \"SCHEMA_NONSTRING_KEY\" | \"SCHEMA_DUPLICATE_KEY\"\n | \"SCHEMA_PLAIN_MERGE_KEY\" | \"SCHEMA_NONFINITE_NUMBER\" | \"SCHEMA_UNSAFE_INTEGER\" | \"SCHEMA_DECIMAL_RANGE\"\n | \"ALIAS_UNDEFINED\" | \"ALIAS_FORWARD\" | \"ALIAS_CURRENT_NODE\" | \"ALIAS_CYCLE\" | \"ALIAS_DUPLICATE_ANCHOR\"\n | \"LIMIT_MAX_INPUT_BYTES\" | \"LIMIT_MAX_DOCUMENT_BYTES\" | \"LIMIT_MAX_VALUE_BYTES\" | \"LIMIT_MAX_SCALAR_BYTES\"\n | \"LIMIT_MAX_QUERY_SOURCE_BYTES\" | \"LIMIT_MAX_DEPTH\" | \"LIMIT_MAX_AST_DEPTH\" | \"LIMIT_MAX_STEPS\"\n | \"LIMIT_MAX_RESULTS\" | \"LIMIT_MAX_COLLECTION_SIZE\" | \"LIMIT_MAX_DOCUMENTS\" | \"LIMIT_MAX_ANCHORS_PER_DOCUMENT\"\n | \"LIMIT_MAX_ALIAS_REFERENCES\" | \"LIMIT_MAX_DOCUMENT_NODES\" | \"LIMIT_MAX_OUTPUT_BYTES\" | \"DIAGNOSTIC_TRUNCATED\"\n | \"VFS_INPUT_OPEN\" | \"VFS_INPUT_READ\" | \"ENCODE_UNSUPPORTED_VALUE\" | \"ENCODE_INVALID_UNICODE\" | \"ENCODE_CYCLIC_GRAPH\";\n\nexport class YqError extends Error {\n constructor(\n readonly category: YqCategory,\n readonly code: YqCode,\n readonly status: number,\n readonly source?: string,\n readonly line?: number,\n readonly column?: number,\n ) {\n super(`${category}: ${code}`);\n }\n}\n\nconst budgetLimits: Readonly<Record<keyof JqLimits, YqCode>> = Object.freeze({\n maxInputBytes: \"LIMIT_MAX_INPUT_BYTES\",\n maxValueBytes: \"LIMIT_MAX_VALUE_BYTES\",\n maxOutputBytes: \"LIMIT_MAX_OUTPUT_BYTES\",\n maxSourceBytes: \"LIMIT_MAX_QUERY_SOURCE_BYTES\",\n maxDepth: \"LIMIT_MAX_DEPTH\",\n maxAstDepth: \"LIMIT_MAX_AST_DEPTH\",\n maxSteps: \"LIMIT_MAX_STEPS\",\n maxResults: \"LIMIT_MAX_RESULTS\",\n maxCollectionSize: \"LIMIT_MAX_COLLECTION_SIZE\",\n});\n\nexport function fromJqLimit(error: JqLimitError): YqError {\n const prefix = error.message.slice(0, error.message.indexOf(\" \")) as keyof JqLimits;\n return new YqError(\"limit\", budgetLimits[prefix] ?? \"LIMIT_MAX_STEPS\", 5);\n}\n\nexport function limit(code: YqCode, source?: string, line?: number, column?: number): YqError {\n return new YqError(\"limit\", code, 5, source, line, column);\n}\n", "import { JqLimitError, objectKeys, wellFormed, type Json } from \"../structured/limits.js\";\nimport { Decimal, numberText } from \"../structured/numbers.js\";\nimport type { YqOwnedWork } from \"../structured/query-core.js\";\nimport { YqValueFailure } from \"../structured/query-core.js\";\n\nclass Fragments {\n readonly parts: string[] = [];\n bytes = 0;\n\n constructor(\n readonly work: YqOwnedWork,\n readonly maxBytes: number,\n ) {}\n\n async append(fragment: string): Promise<void> {\n const bytes = Buffer.byteLength(fragment);\n if (bytes > this.maxBytes - this.bytes) throw new JqLimitError(\"maxOutputBytes\");\n if (bytes > 0) await this.work.charge(Math.ceil(bytes / 1024));\n this.work.assertOpen();\n this.parts.push(fragment);\n this.bytes += bytes;\n }\n\n reserve(bytes: number): void {\n if (!Number.isSafeInteger(bytes) || bytes < 0 || bytes > this.maxBytes - this.bytes) {\n throw new JqLimitError(\"maxOutputBytes\");\n }\n this.bytes += bytes;\n }\n\n async appendReserved(fragment: string, bytes: number): Promise<void> {\n if (Buffer.byteLength(fragment) !== bytes) throw new Error(\"escaped fragment projection mismatch\");\n if (bytes > 0) await this.work.charge(Math.ceil(bytes / 1024));\n this.work.assertOpen();\n this.parts.push(fragment);\n }\n\n async indent(depth: number): Promise<void> {\n const bytes = depth * 2;\n if (!Number.isSafeInteger(bytes) || bytes > this.maxBytes - this.bytes) throw new JqLimitError(\"maxOutputBytes\");\n if (bytes > 0) await this.work.charge(Math.ceil(bytes / 1024));\n this.work.assertOpen();\n this.parts.push(\" \".repeat(depth));\n this.bytes += bytes;\n }\n\n finish(): string {\n this.work.assertOpen();\n return this.parts.join(\"\");\n }\n}\n\nfunction yamlEscape(codePoint: number): string {\n if (codePoint === 0) return \"\\\\u0000\";\n if (codePoint === 0x22) return \"\\\\\\\"\";\n if (codePoint === 0x5c) return \"\\\\\\\\\";\n if (codePoint === 0x08) return \"\\\\b\";\n if (codePoint === 0x09) return \"\\\\t\";\n if (codePoint === 0x0a) return \"\\\\n\";\n if (codePoint === 0x0c) return \"\\\\f\";\n if (codePoint === 0x0d) return \"\\\\r\";\n if (codePoint === 0x1b) return \"\\\\e\";\n if (codePoint < 0x20 || codePoint === 0x7f || codePoint >= 0x80 && codePoint <= 0x9f || codePoint === 0xfffe || codePoint === 0xffff) {\n if (codePoint <= 0xffff) return `\\\\u${codePoint.toString(16).padStart(4, \"0\")}`;\n return `\\\\U${codePoint.toString(16).padStart(8, \"0\")}`;\n }\n return String.fromCodePoint(codePoint);\n}\n\nfunction yamlEscapedBytes(codePoint: number): number {\n if (codePoint === 0 || codePoint < 0x20 && ![0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x1b].includes(codePoint)\n || codePoint === 0x7f || codePoint >= 0x80 && codePoint <= 0x9f || codePoint === 0xfffe || codePoint === 0xffff) return 6;\n if (codePoint === 0x22 || codePoint === 0x5c || codePoint === 0x08 || codePoint === 0x09 || codePoint === 0x0a\n || codePoint === 0x0c || codePoint === 0x0d || codePoint === 0x1b) return 2;\n return codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4;\n}\n\nasync function quoted(text: string, output: Fragments): Promise<void> {\n if (!wellFormed(text)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n await output.append('\"');\n for (let start = 0; start < text.length;) {\n let end = start;\n let codePoints = 0;\n let projectedBytes = 0;\n while (end < text.length && codePoints < 256) {\n const codePoint = text.codePointAt(end)!;\n projectedBytes += yamlEscapedBytes(codePoint);\n end += codePoint > 0xffff ? 2 : 1;\n codePoints++;\n }\n output.reserve(projectedBytes);\n let fragment = \"\";\n for (let index = start; index < end;) {\n const codePoint = text.codePointAt(index)!;\n fragment += yamlEscape(codePoint);\n index += codePoint > 0xffff ? 2 : 1;\n }\n await output.work.charge(codePoints);\n output.work.assertOpen();\n await output.appendReserved(fragment, projectedBytes);\n output.work.assertOpen();\n start = end;\n }\n output.work.assertOpen();\n await output.append('\"');\n}\n\nfunction isCollection(value: Json): value is Json[] | Record<string, Json> {\n return value !== null && typeof value === \"object\" && !(value instanceof Decimal);\n}\n\nfunction nonemptyCollection(value: Json): boolean {\n if (!isCollection(value)) return false;\n return Array.isArray(value) ? value.length > 0 : objectKeys(value).length > 0;\n}\n\nasync function inline(value: Json, output: Fragments): Promise<void> {\n await output.work.charge(1);\n output.work.assertOpen();\n if (value === null || typeof value === \"boolean\") await output.append(JSON.stringify(value));\n else if (typeof value === \"number\" || value instanceof Decimal) {\n const numeric = value instanceof Decimal ? value.double : value;\n if (!Number.isFinite(numeric)) throw new YqValueFailure(\"SCHEMA_NONFINITE_NUMBER\");\n if (Number.isInteger(numeric) && !Number.isSafeInteger(numeric)) throw new YqValueFailure(\"SCHEMA_UNSAFE_INTEGER\");\n await output.append(numberText(value));\n } else if (typeof value === \"string\") await quoted(value, output);\n else if (Array.isArray(value) && value.length === 0) await output.append(\"[]\");\n else if (!Array.isArray(value) && objectKeys(value).length === 0) await output.append(\"{}\");\n else throw new YqValueFailure(\"ENCODE_UNSUPPORTED_VALUE\");\n}\n\nasync function mappingBlock(value: Record<string, Json>, output: Fragments, depth: number, firstInline: boolean): Promise<void> {\n const keys = objectKeys(value);\n for (let index = 0; index < keys.length; index++) {\n if (index > 0) await output.append(\"\\n\");\n if (!(firstInline && index === 0)) await output.indent(depth);\n await quoted(keys[index]!, output);\n await output.append(\":\");\n const item = value[keys[index]!]!;\n if (nonemptyCollection(item)) {\n await output.append(\"\\n\");\n await block(item, output, depth + 1);\n } else {\n await output.append(\" \");\n await inline(item, output);\n }\n }\n}\n\nasync function block(value: Json, output: Fragments, depth: number): Promise<void> {\n await output.work.charge(1);\n output.work.assertOpen();\n if (!nonemptyCollection(value)) {\n await output.indent(depth);\n await inline(value, output);\n return;\n }\n if (Array.isArray(value)) {\n for (let index = 0; index < value.length; index++) {\n if (index > 0) await output.append(\"\\n\");\n await output.indent(depth);\n await output.append(\"-\");\n const item = value[index]!;\n if (isCollection(item) && !Array.isArray(item) && objectKeys(item).length > 0) {\n await output.work.charge(1);\n output.work.assertOpen();\n await output.append(\" \");\n await mappingBlock(item, output, depth + 1, true);\n } else if (nonemptyCollection(item)) {\n await output.append(\"\\n\");\n await block(item, output, depth + 1);\n } else {\n await output.append(\" \");\n await inline(item, output);\n }\n }\n return;\n }\n await mappingBlock(value as Record<string, Json>, output, depth, false);\n}\n\nexport async function encodeYaml(value: Json, work: YqOwnedWork, maxBytes: number): Promise<string> {\n if (!Number.isSafeInteger(maxBytes) || maxBytes < 0) throw new RangeError(\"maxBytes must be a nonnegative safe integer\");\n const output = new Fragments(work, maxBytes);\n if (nonemptyCollection(value)) await block(value, output, 0);\n else await inline(value, output);\n work.assertOpen();\n return output.finish();\n}\n\nexport async function encodeJson(value: Json, work: YqOwnedWork, pretty: boolean, maxBytes: number): Promise<string> {\n return work.stringifyJson(value, { pretty, maxBytes, limitName: \"maxOutputBytes\" });\n}\n\nexport async function encodeRaw(text: string, work: YqOwnedWork, maxBytes: number): Promise<string> {\n if (!wellFormed(text)) throw new YqValueFailure(\"ENCODE_INVALID_UNICODE\");\n let bytes = 0;\n let codePoints = 0;\n for (const character of text) {\n const incoming = Buffer.byteLength(character);\n if (incoming > maxBytes - bytes) throw new JqLimitError(\"maxOutputBytes\");\n bytes += incoming;\n codePoints++;\n if (codePoints === 256) {\n await work.charge(codePoints);\n work.assertOpen();\n codePoints = 0;\n }\n }\n if (codePoints > 0) await work.charge(codePoints);\n work.assertOpen();\n if (bytes > 0) await work.charge(Math.ceil(bytes / 1024));\n work.assertOpen();\n return text;\n}\n", "import { object, objectKeys, put, wellFormed, type Json } from \"../structured/limits.js\";\nimport { Decimal, isNumber, numberText } from \"../structured/numbers.js\";\nimport type { YqOwnedWork } from \"../structured/query-core.js\";\nimport { aliasFailure, copyAlias, YqLedger, yqCaps } from \"./accounting.js\";\nimport { YqError, limit, type YqCode } from \"./errors.js\";\n\ntype ScalarStyle = \"plain\" | \"single\" | \"double\" | \"literal\" | \"folded\";\n\ninterface ParsedNode {\n readonly value: Json;\n readonly style?: ScalarStyle;\n readonly explicitTag?: string;\n readonly raw?: string;\n}\n\ninterface SourceLine {\n readonly text: string;\n readonly number: number;\n readonly rawBytes: number;\n readonly hadBreak: boolean;\n}\n\ninterface RawDocument {\n readonly lines: SourceLine[];\n readonly explicit: boolean;\n readonly rawBytes: number;\n}\n\ninterface AnchorRecord {\n readonly name: string;\n pending: boolean;\n value?: Json;\n}\n\ninterface BlockScalarPart {\n readonly lineText: string;\n readonly contentIndent: number;\n readonly empty: boolean;\n readonly moreIndented: boolean;\n readonly hadBreak: boolean;\n}\n\nconst integerPattern = /^(?:[+-]?[0-9]+|0o[0-7]+|0x[0-9a-fA-F]+)$/u;\nconst floatPattern = /^[+-]?(?:(?:[0-9]+(?:\\.[0-9]*)?|\\.[0-9]+)(?:[eE][+-]?[0-9]+)?|\\.(?:inf|Inf|INF|nan|NaN|NAN))$/u;\n\nfunction syntax(line?: number, column?: number): YqError {\n return new YqError(\"input\", \"INPUT_YAML_SYNTAX\", 5, undefined, line, column);\n}\n\nfunction structure(line?: number, column?: number): YqError {\n return new YqError(\"input\", \"INPUT_DOCUMENT_STRUCTURE\", 5, undefined, line, column);\n}\n\nfunction schema(code: YqCode, line?: number, column?: number): YqError {\n return new YqError(\"schema\", code, 5, undefined, line, column);\n}\n\nfunction countCodePoints(text: string): number {\n let count = 0;\n for (const unused of text) {\n void unused;\n count++;\n }\n return count;\n}\n\nfunction utf8Width(codePoint: number): number {\n return codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4;\n}\n\nfunction compactStringBytes(text: string): number {\n let bytes = 2;\n for (const character of text) {\n const point = character.codePointAt(0)!;\n if (point === 0x22 || point === 0x5c || point === 0x08 || point === 0x0c || point === 0x0a || point === 0x0d || point === 0x09) bytes += 2;\n else if (point < 0x20) bytes += 6;\n else bytes += Buffer.byteLength(character);\n }\n return bytes;\n}\n\nfunction compactScalarBytes(value: Json): number {\n if (typeof value === \"string\") return compactStringBytes(value);\n if (isNumber(value)) return Buffer.byteLength(numberText(value));\n return Buffer.byteLength(JSON.stringify(value));\n}\n\nfunction indentation(line: string): number {\n let index = 0;\n while (line[index] === \" \") index++;\n if (line[index] === \"\\t\") throw syntax();\n return index;\n}\n\nfunction stripComment(text: string): string {\n let single = false;\n let double = false;\n let escaped = false;\n let flowDepth = 0;\n for (let index = 0; index < text.length; index++) {\n const character = text[index]!;\n if (double) {\n if (escaped) escaped = false;\n else if (character === \"\\\\\") escaped = true;\n else if (character === '\"') double = false;\n continue;\n }\n if (single) {\n if (character === \"'\" && text[index + 1] === \"'\") index++;\n else if (character === \"'\") single = false;\n continue;\n }\n if (character === '\"') double = true;\n else if (character === \"'\") single = true;\n else if (character === \"[\" || character === \"{\") flowDepth++;\n else if (character === \"]\" || character === \"}\") flowDepth--;\n else if (character === \"#\" && (index === 0 || /[ \\t\\r\\n]/u.test(text[index - 1]!))) return text.slice(0, index).trimEnd();\n }\n void flowDepth;\n return text.trimEnd();\n}\n\nfunction mappingColon(text: string, flow = false): number {\n let single = false;\n let double = false;\n let escaped = false;\n let depth = 0;\n for (let index = 0; index < text.length; index++) {\n const character = text[index]!;\n if (double) {\n if (escaped) escaped = false;\n else if (character === \"\\\\\") escaped = true;\n else if (character === '\"') double = false;\n continue;\n }\n if (single) {\n if (character === \"'\" && text[index + 1] === \"'\") index++;\n else if (character === \"'\") single = false;\n continue;\n }\n if (character === '\"') double = true;\n else if (character === \"'\") single = true;\n else if (character === \"[\" || character === \"{\") depth++;\n else if (character === \"]\" || character === \"}\") depth--;\n else if (character === \":\" && depth === 0 && (flow || index + 1 === text.length || /[ \\t]/u.test(text[index + 1]!))) return index;\n }\n return -1;\n}\n\nfunction checkedExponent(text: string): number {\n let index = 0;\n let negative = false;\n if (text[index] === \"+\" || text[index] === \"-\") {\n negative = text[index] === \"-\";\n index++;\n }\n let value = 0;\n for (; index < text.length; index++) {\n const digit = text.charCodeAt(index) - 48;\n if (digit < 0 || digit > 9) throw syntax();\n value = value > 2_000_000_000 ? 2_000_000_001 : value * 10 + digit;\n }\n return negative ? -value : value;\n}\n\nfunction decimalText(digits: string, exponent: number, negative: boolean): string {\n const sign = negative ? \"-\" : \"\";\n const adjusted = exponent + digits.length - 1;\n if (exponent > 0 || adjusted < -6) {\n return `${sign}${digits[0]}${digits.length > 1 ? `.${digits.slice(1)}` : \"\"}E${adjusted >= 0 ? \"+\" : \"\"}${adjusted}`;\n }\n const point = digits.length + exponent;\n if (point <= 0) return `${sign}0.${\"0\".repeat(-point)}${digits}`;\n return `${sign}${digits.slice(0, point)}${point < digits.length ? `.${digits.slice(point)}` : \"\"}`;\n}\n\nfunction exactSafeIntegral(digits: string, exponent: number): boolean {\n if (digits === \"0\" || exponent < 0) return true;\n const length = digits.length + exponent;\n if (length < 16) return true;\n if (length > 16) return false;\n const boundary = \"9007199254740991\";\n for (let index = 0; index < digits.length; index++) {\n if (digits[index]! < boundary[index]!) return true;\n if (digits[index]! > boundary[index]!) return false;\n }\n for (let index = digits.length; index < boundary.length; index++) if (boundary[index] !== \"0\") return true;\n return true;\n}\n\nfunction parseDecimal(raw: string): Decimal {\n const negative = raw[0] === \"-\";\n const unsigned = raw[0] === \"+\" || raw[0] === \"-\" ? raw.slice(1) : raw;\n const exponentMarker = unsigned.search(/[eE]/u);\n const coefficient = exponentMarker < 0 ? unsigned : unsigned.slice(0, exponentMarker);\n const explicit = exponentMarker < 0 ? 0 : checkedExponent(unsigned.slice(exponentMarker + 1));\n const point = coefficient.indexOf(\".\");\n const fractional = point < 0 ? 0 : coefficient.length - point - 1;\n let exponent = explicit - fractional;\n let digits = coefficient.replace(\".\", \"\").replace(/^0+/u, \"\") || \"0\";\n if (digits !== \"0\") {\n let trailing = 0;\n while (digits.length - trailing > 1 && digits[digits.length - trailing - 1] === \"0\") trailing++;\n if (trailing > 0) {\n digits = digits.slice(0, -trailing);\n exponent += trailing;\n }\n }\n if (exponent < -1_147_483_646 || exponent > 999_999_999) throw schema(\"SCHEMA_DECIMAL_RANGE\");\n if (!exactSafeIntegral(digits, exponent)) throw schema(\"SCHEMA_UNSAFE_INTEGER\");\n const text = decimalText(digits, exponent, negative);\n const double = Number(`${negative ? \"-\" : \"\"}${digits}e${exponent}`);\n if (!Number.isFinite(double)) throw schema(\"SCHEMA_NONFINITE_NUMBER\");\n if (Number.isInteger(double) && !Number.isSafeInteger(double)) throw schema(\"SCHEMA_UNSAFE_INTEGER\");\n return new Decimal(digits, exponent, negative, text, double);\n}\n\nfunction parseBasedInteger(raw: string): number {\n const negative = raw[0] === \"-\";\n const unsigned = raw[0] === \"+\" || raw[0] === \"-\" ? raw.slice(1) : raw;\n const base = unsigned.startsWith(\"0x\") ? 16 : unsigned.startsWith(\"0o\") ? 8 : 10;\n const digits = base === 10 ? unsigned : unsigned.slice(2);\n let value = 0;\n for (const character of digits) {\n const digit = Number.parseInt(character, base);\n if (value > Math.floor((Number.MAX_SAFE_INTEGER - digit) / base)) throw schema(\"SCHEMA_UNSAFE_INTEGER\");\n value = value * base + digit;\n }\n return negative ? -value : value;\n}\n\nfunction scalarFromPlain(raw: string, explicitTag?: string): Json {\n if (explicitTag === \"str\") return raw;\n const nullMatch = /^(?:~|null|Null|NULL)$/u.test(raw);\n const boolMatch = /^(?:true|True|TRUE|false|False|FALSE)$/u.test(raw);\n const intMatch = integerPattern.test(raw);\n const floatMatch = floatPattern.test(raw);\n if (explicitTag === \"null\") {\n if (!nullMatch) throw schema(\"SCHEMA_TAG_LEXEME_MISMATCH\");\n return null;\n }\n if (explicitTag === \"bool\") {\n if (!boolMatch) throw schema(\"SCHEMA_TAG_LEXEME_MISMATCH\");\n return /^true$/iu.test(raw);\n }\n if (explicitTag === \"int\") {\n if (!intMatch) throw schema(\"SCHEMA_TAG_LEXEME_MISMATCH\");\n return parseBasedInteger(raw);\n }\n if (explicitTag === \"float\") {\n if (!(floatMatch || intMatch && /^[+-]?[0-9]+$/u.test(raw))) throw schema(\"SCHEMA_TAG_LEXEME_MISMATCH\");\n if (/^[+-]?\\.(?:inf|Inf|INF|nan|NaN|NAN)$/u.test(raw)) throw schema(\"SCHEMA_NONFINITE_NUMBER\");\n return parseDecimal(raw);\n }\n if (nullMatch) return null;\n if (boolMatch) return /^true$/iu.test(raw);\n if (intMatch) return parseBasedInteger(raw);\n if (floatMatch) {\n if (/^[+-]?\\.(?:inf|Inf|INF|nan|NaN|NAN)$/u.test(raw)) throw schema(\"SCHEMA_NONFINITE_NUMBER\");\n return parseDecimal(raw);\n }\n return raw;\n}\n\nfunction normalizeTag(raw: string): string {\n const expanded = raw.startsWith(\"!!\") ? `tag:yaml.org,2002:${raw.slice(2)}` : raw.startsWith(\"!<\") && raw.endsWith(\">\") ? raw.slice(2, -1) : raw;\n if (expanded === \"!\") throw schema(\"SCHEMA_UNSUPPORTED_TAG\");\n const prefix = \"tag:yaml.org,2002:\";\n if (!expanded.startsWith(prefix)) throw schema(\"SCHEMA_UNSUPPORTED_TAG\");\n const name = expanded.slice(prefix.length);\n if (![\"map\", \"seq\", \"str\", \"null\", \"bool\", \"int\", \"float\"].includes(name)) throw schema(\"SCHEMA_UNSUPPORTED_TAG\");\n return name;\n}\n\nfunction decodeDouble(raw: string): string {\n let result = \"\";\n for (let index = 1; index < raw.length - 1; index++) {\n const character = raw[index]!;\n if (character === \"\\n\" || character === \"\\r\") {\n if (character === \"\\r\" && raw[index + 1] === \"\\n\") index++;\n while (raw[index + 1] === \" \" || raw[index + 1] === \"\\t\") index++;\n result += \" \";\n continue;\n }\n if (character !== \"\\\\\") {\n const codePoint = character.codePointAt(0)!;\n if (codePoint === 0) throw syntax();\n result += character;\n if (codePoint > 0xffff) index++;\n continue;\n }\n const escape = raw[++index];\n if (escape === undefined) throw syntax();\n const simple: Record<string, string> = {\n \"0\": \"\\0\", a: \"\\x07\", b: \"\\b\", t: \"\\t\", \"\\t\": \"\\t\", n: \"\\n\", v: \"\\x0b\", f: \"\\f\", r: \"\\r\",\n e: \"\\x1b\", \" \": \" \", '\"': '\"', \"/\": \"/\", \"\\\\\": \"\\\\\", N: \"\\u0085\", _: \"\\u00a0\", L: \"\\u2028\", P: \"\\u2029\",\n };\n if (Object.hasOwn(simple, escape)) {\n result += simple[escape]!;\n continue;\n }\n if (escape === \"\\n\" || escape === \"\\r\") {\n if (escape === \"\\r\" && raw[index + 1] === \"\\n\") index++;\n while (raw[index + 1] === \" \" || raw[index + 1] === \"\\t\") index++;\n continue;\n }\n const digits = escape === \"x\" ? 2 : escape === \"u\" ? 4 : escape === \"U\" ? 8 : 0;\n if (digits === 0) throw syntax();\n const hex = raw.slice(index + 1, index + 1 + digits);\n if (hex.length !== digits || !/^[0-9a-fA-F]+$/u.test(hex)) throw syntax();\n let codePoint = Number.parseInt(hex, 16);\n index += digits;\n if (escape === \"u\" && codePoint >= 0xd800 && codePoint <= 0xdbff) {\n const next = raw.slice(index + 1, index + 7);\n if (!/^\\\\u[0-9a-fA-F]{4}$/u.test(next)) throw syntax();\n const low = Number.parseInt(next.slice(2), 16);\n if (low < 0xdc00 || low > 0xdfff) throw syntax();\n codePoint = 0x10000 + (codePoint - 0xd800) * 0x400 + low - 0xdc00;\n index += 6;\n } else if (codePoint >= 0xd800 && codePoint <= 0xdfff) throw syntax();\n if (codePoint > 0x10ffff) throw syntax();\n result += String.fromCodePoint(codePoint);\n }\n if (!wellFormed(result)) throw syntax();\n return result;\n}\n\nfunction projectDoubleBytes(raw: string, start = 0, end = raw.length): number {\n let bytes = 0;\n for (let index = start + 1; index < end - 1; index++) {\n const character = raw[index]!;\n if (character === \"\\n\" || character === \"\\r\") {\n if (character === \"\\r\" && raw[index + 1] === \"\\n\") index++;\n while (raw[index + 1] === \" \" || raw[index + 1] === \"\\t\") index++;\n bytes++;\n continue;\n }\n if (character !== \"\\\\\") {\n const codePoint = character.codePointAt(0)!;\n if (codePoint === 0) throw syntax();\n bytes += utf8Width(codePoint);\n if (codePoint > 0xffff) index++;\n continue;\n }\n const escape = raw[++index];\n if (escape === undefined) throw syntax();\n const simpleWidths: Readonly<Record<string, number>> = {\n \"0\": 1, a: 1, b: 1, t: 1, \"\\t\": 1, n: 1, v: 1, f: 1, r: 1,\n e: 1, \" \": 1, '\"': 1, \"/\": 1, \"\\\\\": 1, N: 2, _: 2, L: 3, P: 3,\n };\n if (Object.hasOwn(simpleWidths, escape)) {\n bytes += simpleWidths[escape]!;\n continue;\n }\n if (escape === \"\\n\" || escape === \"\\r\") {\n if (escape === \"\\r\" && raw[index + 1] === \"\\n\") index++;\n while (raw[index + 1] === \" \" || raw[index + 1] === \"\\t\") index++;\n continue;\n }\n const digits = escape === \"x\" ? 2 : escape === \"u\" ? 4 : escape === \"U\" ? 8 : 0;\n if (digits === 0) throw syntax();\n const hex = raw.slice(index + 1, index + 1 + digits);\n if (hex.length !== digits || !/^[0-9a-fA-F]+$/u.test(hex)) throw syntax();\n let codePoint = Number.parseInt(hex, 16);\n index += digits;\n if (escape === \"u\" && codePoint >= 0xd800 && codePoint <= 0xdbff) {\n const next = raw.slice(index + 1, index + 7);\n if (!/^\\\\u[0-9a-fA-F]{4}$/u.test(next)) throw syntax();\n const low = Number.parseInt(next.slice(2), 16);\n if (low < 0xdc00 || low > 0xdfff) throw syntax();\n codePoint = 0x10000 + (codePoint - 0xd800) * 0x400 + low - 0xdc00;\n index += 6;\n } else if (codePoint >= 0xd800 && codePoint <= 0xdfff) throw syntax();\n if (codePoint > 0x10ffff) throw syntax();\n bytes += utf8Width(codePoint);\n }\n return bytes;\n}\n\nfunction decodeSingle(raw: string): string {\n const inner = raw.slice(1, -1);\n return inner.replace(/''/gu, \"'\").replace(/\\r\\n|\\r|\\n[ \\t]*/gu, \" \");\n}\n\nfunction projectSingleBytes(raw: string, start = 0, end = raw.length): number {\n let bytes = 0;\n for (let index = start + 1; index < end - 1; index++) {\n const character = raw[index]!;\n if (character === \"'\" && raw[index + 1] === \"'\") {\n bytes++;\n index++;\n } else if (character === \"\\r\" || character === \"\\n\") {\n if (character === \"\\r\" && raw[index + 1] === \"\\n\") index++;\n if (character === \"\\n\" || raw[index] === \"\\n\") while (raw[index + 1] === \" \" || raw[index + 1] === \"\\t\") index++;\n bytes++;\n } else {\n const codePoint = character.codePointAt(0)!;\n bytes += utf8Width(codePoint);\n if (codePoint > 0xffff) index++;\n }\n }\n return bytes;\n}\n\nfunction plainBounds(source: string, start: number, end: number): readonly [number, number] {\n while (start < end && /\\s/u.test(source[start]!)) start++;\n while (end > start && /\\s/u.test(source[end - 1]!)) end--;\n return [start, end];\n}\n\nfunction projectPlainBytes(source: string, start: number, end: number): number {\n [start, end] = plainBounds(source, start, end);\n let bytes = 0;\n for (let index = start; index < end;) {\n if (source[index] === \"\\n\") {\n index++;\n while (index < end && (source[index] === \" \" || source[index] === \"\\t\")) index++;\n bytes++;\n continue;\n }\n const codePoint = source.codePointAt(index)!;\n bytes += utf8Width(codePoint);\n index += codePoint > 0xffff ? 2 : 1;\n }\n return bytes;\n}\n\nfunction blockPartText(part: BlockScalarPart): string {\n return part.empty ? \"\" : part.lineText.slice(part.contentIndent);\n}\n\nfunction blockPartBytes(part: BlockScalarPart): number {\n if (part.empty) return 0;\n let bytes = 0;\n for (let index = part.contentIndent; index < part.lineText.length;) {\n const codePoint = part.lineText.codePointAt(index)!;\n bytes += utf8Width(codePoint);\n index += codePoint > 0xffff ? 2 : 1;\n }\n return bytes;\n}\n\nfunction blockScalarUnchomped(parts: readonly BlockScalarPart[], style: \"literal\" | \"folded\"): string {\n if (style === \"literal\") {\n let value = parts.map(blockPartText).join(\"\\n\");\n if (parts.at(-1)?.hadBreak) value += \"\\n\";\n return value;\n }\n let value = \"\";\n for (let index = 0; index < parts.length; index++) {\n const current = parts[index]!;\n value += blockPartText(current);\n if (index < parts.length - 1) {\n const next = parts[index + 1]!;\n if (current.empty) value += next.empty ? \"\\n\" : \"\";\n else value += next.empty || current.moreIndented || next.moreIndented ? \"\\n\" : \" \";\n } else if (current.hadBreak) value += \"\\n\";\n }\n return value;\n}\n\nfunction projectBlockScalarBytes(parts: readonly BlockScalarPart[], style: \"literal\" | \"folded\", chomping: string): number {\n let bytes = 0;\n let trailingBreaks = 0;\n const addPart = (part: BlockScalarPart): void => {\n bytes += blockPartBytes(part);\n if (!part.empty) trailingBreaks = 0;\n };\n const addBreak = (): void => {\n bytes++;\n trailingBreaks++;\n };\n if (style === \"literal\") {\n for (let index = 0; index < parts.length; index++) {\n if (index > 0) addBreak();\n addPart(parts[index]!);\n }\n if (parts.at(-1)?.hadBreak) addBreak();\n } else {\n for (let index = 0; index < parts.length; index++) {\n const current = parts[index]!;\n addPart(current);\n if (index < parts.length - 1) {\n const next = parts[index + 1]!;\n if (current.empty && next.empty || !current.empty && (next.empty || current.moreIndented || next.moreIndented)) addBreak();\n else if (!current.empty) {\n bytes++;\n trailingBreaks = 0;\n }\n } else if (current.hadBreak) addBreak();\n }\n }\n if (chomping === \"+\") return bytes;\n const hasContent = parts.some(item => !item.empty);\n return bytes - trailingBreaks + (chomping === \"clip\" && hasContent && parts.at(-1)?.hadBreak ? 1 : 0);\n}\n\nfunction buildBlockScalar(parts: readonly BlockScalarPart[], style: \"literal\" | \"folded\", chomping: string): string {\n let value = blockScalarUnchomped(parts, style);\n const hasContent = parts.some(item => !item.empty);\n if (chomping === \"clip\") value = hasContent && parts.at(-1)?.hadBreak ? `${value.replace(/\\n+$/u, \"\")}\\n` : value.replace(/\\n+$/u, \"\");\n if (chomping === \"-\") value = value.replace(/\\n+$/u, \"\");\n return value;\n}\n\nclass FlowParser {\n #position = 0;\n\n constructor(\n readonly source: string,\n readonly composer: Composer,\n readonly line: number,\n ) {}\n\n async parse(): Promise<ParsedNode> {\n const node = await this.#node();\n this.#space();\n if (this.#position !== this.source.length) throw syntax(this.line, this.#position + 1);\n return node;\n }\n\n async #node(keyMode = false): Promise<ParsedNode> {\n this.#space();\n let tag: string | undefined;\n let anchor: string | undefined;\n while (true) {\n if (this.source.startsWith(\"!!\", this.#position)) {\n if (tag !== undefined) throw syntax(this.line, this.#position + 1);\n const match = /^!![^\\s,\\[\\]{}]+/u.exec(this.source.slice(this.#position));\n if (!match) throw syntax(this.line, this.#position + 1);\n tag = normalizeTag(match[0]);\n this.#position += match[0].length;\n this.#space();\n } else if (this.source.startsWith(\"!<\", this.#position)) {\n if (tag !== undefined) throw syntax(this.line, this.#position + 1);\n const end = this.source.indexOf(\">\", this.#position + 2);\n if (end < 0) throw syntax(this.line, this.#position + 1);\n tag = normalizeTag(this.source.slice(this.#position, end + 1));\n this.#position = end + 1;\n this.#space();\n } else if (this.source[this.#position] === \"!\") {\n throw schema(\"SCHEMA_UNSUPPORTED_TAG\", this.line, this.#position + 1);\n } else if (this.source[this.#position] === \"&\") {\n if (anchor !== undefined) throw syntax(this.line, this.#position + 1);\n const match = /^&([^\\s,\\[\\]{}]+)/u.exec(this.source.slice(this.#position));\n if (!match) throw syntax(this.line, this.#position + 1);\n anchor = match[1]!;\n this.#position += match[0].length;\n this.#space();\n } else break;\n }\n const record = anchor === undefined ? undefined : this.composer.beginAnchor(anchor);\n let parsed: ParsedNode;\n const character = this.source[this.#position];\n if (character === \"[\") parsed = await this.#sequence();\n else if (character === \"{\") parsed = await this.#mapping();\n else if (character === '\"' || character === \"'\") parsed = await this.#quoted();\n else if (character === \"*\") parsed = await this.#alias();\n else if (character === undefined && tag !== undefined) {\n await this.composer.scalar(\"\", null);\n parsed = { value: null, style: \"plain\", raw: \"\" };\n } else parsed = await this.#plain(keyMode);\n parsed = await this.composer.applyTag(parsed, tag);\n if (record) this.composer.completeAnchor(record, parsed.value);\n return { ...parsed, ...(tag === undefined ? {} : { explicitTag: tag }) };\n }\n\n async #sequence(): Promise<ParsedNode> {\n this.composer.enterCollection();\n try {\n this.#position++;\n await this.composer.node();\n this.composer.collection();\n const result: Json[] = [];\n this.#space();\n if (this.source[this.#position] === \"]\") {\n this.#position++;\n return { value: result };\n }\n while (true) {\n this.composer.member(result.length + 1);\n this.composer.member(1);\n const start = this.#position;\n let value = await this.#node();\n this.#space();\n if (this.source[this.#position] === \":\") {\n if (this.source.slice(start, this.#position).includes(\"\\n\")) throw syntax(this.line, this.#position + 1);\n this.#position++;\n this.composer.enterCollection();\n try {\n const mapped = await this.#node();\n await this.composer.node();\n this.composer.collection();\n const pair = object();\n this.composer.mappingEntry(pair, value, mapped.value, true, true);\n value = { value: pair };\n } finally { this.composer.leaveCollection(); }\n }\n result.push(value.value);\n this.#space();\n if (this.source[this.#position] === \"]\") {\n this.#position++;\n return { value: result };\n }\n if (this.source[this.#position] !== \",\") throw syntax(this.line, this.#position + 1);\n this.#position++;\n this.#space();\n if (this.source[this.#position] === \"]\") {\n this.#position++;\n return { value: result };\n }\n }\n } finally { this.composer.leaveCollection(); }\n }\n\n async #mapping(): Promise<ParsedNode> {\n this.composer.enterCollection();\n try {\n this.#position++;\n await this.composer.node();\n this.composer.collection();\n const result = object();\n let members = 0;\n this.#space();\n if (this.source[this.#position] === \"}\") {\n this.#position++;\n return { value: result };\n }\n while (true) {\n this.composer.member(++members);\n const key = await this.#node(true);\n this.#space();\n if (this.source[this.#position] !== \":\") throw syntax(this.line, this.#position + 1);\n this.#position++;\n const value = await this.#node();\n this.composer.mappingEntry(result, key, value.value, true, true);\n this.#space();\n if (this.source[this.#position] === \"}\") {\n this.#position++;\n return { value: result };\n }\n if (this.source[this.#position] !== \",\") throw syntax(this.line, this.#position + 1);\n this.#position++;\n this.#space();\n if (this.source[this.#position] === \"}\") {\n this.#position++;\n return { value: result };\n }\n }\n } finally { this.composer.leaveCollection(); }\n }\n\n async #quoted(): Promise<ParsedNode> {\n const quote = this.source[this.#position]!;\n const start = this.#position++;\n let escaped = false;\n while (this.#position < this.source.length) {\n const character = this.source[this.#position++]!;\n if (quote === '\"') {\n if (!escaped && character === '\"') break;\n if (!escaped && character === \"\\\\\") escaped = true;\n else escaped = false;\n } else if (character === \"'\" && this.source[this.#position] === \"'\") this.#position++;\n else if (character === \"'\") break;\n }\n if (this.source[this.#position - 1] !== quote) throw syntax(this.line, start + 1);\n const projectedBytes = quote === '\"'\n ? projectDoubleBytes(this.source, start, this.#position)\n : projectSingleBytes(this.source, start, this.#position);\n this.composer.admitScalar(projectedBytes);\n const raw = this.source.slice(start, this.#position);\n const value = quote === '\"' ? decodeDouble(raw) : decodeSingle(raw);\n await this.composer.scalar(value, value, true);\n return { value, style: quote === '\"' ? \"double\" : \"single\" };\n }\n\n async #alias(): Promise<ParsedNode> {\n const match = /^\\*([^\\s,\\[\\]{}]+)/u.exec(this.source.slice(this.#position));\n if (!match) throw syntax(this.line, this.#position + 1);\n this.#position += match[0].length;\n return { value: await this.composer.alias(match[1]!) };\n }\n\n async #plain(keyMode: boolean): Promise<ParsedNode> {\n const start = this.#position;\n let depth = 0;\n while (this.#position < this.source.length) {\n const character = this.source[this.#position]!;\n if (character === \"[\" || character === \"{\") depth++;\n if (character === \"]\" || character === \"}\") {\n if (depth === 0) break;\n depth--;\n }\n if (depth === 0 && (character === \",\" || character === \"]\" || character === \"}\")) break;\n if (depth === 0 && character === \":\" && (keyMode || /[\\s,\\]}]/u.test(this.source[this.#position + 1] ?? \"\"))) break;\n this.#position++;\n }\n const projectedBytes = projectPlainBytes(this.source, start, this.#position);\n this.composer.admitScalar(projectedBytes);\n const raw = this.source.slice(start, this.#position).trim().replace(/\\r?\\n[ \\t]*/gu, \" \");\n if (raw.length === 0) throw syntax(this.line, start + 1);\n const value = scalarFromPlain(raw);\n await this.composer.scalar(typeof value === \"string\" ? value : raw, value, true);\n return { value, style: \"plain\", raw };\n }\n\n #space(): void {\n while (/[ \\t\\r\\n]/u.test(this.source[this.#position] ?? \"\")) this.#position++;\n }\n}\n\nclass Composer {\n readonly #anchors = new Map<string, AnchorRecord>();\n readonly #futureAnchors: Set<string>;\n #collectionDepth = 0;\n\n constructor(\n readonly work: YqOwnedWork,\n readonly ledger: YqLedger,\n futureAnchors: Iterable<string>,\n ) {\n this.#futureAnchors = new Set(futureAnchors);\n }\n\n async node(): Promise<void> {\n await this.work.charge(1);\n this.work.assertOpen();\n this.ledger.admitNode();\n }\n\n enterCollection(): void {\n this.work.assertOpen();\n if (this.#collectionDepth >= yqCaps.maxDepth) throw limit(\"LIMIT_MAX_DEPTH\");\n this.#collectionDepth++;\n }\n\n leaveCollection(): void {\n this.#collectionDepth--;\n }\n\n admitScalar(bytes: number): void {\n this.ledger.admitScalar(bytes);\n }\n\n async scalar(text: string, value: Json = text, admitted = false): Promise<void> {\n await this.node();\n const bytes = Buffer.byteLength(text);\n if (!admitted) this.ledger.admitScalar(bytes);\n let codePoints = 0;\n for (const unused of text) {\n void unused;\n codePoints++;\n if (codePoints === 256) {\n await this.work.charge(codePoints);\n this.work.assertOpen();\n codePoints = 0;\n }\n }\n if (codePoints > 0) await this.work.charge(codePoints);\n this.work.assertOpen();\n if (bytes > 0) await this.work.charge(Math.ceil(bytes / 1024));\n this.work.assertOpen();\n this.ledger.admitValueBytes(compactScalarBytes(value));\n }\n\n collection(): void {\n this.ledger.admitValueBytes(2);\n }\n\n member(size: number): void {\n if (size > yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n if (size > 1) this.ledger.admitValueBytes(1);\n }\n\n mappingEntry(target: Record<string, Json>, key: ParsedNode, value: Json, implicit: boolean, memberAdmitted = false): void {\n if (typeof key.value !== \"string\") throw schema(\"SCHEMA_NONSTRING_KEY\");\n if (implicit && countCodePoints(key.value) > 1024) throw syntax();\n if (key.style === \"plain\" && key.explicitTag === undefined && key.value === \"<<\") throw schema(\"SCHEMA_PLAIN_MERGE_KEY\");\n if (Object.hasOwn(target, key.value)) throw schema(\"SCHEMA_DUPLICATE_KEY\");\n if (!memberAdmitted) this.member(objectKeys(target).length + 1);\n this.ledger.admitValueBytes(1);\n put(target, key.value, value);\n }\n\n beginAnchor(name: string): AnchorRecord {\n this.ledger.admitAnchor();\n this.#futureAnchors.delete(name);\n const record: AnchorRecord = { name, pending: true };\n this.#anchors.set(name, record);\n return record;\n }\n\n completeAnchor(record: AnchorRecord, value: Json): void {\n record.pending = false;\n record.value = value;\n }\n\n async alias(name: string): Promise<Json> {\n const record = this.#anchors.get(name);\n if (!record) throw aliasFailure(this.#futureAnchors.has(name) ? \"ALIAS_FORWARD\" : \"ALIAS_UNDEFINED\");\n if (record.pending || record.value === undefined) throw aliasFailure(\"ALIAS_CURRENT_NODE\");\n return copyAlias(record.value, this.ledger, this.work);\n }\n\n async applyTag(node: ParsedNode, tag?: string): Promise<ParsedNode> {\n if (tag === undefined) return node;\n const collection = Array.isArray(node.value) ? \"seq\" : node.value !== null && typeof node.value === \"object\" && !(node.value instanceof Decimal) ? \"map\" : \"scalar\";\n if (tag === \"map\" || tag === \"seq\") {\n if (collection !== tag) throw schema(\"SCHEMA_TAG_KIND_MISMATCH\");\n return node;\n }\n if (collection !== \"scalar\") throw schema(\"SCHEMA_TAG_KIND_MISMATCH\");\n const raw = node.raw ?? (typeof node.value === \"string\" ? node.value : node.value instanceof Decimal ? node.value.text : String(node.value));\n const value = scalarFromPlain(raw, tag);\n return { value, ...(node.style === undefined ? {} : { style: node.style }), explicitTag: tag, ...(node.raw === undefined ? {} : { raw: node.raw }) };\n }\n}\n\nclass BlockParser {\n #index = 0;\n\n constructor(\n readonly lines: SourceLine[],\n readonly composer: Composer,\n ) {}\n\n async parse(): Promise<Json> {\n this.#skip();\n if (this.#index >= this.lines.length) {\n await this.composer.scalar(\"\", null);\n return null;\n }\n const indent = indentation(this.lines[this.#index]!.text);\n const node = await this.#node(indent);\n this.#skip();\n if (this.#index < this.lines.length) throw syntax(this.lines[this.#index]!.number, 1);\n return node.value;\n }\n\n async #node(indent: number): Promise<ParsedNode> {\n this.#skip();\n const line = this.lines[this.#index];\n if (!line) {\n await this.composer.scalar(\"\", null);\n return { value: null, style: \"plain\" };\n }\n const actual = indentation(line.text);\n if (actual !== indent) throw syntax(line.number, actual + 1);\n const content = stripComment(line.text.slice(indent));\n if (/^-(?:[ \\t]|$)/u.test(content)) return this.#sequence(indent);\n if (content.startsWith(\"? \") || mappingColon(content) >= 0) return this.#mapping(indent);\n this.#index++;\n return this.#inlineOrBlock(content, indent, line.number);\n }\n\n async #sequence(indent: number): Promise<ParsedNode> {\n this.composer.enterCollection();\n try {\n await this.composer.node();\n this.composer.collection();\n const result: Json[] = [];\n while (this.#index < this.lines.length) {\n this.#skip();\n const line = this.lines[this.#index];\n if (!line || indentation(line.text) !== indent) break;\n const content = stripComment(line.text.slice(indent));\n if (!/^-(?:[ \\t]|$)/u.test(content)) break;\n this.composer.member(result.length + 1);\n this.#index++;\n const rest = content.slice(1).trimStart();\n let item: ParsedNode;\n if (rest.length === 0) {\n this.#skip();\n const next = this.lines[this.#index];\n item = next && indentation(next.text) > indent ? await this.#node(indentation(next.text)) : { value: null, style: \"plain\" };\n if (!next || indentation(next.text) <= indent) await this.composer.scalar(\"\", null);\n } else if (mappingColon(rest) >= 0) {\n item = await this.#inlineMappingItem(rest, indent + 2, line.number);\n } else item = await this.#inlineOrBlock(rest, indent, line.number);\n result.push(item.value);\n }\n return { value: result };\n } finally { this.composer.leaveCollection(); }\n }\n\n async #inlineMappingItem(first: string, indent: number, lineNumber: number): Promise<ParsedNode> {\n this.composer.enterCollection();\n try {\n await this.composer.node();\n this.composer.collection();\n const result = object();\n let members = 1;\n this.composer.member(members);\n await this.#mappingLine(result, first, indent, lineNumber, true);\n while (this.#index < this.lines.length) {\n this.#skip();\n const line = this.lines[this.#index];\n if (!line || indentation(line.text) !== indent) break;\n const content = stripComment(line.text.slice(indent));\n if (mappingColon(content) < 0) break;\n this.composer.member(++members);\n this.#index++;\n await this.#mappingLine(result, content, indent, line.number, true);\n }\n return { value: result };\n } finally { this.composer.leaveCollection(); }\n }\n\n async #mapping(indent: number): Promise<ParsedNode> {\n this.composer.enterCollection();\n try {\n await this.composer.node();\n this.composer.collection();\n const result = object();\n let members = 0;\n while (this.#index < this.lines.length) {\n this.#skip();\n const line = this.lines[this.#index];\n if (!line || indentation(line.text) !== indent) break;\n const content = stripComment(line.text.slice(indent));\n if (content.startsWith(\"? \")) {\n this.composer.member(++members);\n this.#index++;\n const key = await this.#inlineOrBlock(content.slice(2).trimStart(), indent, line.number);\n this.#skip();\n const valueLine = this.lines[this.#index];\n if (!valueLine || indentation(valueLine.text) !== indent || !stripComment(valueLine.text.slice(indent)).startsWith(\":\")) throw syntax(line.number, 1);\n this.#index++;\n const valueText = stripComment(valueLine.text.slice(indent)).slice(1).trimStart();\n const value = valueText.length > 0 ? await this.#inlineOrBlock(valueText, indent, valueLine.number) : await this.#nestedOrNull(indent);\n this.composer.mappingEntry(result, key, value.value, false, true);\n continue;\n }\n const colon = mappingColon(content);\n if (colon < 0) break;\n this.composer.member(++members);\n this.#index++;\n await this.#mappingLine(result, content, indent, line.number, true);\n }\n return { value: result };\n } finally { this.composer.leaveCollection(); }\n }\n\n async #mappingLine(target: Record<string, Json>, content: string, indent: number, lineNumber: number, memberAdmitted: boolean): Promise<void> {\n const colon = mappingColon(content);\n if (colon < 0) throw syntax(lineNumber, 1);\n const keyText = content.slice(0, colon).trimEnd();\n const valueText = content.slice(colon + 1).trimStart();\n const key = await this.#inlineOrBlock(keyText, indent, lineNumber);\n const value = valueText.length > 0 ? await this.#inlineOrBlock(valueText, indent, lineNumber) : await this.#nestedOrNull(indent);\n this.composer.mappingEntry(target, key, value.value, true, memberAdmitted);\n }\n\n async #nestedOrNull(parentIndent: number): Promise<ParsedNode> {\n this.#skip();\n const next = this.lines[this.#index];\n if (next && indentation(next.text) > parentIndent) return this.#node(indentation(next.text));\n if (next && indentation(next.text) === parentIndent && /^-(?:[ \\t]|$)/u.test(stripComment(next.text.slice(parentIndent)))) {\n return this.#node(parentIndent);\n }\n await this.composer.scalar(\"\", null);\n return { value: null, style: \"plain\" };\n }\n\n async #inlineOrBlock(content: string, parentIndent: number, lineNumber: number): Promise<ParsedNode> {\n const property = /^(?:(!![^\\s]+|!<[^>]+>|!)\\s+)?(?:&([^\\s]+)\\s+)?([|>])([1-9]?[+-]?|[+-]?[1-9]?)$/u.exec(content);\n if (property) return this.#blockScalar(property, parentIndent, lineNumber);\n if (/^[|>]/u.test(content)) throw syntax(lineNumber, 1);\n const fragments = [content];\n let fragment = content;\n let single = false;\n let double = false;\n let escaped = false;\n let depth = 0;\n let negativeDepth = false;\n let balanced = false;\n while (true) {\n for (let start = 0; start < fragment.length; start += 256) {\n const end = Math.min(start + 256, fragment.length);\n await this.composer.work.charge(end - start);\n this.composer.work.assertOpen();\n for (let index = start; index < end; index++) {\n const character = fragment[index]!;\n if (double) {\n if (escaped) escaped = false;\n else if (character === \"\\\\\") escaped = true;\n else if (character === '\"') double = false;\n } else if (single) {\n if (character === \"'\") single = false;\n } else if (character === '\"') double = true;\n else if (character === \"'\") single = true;\n else if (character === \"[\" || character === \"{\") depth++;\n else if (character === \"]\" || character === \"}\") {\n depth--;\n if (depth < 0) negativeDepth = true;\n }\n }\n }\n balanced = !single && !double && (negativeDepth || depth === 0);\n if (balanced || this.#index >= this.lines.length) break;\n fragment = `\\n${this.lines[this.#index++]!.text.trimStart()}`;\n fragments.push(fragment);\n }\n if (!balanced) throw syntax(lineNumber, 1);\n return new FlowParser(fragments.join(\"\"), this.composer, lineNumber).parse();\n }\n\n async #blockScalar(match: RegExpExecArray, parentIndent: number, lineNumber: number): Promise<ParsedNode> {\n const tag = match[1] === undefined ? undefined : normalizeTag(match[1]);\n const anchorName = match[2];\n const style = match[3] === \"|\" ? \"literal\" : \"folded\";\n const header = match[4] ?? \"\";\n const digitMatch = /[1-9]/u.exec(header);\n const chomping = header.includes(\"+\") ? \"+\" : header.includes(\"-\") ? \"-\" : \"clip\";\n let contentIndent = digitMatch ? parentIndent + Number(digitMatch[0]) : -1;\n if (contentIndent < 0) {\n for (let cursor = this.#index; cursor < this.lines.length; cursor++) {\n if (this.lines[cursor]!.text.trim().length > 0) {\n contentIndent = indentation(this.lines[cursor]!.text);\n break;\n }\n }\n if (contentIndent < 0) contentIndent = parentIndent + 1;\n }\n const values: BlockScalarPart[] = [];\n while (this.#index < this.lines.length) {\n const line = this.lines[this.#index]!;\n const actual = indentation(line.text);\n if (line.text.trim().length > 0 && actual < contentIndent) break;\n this.#index++;\n const empty = line.text.trim().length === 0;\n values.push({ lineText: line.text, contentIndent, empty, moreIndented: !empty && actual > contentIndent, hadBreak: line.hadBreak });\n }\n const projectedBytes = projectBlockScalarBytes(values, style, chomping);\n this.composer.admitScalar(projectedBytes);\n const value = buildBlockScalar(values, style, chomping);\n const record = anchorName === undefined ? undefined : this.composer.beginAnchor(anchorName);\n await this.composer.scalar(value, value, true);\n let node: ParsedNode = { value, style };\n node = await this.composer.applyTag(node, tag);\n if (record) this.composer.completeAnchor(record, node.value);\n void lineNumber;\n return node;\n }\n\n #skip(): void {\n while (this.#index < this.lines.length) {\n const line = this.lines[this.#index]!;\n const indent = indentation(line.text);\n const content = line.text.slice(indent);\n if (content.trim().length > 0 && !content.startsWith(\"#\")) return;\n this.#index++;\n }\n }\n}\n\nfunction rawLines(text: string, lineOffset = 0): SourceLine[] {\n const normalized = text.replace(/\\r\\n|\\r/gu, \"\\n\");\n const finalBreak = normalized.endsWith(\"\\n\");\n const pieces = normalized.split(\"\\n\");\n if (pieces[pieces.length - 1] === \"\") pieces.pop();\n return pieces.map((line, index) => {\n const hadBreak = index < pieces.length - 1 || finalBreak;\n return { text: line, number: lineOffset + index + 1, rawBytes: Buffer.byteLength(line) + (hadBreak ? 1 : 0), hadBreak };\n });\n}\n\nfunction* documents(text: string, lineOffset = 0): Generator<RawDocument> {\n const lines = rawLines(text, lineOffset);\n let current: SourceLine[] = [];\n let explicit = false;\n let ended = false;\n let directives = 0;\n let sawContent = false;\n const take = (force: boolean): RawDocument | undefined => {\n const document = force || sawContent || explicit\n ? { lines: current, explicit, rawBytes: current.reduce((sum, line) => sum + line.rawBytes, 0) }\n : undefined;\n current = [];\n explicit = false;\n sawContent = false;\n directives = 0;\n return document;\n };\n for (const original of lines) {\n let line = original;\n if (line.number === 1 && line.text.startsWith(\"\\ufeff\")) line = { ...line, text: line.text.slice(1) };\n if (ended && line.text.startsWith(\"\\ufeff\")) line = { ...line, text: line.text.slice(1) };\n const trimmed = stripComment(line.text).trim();\n if (line.text.startsWith(\"%\")) {\n if (sawContent || explicit || ended) throw structure(line.number, 1);\n if (trimmed !== \"%YAML 1.2\" || directives > 0) throw schema(\"SCHEMA_UNSUPPORTED_DIRECTIVE\", line.number, 1);\n directives++;\n continue;\n }\n if (/^---(?:[ \\t]+#.*)?$/u.test(line.text)) {\n if (sawContent || explicit) {\n const document = take(false);\n if (document) yield document;\n }\n explicit = true;\n ended = false;\n continue;\n }\n if (/^\\.\\.\\.(?:[ \\t]+#.*)?$/u.test(line.text)) {\n if (!sawContent && !explicit) {\n ended = true;\n continue;\n }\n const document = take(true);\n if (document) yield document;\n ended = true;\n continue;\n }\n if (ended) {\n if (trimmed === \"\") continue;\n ended = false;\n }\n if (directives > 0 && !explicit && trimmed !== \"\") throw structure(line.number, 1);\n current.push(line);\n if (trimmed !== \"\") sawContent = true;\n }\n const document = take(false);\n if (document) yield document;\n}\n\nfunction futureAnchorNames(lines: readonly SourceLine[]): string[] {\n const names: string[] = [];\n for (const line of lines) {\n const source = stripComment(line.text);\n const matcher = /(?:^|[\\s\\[,{}])&([^\\s\\[\\],{}]+)/gu;\n for (const match of source.matchAll(matcher)) names.push(match[1]!);\n }\n return names;\n}\n\nexport async function* parseYamlDocuments(text: string, work: YqOwnedWork, ledger: YqLedger, admittedRawBytes?: number, lineOffset = 0): AsyncGenerator<Json> {\n if (!wellFormed(text)) throw new YqError(\"input\", \"INPUT_INVALID_UTF8\", 5);\n let admitted = false;\n for (const document of documents(text, lineOffset)) {\n ledger.beginDocument(admittedRawBytes !== undefined && !admitted ? admittedRawBytes : document.rawBytes);\n admitted = true;\n let singleQuoted = false;\n let doubleQuoted = false;\n let escaped = false;\n for (const line of document.lines) {\n let codePoints = 0;\n for (let index = 0; index < line.text.length; index++) {\n const character = line.text[index]!;\n const point = character.codePointAt(0)!;\n if (doubleQuoted) {\n if (escaped) escaped = false;\n else if (character === \"\\\\\") escaped = true;\n else if (character === '\"') doubleQuoted = false;\n if (!(point === 0x09 || point >= 0x20)) throw syntax(line.number, index + 1);\n } else if (singleQuoted) {\n if (character === \"'\" && line.text[index + 1] === \"'\") index++;\n else if (character === \"'\") singleQuoted = false;\n if (!(point === 0x09 || point >= 0x20)) throw syntax(line.number, index + 1);\n } else {\n if (character === '\"') doubleQuoted = true;\n else if (character === \"'\") singleQuoted = true;\n const printable = point === 0x09 || point >= 0x20 && point <= 0x7e || point === 0x85 || point >= 0xa0 && point <= 0xd7ff || point >= 0xe000 && point <= 0xfffd || point >= 0x10000 && point <= 0x10ffff;\n if (!printable) throw syntax(line.number, index + 1);\n if (point === 0xfeff) throw structure(line.number, index + 1);\n }\n codePoints++;\n if (point > 0xffff) index++;\n if (codePoints === 256) {\n await work.charge(codePoints);\n work.assertOpen();\n codePoints = 0;\n }\n }\n if (codePoints > 0) await work.charge(codePoints);\n work.assertOpen();\n }\n const composer = new Composer(work, ledger, futureAnchorNames(document.lines));\n const value = await new BlockParser(document.lines, composer).parse();\n work.assertOpen();\n yield value;\n }\n}\n", "import { object, objectKeyIterator, objectSize, put, type Json } from \"../structured/limits.js\";\nimport { Decimal, numberText } from \"../structured/numbers.js\";\nimport type { YqOwnedWork } from \"../structured/query-core.js\";\nimport { YqLedger, yqCaps } from \"./accounting.js\";\nimport { YqError, limit } from \"./errors.js\";\n\ntype Table = Record<string, Json>;\ntype TableKind = \"root\" | \"implicit\" | \"header\" | \"dotted\" | \"inline\";\ninterface TableState { kind: TableKind; readonly depth: number; sealed: boolean; }\n\nclass TomlParser {\n #offset = 0;\n #line = 1;\n #column = 1;\n #pending = 0;\n readonly #tables = new WeakMap<Table, TableState>();\n readonly #arraysOfTables = new WeakSet<Json[]>();\n\n constructor(readonly source: string, readonly work: YqOwnedWork, readonly ledger: YqLedger) {}\n\n #syntax(): never { throw new YqError(\"input\", \"INPUT_TOML_SYNTAX\", 5, undefined, this.#line, this.#column); }\n #conflict(): never { throw new YqError(\"schema\", \"SCHEMA_DUPLICATE_KEY\", 5, undefined, this.#line, this.#column); }\n #schema(code: \"SCHEMA_UNSAFE_INTEGER\" | \"SCHEMA_NONFINITE_NUMBER\" | \"SCHEMA_DECIMAL_RANGE\"): never {\n throw new YqError(\"schema\", code, 5, undefined, this.#line, this.#column);\n }\n #peek(distance = 0): string { return this.source[this.#offset + distance] ?? \"\"; }\n #take(): string {\n if (this.#offset >= this.source.length) this.#syntax();\n const point = this.source.codePointAt(this.#offset)!;\n if (point >= 0xd800 && point <= 0xdfff || point < 32 && point !== 9 && point !== 10 && point !== 13 || point === 127) this.#syntax();\n let value = String.fromCodePoint(point);\n this.#offset += value.length;\n this.#pending++;\n if (point === 13) {\n if (this.#peek() !== \"\\n\") this.#syntax();\n this.#offset++;\n value = \"\\n\";\n }\n if (value === \"\\n\") { this.#line++; this.#column = 1; }\n else this.#column++;\n return value;\n }\n async #flush(): Promise<void> {\n if (this.#pending) { const units = this.#pending; this.#pending = 0; await this.work.charge(units); }\n this.work.assertOpen();\n }\n async #space(newlines: boolean): Promise<void> {\n while (true) {\n const character = this.#peek();\n if (character === \" \" || character === \"\\t\" || newlines && (character === \"\\n\" || character === \"\\r\")) this.#take();\n else if (newlines && character === \"#\") {\n while (this.#peek() && this.#peek() !== \"\\n\" && this.#peek() !== \"\\r\") {\n this.#take();\n if (this.#pending >= 256) await this.#flush();\n }\n } else break;\n if (this.#pending >= 256) await this.#flush();\n }\n }\n async #lineEnd(): Promise<void> {\n await this.#space(false);\n if (this.#peek() === \"#\") {\n while (this.#peek() && this.#peek() !== \"\\n\" && this.#peek() !== \"\\r\") {\n this.#take();\n if (this.#pending >= 256) await this.#flush();\n }\n }\n if (this.#peek() === \"\\n\" || this.#peek() === \"\\r\") this.#take();\n else if (this.#peek()) this.#syntax();\n }\n #depth(depth: number): void { if (depth > yqCaps.maxDepth) throw limit(\"LIMIT_MAX_DEPTH\"); }\n async #node(): Promise<void> {\n await this.#flush();\n await this.work.charge(1);\n this.work.assertOpen();\n this.ledger.admitNode();\n }\n async #table(kind: TableKind, depth: number): Promise<Table> {\n this.#depth(depth);\n await this.#node();\n this.ledger.admitValueBytes(2);\n const value = object();\n this.#tables.set(value, { kind, depth, sealed: false });\n return value;\n }\n async #array(depth: number): Promise<Json[]> {\n this.#depth(depth);\n await this.#node();\n this.ledger.admitValueBytes(2);\n return [];\n }\n async #scalar(value: Json): Promise<void> {\n await this.#node();\n if (typeof value !== \"string\") {\n const text = typeof value === \"boolean\" ? String(value) : numberText(value as number | Decimal);\n this.ledger.admitScalar(text.length);\n this.ledger.admitValueBytes(text.length);\n return;\n }\n let rawBytes = 0;\n let compactBytes = 2;\n let work = 0;\n for (const character of value) {\n const point = character.codePointAt(0)!;\n const bytes = point <= 0x7f ? 1 : point <= 0x7ff ? 2 : point <= 0xffff ? 3 : 4;\n rawBytes += bytes;\n compactBytes += point === 34 || point === 92 || [8, 9, 10, 12, 13].includes(point) ? 2 : point < 32 ? 6 : bytes;\n this.ledger.admitScalar(rawBytes);\n if (++work === 256) { await this.work.charge(work); this.work.assertOpen(); work = 0; }\n }\n if (work) await this.work.charge(work);\n this.work.assertOpen();\n this.ledger.admitValueBytes(compactBytes);\n }\n async #member(table: Table, key: string, value: Json): Promise<void> {\n if (Object.hasOwn(table, key)) this.#conflict();\n const size = objectSize(table);\n if (size >= yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n await this.#scalar(key);\n this.ledger.admitValueBytes(size ? 2 : 1);\n this.work.assertOpen();\n put(table, key, value);\n }\n #append(array: Json[], value: Json): void {\n if (array.length >= yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n if (array.length) this.ledger.admitValueBytes(1);\n this.work.assertOpen();\n array.push(value);\n }\n async #string(key = false): Promise<string> {\n const quote = this.#take();\n let multiline = false;\n if (!key && this.#peek() === quote && this.#peek(1) === quote) {\n this.#take(); this.#take(); multiline = true;\n if (this.#peek() === \"\\n\" || this.#peek() === \"\\r\") this.#take();\n }\n const parts: string[] = [];\n let part = \"\";\n let bytes = 0;\n const append = (value: string): void => {\n bytes += Buffer.byteLength(value);\n this.ledger.admitScalar(bytes);\n part += value;\n if (part.length >= 256) { parts.push(part); part = \"\"; }\n };\n while (this.#peek()) {\n const character = this.#take();\n if (character === quote) {\n if (!multiline) { parts.push(part); return parts.join(\"\"); }\n let count = 1;\n while (count < 5 && this.#peek() === quote) { this.#take(); count++; }\n if (count >= 3) { append(quote.repeat(count - 3)); parts.push(part); return parts.join(\"\"); }\n append(quote.repeat(count));\n } else if (character === \"\\n\") {\n if (!multiline) this.#syntax();\n append(character);\n } else if (quote === '\"' && character === \"\\\\\") {\n if (multiline && [\" \", \"\\t\", \"\\n\", \"\\r\"].includes(this.#peek())) {\n await this.#space(false);\n if (this.#peek() !== \"\\n\" && this.#peek() !== \"\\r\") this.#syntax();\n this.#take();\n while ([\" \", \"\\t\", \"\\n\", \"\\r\"].includes(this.#peek())) {\n this.#take();\n if (this.#pending >= 256) await this.#flush();\n }\n } else {\n const escape = this.#take();\n const simple: Record<string, string> = { b: \"\\b\", t: \"\\t\", n: \"\\n\", f: \"\\f\", r: \"\\r\", '\"': '\"', \"\\\\\": \"\\\\\" };\n if (Object.hasOwn(simple, escape)) append(simple[escape]!);\n else if (escape === \"u\" || escape === \"U\") {\n let point = 0;\n for (let index = 0; index < (escape === \"u\" ? 4 : 8); index++) {\n const digit = this.#digit(this.#take(), 16);\n if (digit < 0) this.#syntax();\n point = point * 16 + digit;\n }\n if (point > 0x10ffff || point >= 0xd800 && point <= 0xdfff) this.#syntax();\n append(String.fromCodePoint(point));\n } else this.#syntax();\n }\n } else append(character);\n if (this.#pending >= 256) await this.#flush();\n }\n return this.#syntax();\n }\n #digit(character: string, base: number): number {\n const code = character.charCodeAt(0);\n const digit = code >= 48 && code <= 57 ? code - 48 : code >= 65 && code <= 70 ? code - 55 : code >= 97 && code <= 102 ? code - 87 : -1;\n return digit >= 0 && digit < base ? digit : -1;\n }\n async #keyPath(): Promise<string[]> {\n const path: string[] = [];\n while (true) {\n await this.#space(false);\n let key: string;\n if (this.#peek() === '\"' || this.#peek() === \"'\") key = await this.#string(true);\n else {\n const start = this.#offset;\n while (this.#peek()) {\n const code = this.#peek().charCodeAt(0);\n if (!(code >= 65 && code <= 90 || code >= 97 && code <= 122 || code >= 48 && code <= 57 || code === 95 || code === 45)) break;\n this.#take();\n if (this.#offset - start > yqCaps.maxScalarBytes) throw limit(\"LIMIT_MAX_SCALAR_BYTES\");\n if (this.#pending >= 256) await this.#flush();\n }\n if (this.#offset === start) this.#syntax();\n key = this.source.slice(start, this.#offset);\n }\n if (path.length >= yqCaps.maxDepth) throw limit(\"LIMIT_MAX_DEPTH\");\n path.push(key);\n await this.#space(false);\n if (this.#peek() !== \".\") return path;\n this.#take();\n }\n }\n #state(table: Table): TableState {\n const state = this.#tables.get(table);\n if (!state) this.#conflict();\n return state;\n }\n async #parents(start: Table, path: readonly string[], kind: \"implicit\" | \"dotted\", allowAoT: boolean): Promise<Table> {\n let current = start;\n for (const key of path) {\n await this.work.charge(1); this.work.assertOpen();\n const parent = this.#state(current);\n if (parent.sealed) this.#conflict();\n let value = current[key];\n if (!Object.hasOwn(current, key)) {\n value = await this.#table(kind, parent.depth + 1);\n await this.#member(current, key, value);\n } else if (Array.isArray(value) && allowAoT && this.#arraysOfTables.has(value)) value = value.at(-1)!;\n if (typeof value !== \"object\" || value === null || Array.isArray(value) || value instanceof Decimal) this.#conflict();\n const state = this.#state(value);\n if (state.sealed) this.#conflict();\n if (kind === \"dotted\" && state.kind === \"header\") this.#conflict();\n if (kind === \"dotted\" && state.kind === \"implicit\") state.kind = \"dotted\";\n current = value;\n }\n return current;\n }\n async #assignment(current: Table): Promise<void> {\n const path = await this.#keyPath();\n if (this.#take() !== \"=\") this.#syntax();\n await this.#space(false);\n const parent = await this.#parents(current, path.slice(0, -1), \"dotted\", false);\n if (this.#state(parent).sealed || Object.hasOwn(parent, path.at(-1)!)) this.#conflict();\n if (objectSize(parent) >= yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n const value = await this.#value(this.#state(parent).depth + 1);\n await this.#member(parent, path.at(-1)!, value);\n }\n async #header(root: Table): Promise<Table> {\n this.#take();\n const array = this.#peek() === \"[\";\n if (array) this.#take();\n const path = await this.#keyPath();\n if (this.#take() !== \"]\" || array && this.#take() !== \"]\") this.#syntax();\n await this.#lineEnd();\n const parent = await this.#parents(root, path.slice(0, -1), \"implicit\", true);\n const key = path.at(-1)!;\n const parentState = this.#state(parent);\n if (parentState.sealed) this.#conflict();\n const exists = Object.hasOwn(parent, key);\n const existing = parent[key];\n if (array) {\n let values: Json[];\n if (exists) {\n if (!Array.isArray(existing) || !this.#arraysOfTables.has(existing)) this.#conflict();\n values = existing;\n } else {\n values = await this.#array(parentState.depth + 1);\n this.#arraysOfTables.add(values);\n await this.#member(parent, key, values);\n }\n if (values.length >= yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n const table = await this.#table(\"header\", parentState.depth + 2);\n this.#append(values, table);\n return table;\n }\n if (exists) {\n if (typeof existing !== \"object\" || existing === null || Array.isArray(existing) || existing instanceof Decimal) this.#conflict();\n const state = this.#state(existing);\n if (state.kind !== \"implicit\" || state.sealed) this.#conflict();\n state.kind = \"header\";\n return existing;\n }\n const table = await this.#table(\"header\", parentState.depth + 1);\n await this.#member(parent, key, table);\n return table;\n }\n async #seal(table: Table): Promise<void> {\n const pending: Table[] = [table];\n while (pending.length) {\n const current = pending.pop()!;\n await this.work.charge(1); this.work.assertOpen();\n this.#state(current).sealed = true;\n for (const key of objectKeyIterator(current)) {\n await this.work.charge(1); this.work.assertOpen();\n const value = current[key];\n if (typeof value === \"object\" && value !== null && !Array.isArray(value) && !(value instanceof Decimal)) pending.push(value);\n }\n }\n }\n async #value(depth: number): Promise<Json> {\n this.#depth(depth);\n const character = this.#peek();\n if (character === '\"' || character === \"'\") {\n const value = await this.#string();\n await this.#scalar(value);\n return value;\n }\n if (character === \"[\") {\n this.#take();\n const result = await this.#array(depth);\n await this.#space(true);\n while (this.#peek() !== \"]\") {\n if (!this.#peek()) this.#syntax();\n if (result.length >= yqCaps.maxCollectionSize) throw limit(\"LIMIT_MAX_COLLECTION_SIZE\");\n const value = await this.#value(depth + 1);\n this.#append(result, value);\n await this.#space(true);\n if (this.#peek() !== \",\") break;\n this.#take(); await this.#space(true);\n }\n if (this.#take() !== \"]\") this.#syntax();\n return result;\n }\n if (character === \"{\") {\n this.#take();\n const result = await this.#table(\"inline\", depth);\n await this.#space(false);\n if (this.#peek() !== \"}\") {\n while (true) {\n await this.#assignment(result);\n await this.#space(false);\n if (this.#peek() !== \",\") break;\n this.#take(); await this.#space(false);\n if (this.#peek() === \"}\") this.#syntax();\n }\n }\n if (this.#take() !== \"}\") this.#syntax();\n await this.#seal(result);\n return result;\n }\n const start = this.#offset;\n while (this.#peek()) {\n const next = this.#peek();\n if (\" \\t\\r\\n#,]}\".includes(next)) {\n if (next === \" \" && this.#offset - start === 10 && this.source[start + 4] === \"-\" && this.source[start + 7] === \"-\" && this.#digit(this.#peek(1), 10) >= 0) this.#take();\n else break;\n } else this.#take();\n if (this.#offset - start > yqCaps.maxScalarBytes) throw limit(\"LIMIT_MAX_SCALAR_BYTES\");\n if (this.#pending >= 256) await this.#flush();\n }\n if (this.#offset === start) this.#syntax();\n const raw = this.source.slice(start, this.#offset);\n await this.#flush();\n let value: Json;\n if (raw === \"true\" || raw === \"false\") value = raw === \"true\";\n else if (raw.length >= 8 && (raw[2] === \":\" || raw[4] === \"-\" && raw[7] === \"-\")) {\n await this.#date(raw); value = raw;\n } else value = await this.#number(raw);\n await this.#scalar(value);\n return value;\n }\n async #number(raw: string): Promise<number | Decimal> {\n let start = 0;\n const negative = raw[0] === \"-\";\n if (negative || raw[0] === \"+\") start++;\n const unsigned = raw.slice(start);\n if (unsigned === \"inf\" || unsigned === \"nan\") this.#schema(\"SCHEMA_NONFINITE_NUMBER\");\n let base = 10;\n if (unsigned.startsWith(\"0x\")) base = 16;\n else if (unsigned.startsWith(\"0o\")) base = 8;\n else if (unsigned.startsWith(\"0b\")) base = 2;\n if (base !== 10) {\n if (start) this.#syntax();\n let value = 0;\n let previousDigit = false;\n if (raw.length <= 2) this.#syntax();\n for (let index = 2; index < raw.length; index++) {\n const character = raw[index]!;\n if (character === \"_\") { if (!previousDigit || this.#digit(raw[index + 1] ?? \"\", base) < 0) this.#syntax(); previousDigit = false; }\n else {\n const digit = this.#digit(character, base);\n if (digit < 0) this.#syntax();\n if (value > Math.floor((Number.MAX_SAFE_INTEGER - digit) / base)) this.#schema(\"SCHEMA_UNSAFE_INTEGER\");\n value = value * base + digit; previousDigit = true;\n }\n if (index % 256 === 0) { await this.work.charge(256); this.work.assertOpen(); }\n }\n return value;\n }\n let clean = \"\";\n let integerDigits = 0;\n let fractionDigits = 0;\n let exponentDigits = 0;\n let exponentValue = 0;\n let exponentNegative = false;\n let state: \"integer\" | \"fraction\" | \"exponent\" = \"integer\";\n let previousDigit = false;\n let coefficient = \"\";\n for (let index = start; index < raw.length; index++) {\n const character = raw[index]!;\n const digit = this.#digit(character, 10);\n if (digit >= 0) {\n clean += character; previousDigit = true;\n if (state === \"integer\") { integerDigits++; coefficient += character; }\n else if (state === \"fraction\") { fractionDigits++; coefficient += character; }\n else { exponentDigits++; if (exponentValue > 1_147_483_646) this.#schema(\"SCHEMA_DECIMAL_RANGE\"); exponentValue = exponentValue * 10 + digit; }\n } else if (character === \"_\") {\n if (!previousDigit || this.#digit(raw[index + 1] ?? \"\", 10) < 0) this.#syntax();\n previousDigit = false;\n } else if (character === \".\" && state === \"integer\" && previousDigit) {\n state = \"fraction\"; previousDigit = false; clean += character;\n } else if ((character === \"e\" || character === \"E\") && state !== \"exponent\" && previousDigit) {\n state = \"exponent\"; previousDigit = false; clean += \"e\";\n if (raw[index + 1] === \"+\" || raw[index + 1] === \"-\") { exponentNegative = raw[index + 1] === \"-\"; clean += raw[++index]; }\n } else this.#syntax();\n if ((index - start + 1) % 256 === 0) { await this.work.charge(256); this.work.assertOpen(); }\n }\n if (!previousDigit || !integerDigits || integerDigits > 1 && unsigned[0] === \"0\" || state === \"fraction\" && !fractionDigits || state === \"exponent\" && !exponentDigits) this.#syntax();\n const signed = (negative ? \"-\" : \"\") + clean;\n const value = Number(signed);\n if (!Number.isFinite(value)) this.#schema(\"SCHEMA_NONFINITE_NUMBER\");\n if (Number.isInteger(value) && !Number.isSafeInteger(value)) this.#schema(\"SCHEMA_UNSAFE_INTEGER\");\n if (state === \"integer\") return value;\n let exponent = (exponentNegative ? -exponentValue : exponentValue) - fractionDigits;\n if (exponent < -1_147_483_646 || exponent > 999_999_999) this.#schema(\"SCHEMA_DECIMAL_RANGE\");\n let first = 0;\n while (first < coefficient.length - 1 && coefficient[first] === \"0\") {\n first++; if (first % 256 === 0) { await this.work.charge(256); this.work.assertOpen(); }\n }\n let last = coefficient.length;\n while (last > first + 1 && coefficient[last - 1] === \"0\") {\n last--; exponent++; if ((coefficient.length - last) % 256 === 0) { await this.work.charge(256); this.work.assertOpen(); }\n }\n const digits = coefficient.slice(first, last);\n if (digits !== \"0\" && exponent >= 0 && (digits.length + exponent > 16 || !Number.isSafeInteger(Number(`${digits}e${exponent}`)))) this.#schema(\"SCHEMA_UNSAFE_INTEGER\");\n return new Decimal(digits, exponent, negative, signed, value);\n }\n async #date(raw: string): Promise<void> {\n const digits = (offset: number, length: number): number => {\n let value = 0;\n for (let index = offset; index < offset + length; index++) {\n const digit = this.#digit(raw[index] ?? \"\", 10);\n if (digit < 0) this.#syntax();\n value = value * 10 + digit;\n }\n return value;\n };\n let offset = 0;\n const date = raw[4] === \"-\" && raw[7] === \"-\";\n if (date) {\n const year = digits(0, 4), month = digits(5, 2), day = digits(8, 2);\n const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n const days = [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (year < 1 || month < 1 || month > 12 || day < 1 || day > days[month - 1]!) this.#syntax();\n if (raw.length === 10) return;\n if (![\"T\", \"t\", \" \"].includes(raw[10]!)) this.#syntax();\n offset = 11;\n }\n if (raw[offset + 2] !== \":\" || raw[offset + 5] !== \":\" || digits(offset, 2) > 23 || digits(offset + 3, 2) > 59 || digits(offset + 6, 2) > 59) this.#syntax();\n offset += 8;\n if (raw[offset] === \".\") {\n const start = ++offset;\n while (this.#digit(raw[offset] ?? \"\", 10) >= 0) {\n offset++; if ((offset - start) % 256 === 0) { await this.work.charge(256); this.work.assertOpen(); }\n }\n if (offset === start) this.#syntax();\n }\n if (offset === raw.length) return;\n if (!date) this.#syntax();\n if (raw[offset] === \"Z\" || raw[offset] === \"z\") offset++;\n else if (raw[offset] === \"+\" || raw[offset] === \"-\") {\n if (raw[offset + 3] !== \":\" || digits(offset + 1, 2) > 23 || digits(offset + 4, 2) > 59) this.#syntax();\n offset += 6;\n } else this.#syntax();\n if (offset !== raw.length) this.#syntax();\n }\n async parse(): Promise<Json> {\n if (this.source.charCodeAt(0) === 0xfeff) this.#syntax();\n const root = await this.#table(\"root\", 1);\n let current = root;\n while (true) {\n await this.#space(true);\n if (!this.#peek()) break;\n if (this.#peek() === \"[\") current = await this.#header(root);\n else { await this.#assignment(current); await this.#lineEnd(); }\n }\n await this.#flush();\n return root;\n }\n}\n\nexport async function parseTomlDocument(text: string, work: YqOwnedWork, ledger: YqLedger, rawBytes: number): Promise<Json> {\n work.assertOpen();\n ledger.beginDocument(rawBytes);\n return new TomlParser(text, work, ledger).parse();\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["block", "structure", "limit", "text", "bytes", "offset", "remove", "result", "keyBytes", "character", "diagnostic", "source", "limit", "result", "codePoint", "value", "document", "table", "value", "previousDigit", "offset", "documents"]
7
7
  }