@poe-platform/safe-bash 0.1.534 → 0.1.536

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 (123) hide show
  1. package/dist/safe-bash/chunks/chunk-5Y4AEZB2.js +517 -0
  2. package/dist/safe-bash/chunks/chunk-5Y4AEZB2.js.map +7 -0
  3. package/dist/safe-bash/chunks/{chunk-IKATLB4I.js → chunk-AVXYPKV7.js} +7 -5
  4. package/dist/safe-bash/chunks/{chunk-IKATLB4I.js.map → chunk-AVXYPKV7.js.map} +1 -1
  5. package/dist/safe-bash/chunks/chunk-FRSZDCZA.js +1236 -0
  6. package/dist/safe-bash/chunks/chunk-FRSZDCZA.js.map +7 -0
  7. package/dist/safe-bash/chunks/{chunk-LUJYX5H5.js → chunk-L2GZSOSJ.js} +245 -747
  8. package/dist/safe-bash/chunks/chunk-L2GZSOSJ.js.map +7 -0
  9. package/dist/safe-bash/chunks/{chunk-54Z5EUCW.js → chunk-M7KZ7V4P.js} +2 -2
  10. package/dist/safe-bash/chunks/{chunk-UGMUVHIY.js → chunk-NVUC5B2R.js} +10 -188
  11. package/dist/safe-bash/chunks/{chunk-UGMUVHIY.js.map → chunk-NVUC5B2R.js.map} +3 -3
  12. package/dist/safe-bash/chunks/{chunk-2GV4WO7O.js → chunk-PPVCI2F2.js} +2 -2
  13. package/dist/safe-bash/chunks/chunk-QY2XHZTE.js +192 -0
  14. package/dist/safe-bash/chunks/chunk-QY2XHZTE.js.map +7 -0
  15. package/dist/safe-bash/chunks/{chunk-6MHYEBAJ.js → chunk-UZELUFGF.js} +8 -6
  16. package/dist/safe-bash/chunks/{chunk-6MHYEBAJ.js.map → chunk-UZELUFGF.js.map} +1 -1
  17. package/dist/safe-bash/chunks/chunk-XROAIPKA.js +12095 -0
  18. package/dist/safe-bash/chunks/chunk-XROAIPKA.js.map +7 -0
  19. package/dist/safe-bash/commands/csplit/command.d.ts +6 -0
  20. package/dist/safe-bash/commands/csplit/command.d.ts.map +1 -0
  21. package/dist/safe-bash/commands/csplit/command.js +78 -0
  22. package/dist/safe-bash/commands/csplit/command.js.map +1 -0
  23. package/dist/safe-bash/commands/csplit/index.browser.js +14 -0
  24. package/dist/safe-bash/commands/csplit/index.browser.js.map +7 -0
  25. package/dist/safe-bash/commands/csplit/index.d.ts +7 -0
  26. package/dist/safe-bash/commands/csplit/index.d.ts.map +1 -0
  27. package/dist/safe-bash/commands/csplit/index.js +21 -0
  28. package/dist/safe-bash/commands/csplit/index.js.map +1 -0
  29. package/dist/safe-bash/commands/csplit/internal.d.ts +61 -0
  30. package/dist/safe-bash/commands/csplit/internal.d.ts.map +1 -0
  31. package/dist/safe-bash/commands/csplit/internal.js +147 -0
  32. package/dist/safe-bash/commands/csplit/internal.js.map +1 -0
  33. package/dist/safe-bash/commands/csplit/io.d.ts +52 -0
  34. package/dist/safe-bash/commands/csplit/io.d.ts.map +1 -0
  35. package/dist/safe-bash/commands/csplit/io.js +330 -0
  36. package/dist/safe-bash/commands/csplit/io.js.map +1 -0
  37. package/dist/safe-bash/commands/csplit/options.d.ts +16 -0
  38. package/dist/safe-bash/commands/csplit/options.d.ts.map +1 -0
  39. package/dist/safe-bash/commands/csplit/options.js +178 -0
  40. package/dist/safe-bash/commands/csplit/options.js.map +1 -0
  41. package/dist/safe-bash/commands/csplit/patterns.d.ts +19 -0
  42. package/dist/safe-bash/commands/csplit/patterns.d.ts.map +1 -0
  43. package/dist/safe-bash/commands/csplit/patterns.js +92 -0
  44. package/dist/safe-bash/commands/csplit/patterns.js.map +1 -0
  45. package/dist/safe-bash/commands/csplit/quoting.d.ts +2 -0
  46. package/dist/safe-bash/commands/csplit/quoting.d.ts.map +1 -0
  47. package/dist/safe-bash/commands/csplit/quoting.js +138 -0
  48. package/dist/safe-bash/commands/csplit/quoting.js.map +1 -0
  49. package/dist/safe-bash/commands/csplit/split.d.ts +18 -0
  50. package/dist/safe-bash/commands/csplit/split.d.ts.map +1 -0
  51. package/dist/safe-bash/commands/csplit/split.js +122 -0
  52. package/dist/safe-bash/commands/csplit/split.js.map +1 -0
  53. package/dist/safe-bash/commands/expr/bre-engine.d.ts +4 -1
  54. package/dist/safe-bash/commands/expr/bre-engine.d.ts.map +1 -1
  55. package/dist/safe-bash/commands/expr/bre-engine.js +724 -13
  56. package/dist/safe-bash/commands/expr/bre-engine.js.map +1 -1
  57. package/dist/safe-bash/commands/expr/bre-worker.d.ts +2 -1
  58. package/dist/safe-bash/commands/expr/bre-worker.d.ts.map +1 -1
  59. package/dist/safe-bash/commands/expr/bre-worker.js +10 -1
  60. package/dist/safe-bash/commands/expr/bre-worker.js.map +1 -1
  61. package/dist/safe-bash/commands/network/index.browser.js +5 -3
  62. package/dist/safe-bash/commands/pr/command.d.ts +4 -0
  63. package/dist/safe-bash/commands/pr/command.d.ts.map +1 -0
  64. package/dist/safe-bash/commands/pr/command.js +117 -0
  65. package/dist/safe-bash/commands/pr/command.js.map +1 -0
  66. package/dist/safe-bash/commands/pr/format.d.ts +52 -0
  67. package/dist/safe-bash/commands/pr/format.d.ts.map +1 -0
  68. package/dist/safe-bash/commands/pr/format.js +527 -0
  69. package/dist/safe-bash/commands/pr/format.js.map +1 -0
  70. package/dist/safe-bash/commands/pr/index.browser.js +13 -0
  71. package/dist/safe-bash/commands/pr/index.browser.js.map +7 -0
  72. package/dist/safe-bash/commands/pr/index.d.ts +7 -0
  73. package/dist/safe-bash/commands/pr/index.d.ts.map +1 -0
  74. package/dist/safe-bash/commands/pr/index.js +13 -0
  75. package/dist/safe-bash/commands/pr/index.js.map +1 -0
  76. package/dist/safe-bash/commands/pr/internal.d.ts +61 -0
  77. package/dist/safe-bash/commands/pr/internal.d.ts.map +1 -0
  78. package/dist/safe-bash/commands/pr/internal.js +181 -0
  79. package/dist/safe-bash/commands/pr/internal.js.map +1 -0
  80. package/dist/safe-bash/commands/pr/io.d.ts +37 -0
  81. package/dist/safe-bash/commands/pr/io.d.ts.map +1 -0
  82. package/dist/safe-bash/commands/pr/io.js +210 -0
  83. package/dist/safe-bash/commands/pr/io.js.map +1 -0
  84. package/dist/safe-bash/commands/pr/options.d.ts +36 -0
  85. package/dist/safe-bash/commands/pr/options.d.ts.map +1 -0
  86. package/dist/safe-bash/commands/pr/options.js +250 -0
  87. package/dist/safe-bash/commands/pr/options.js.map +1 -0
  88. package/dist/safe-bash/commands/regex-execution/bounded-provider.d.ts.map +1 -1
  89. package/dist/safe-bash/commands/regex-execution/bounded-provider.js +16 -5
  90. package/dist/safe-bash/commands/regex-execution/bounded-provider.js.map +1 -1
  91. package/dist/safe-bash/commands/regex-execution/portable.d.ts +3 -1
  92. package/dist/safe-bash/commands/regex-execution/portable.d.ts.map +1 -1
  93. package/dist/safe-bash/commands/regex-execution/portable.js +17 -4
  94. package/dist/safe-bash/commands/regex-execution/portable.js.map +1 -1
  95. package/dist/safe-bash/commands/regex-execution/protocol.d.ts +31 -0
  96. package/dist/safe-bash/commands/regex-execution/protocol.d.ts.map +1 -1
  97. package/dist/safe-bash/commands/regex-execution/protocol.js +83 -0
  98. package/dist/safe-bash/commands/regex-execution/protocol.js.map +1 -1
  99. package/dist/safe-bash/commands/regex-execution/provider.d.ts +2 -2
  100. package/dist/safe-bash/commands/regex-execution/provider.d.ts.map +1 -1
  101. package/dist/safe-bash/commands/regex-execution/worker.js +16 -2
  102. package/dist/safe-bash/commands/regex-execution/worker.js.map +1 -1
  103. package/dist/safe-bash/commands/xml/index.browser.js +4 -3
  104. package/dist/safe-bash/commands/yq/index.browser.js +5 -4
  105. package/dist/safe-bash/core.browser.js +1953 -4081
  106. package/dist/safe-bash/core.browser.js.map +4 -4
  107. package/dist/safe-bash/core.d.ts +2 -0
  108. package/dist/safe-bash/core.d.ts.map +1 -1
  109. package/dist/safe-bash/core.js +2 -0
  110. package/dist/safe-bash/core.js.map +1 -1
  111. package/dist/safe-bash/plugins/composition.d.ts +5 -0
  112. package/dist/safe-bash/plugins/composition.d.ts.map +1 -1
  113. package/dist/safe-bash/plugins/composition.js +7 -1
  114. package/dist/safe-bash/plugins/composition.js.map +1 -1
  115. package/dist/safe-bash/plugins/index.js +1 -1
  116. package/dist/safe-bash/plugins/index.js.map +1 -1
  117. package/dist/safe-bash/shell/runtime.d.ts.map +1 -1
  118. package/dist/safe-bash/shell/runtime.js +28 -3
  119. package/dist/safe-bash/shell/runtime.js.map +1 -1
  120. package/package.json +14 -2
  121. package/dist/safe-bash/chunks/chunk-LUJYX5H5.js.map +0 -7
  122. /package/dist/safe-bash/chunks/{chunk-54Z5EUCW.js.map → chunk-M7KZ7V4P.js.map} +0 -0
  123. /package/dist/safe-bash/chunks/{chunk-2GV4WO7O.js.map → chunk-PPVCI2F2.js.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/xml/index.ts", "../../src/commands/xml/limits.ts", "../../src/commands/xml/query.ts", "../../src/commands/xml/evaluate.ts"],
4
4
  "sourcesContent": ["import { parseXmlSteps, XmlLimitError } from \"poe-code/safe-fs/core\";\nimport { FsError, getCommandArguments, readBytes, toByteSource, writeBytes, type ByteSource, type CommandContext, type CommandDefinition, type VirtualShellPlugin } from \"../../contracts/index.js\";\nimport { shellValueByteLength } from \"../../contracts/value.js\";\nimport { writeDiagnostic } from \"../../escaping.js\";\nimport { pathOf } from \"../internal.js\";\nimport { interruptible } from \"../structured/limits.js\";\nimport { XmlBudget, XmlQueryError, XmlQueryLimitError, resolveXmlQueryLimits, type XmlCommandsOptions, type XmlQueryLimits } from \"./limits.js\";\nimport { parseQuery, type Query } from \"./query.js\";\nimport { evaluate, serialize, stringValue } from \"./evaluate.js\";\n\nexport { defaultXmlQueryLimits } from \"./limits.js\";\nexport type { XmlCommandsOptions, XmlQueryLimits } from \"./limits.js\";\n\nasync function argumentsFor(context: CommandContext, budget: XmlBudget): Promise<{ query: Query; file: string | undefined }> {\n if (context.args.length > 5) throw new XmlQueryError(\"expected one XML input FILE or -\", 2);\n const carrier = getCommandArguments(context);\n const args = carrier.args;\n async function admitted(position: number, limit: \"maxSourceBytes\" | \"maxInputBytes\"): Promise<string> {\n const text = args[position]!;\n if (text.length > budget.limits[limit]) throw new XmlQueryLimitError(limit);\n const size = shellValueByteLength(carrier.values[position]!);\n if (size > budget.limits[limit]) throw new XmlQueryLimitError(limit);\n for (let offset = 0; offset < size; offset += 1024) await budget.tick(Math.min(1024, size - offset));\n let decoded: string;\n try { decoded = new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true }).decode(carrier.bytes(position)); }\n catch { throw new XmlQueryError(\"XPath and filenames require valid UTF-8\", 2); }\n if (decoded !== text) throw new XmlQueryError(\"XPath and filenames require lossless UTF-8\", 2);\n return decoded;\n }\n let index = 0;\n if (context.command === \"xmllint\") {\n if (args[index++] !== \"--xpath\") throw new XmlQueryError(\"expected --xpath QUERY [FILE|-]\", 2);\n }\n if (args[index] === \"--\") index++;\n const sourceIndex = index++;\n const source = args[sourceIndex];\n if (source === undefined || source.startsWith(\"-\")) throw new XmlQueryError(\"expected QUERY [FILE|-]\", 2);\n if (args[index] === \"--\") index++;\n const fileIndex = index++;\n const file = args[fileIndex];\n if (index < args.length || file !== undefined && file.startsWith(\"-\") && file !== \"-\") throw new XmlQueryError(\"expected one XML input FILE or -\", 2);\n const query = await parseQuery(await admitted(sourceIndex, \"maxSourceBytes\"), budget);\n return { query, file: file === undefined ? undefined : await admitted(fileIndex, \"maxInputBytes\") };\n}\n\nasync function input(context: CommandContext, file: string | undefined, budget: XmlBudget): Promise<string> {\n let source: ByteSource = context.stdin;\n if (file !== undefined && file !== \"-\") {\n const path = pathOf(context, file);\n const capabilities = context.fs.capabilitiesFor\n ? await interruptible(() => context.fs.capabilitiesFor!(path, { signal: context.signal }), context.signal)\n : context.fs.capabilities;\n context.signal.throwIfAborted();\n if (context.fs.readStream && capabilities.streamingRead !== false) source = context.fs.readStream(path, { signal: context.signal });\n else {\n try { source = toByteSource(await interruptible(() => context.fs.readFile(path, { signal: context.signal, maxBytes: budget.limits.maxInputBytes }), context.signal)); }\n catch (error) {\n context.signal.throwIfAborted();\n if (error instanceof FsError && error.code === \"EFBIG\") throw new XmlQueryLimitError(\"maxInputBytes\");\n throw error;\n }\n }\n }\n const parts: string[] = [];\n let size = 0;\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n for await (const chunk of readBytes(source, context.signal)) {\n await budget.tick();\n size += chunk.byteLength;\n if (size > budget.limits.maxInputBytes) throw new XmlQueryLimitError(\"maxInputBytes\");\n // Decode before requesting another chunk; a producer may reuse its backing bytes.\n for (let offset = 0; offset < chunk.length; offset += 4096) {\n await budget.tick(Math.min(4096, chunk.length - offset));\n try { parts.push(decoder.decode(chunk.subarray(offset, offset + 4096), { stream: true })); }\n catch { throw new XmlQueryError(\"XML input must be UTF-8\", 1); }\n }\n }\n try { parts.push(decoder.decode()); }\n catch { throw new XmlQueryError(\"XML input must be UTF-8\", 1); }\n return parts.join(\"\");\n}\n\nasync function execute(context: CommandContext, limits: XmlQueryLimits): Promise<{ exitCode: number }> {\n const budget = new XmlBudget(limits, context.signal);\n let outputFailed = false;\n try {\n const options = await argumentsFor(context, budget);\n const source = await input(context, options.file, budget);\n const parser = parseXmlSteps(source, { ...limits, maxContentNodes: limits.maxNodes, expectedEncoding: \"UTF-8\" });\n let parsed = parser.next();\n try {\n while (!parsed.done) { await budget.tick(parsed.value); parsed = parser.next(); }\n } finally { if (!parsed.done) parser.return(undefined as never); }\n const nodes = await evaluate(options.query, parsed.value, budget);\n async function write(part: string): Promise<void> {\n for (let offset = 0; offset < part.length;) {\n let end = Math.min(offset + 4096, part.length);\n if (end < part.length && part.charCodeAt(end - 1) >= 0xd800 && part.charCodeAt(end - 1) <= 0xdbff) end--;\n await budget.tick(end - offset);\n const slice = part.slice(offset, end);\n const size = Buffer.byteLength(slice);\n if (size > limits.maxOutputBytes - budget.outputBytes) throw new XmlQueryLimitError(\"maxOutputBytes\");\n budget.outputBytes += size;\n try { await writeBytes(context.stdout, Buffer.from(slice), context.signal); }\n catch (error) { outputFailed = true; throw error; }\n offset = end;\n }\n }\n if (options.query.scalar === \"count\") await write(String(nodes.length));\n else if (options.query.scalar === \"boolean\") await write(nodes.length ? \"true\" : \"false\");\n else if (options.query.scalar === \"string\") {\n for await (const part of stringValue(nodes[0], budget)) await write(part);\n } else {\n if (!nodes.length) throw new XmlQueryError(\"XPath set is empty\", 11);\n for (const node of nodes) {\n for await (const part of serialize(node, budget)) await write(part);\n await write(\"\\n\");\n }\n return { exitCode: 0 };\n }\n await write(\"\\n\");\n return { exitCode: 0 };\n } catch (error) {\n context.signal.throwIfAborted();\n if (outputFailed || error instanceof FsError && error.code === \"EPIPE\") throw error;\n const status = error instanceof XmlQueryError ? error.status : error instanceof XmlLimitError ? 5\n : error instanceof SyntaxError || error instanceof FsError ? 1 : undefined;\n if (status === undefined) throw error;\n const message = error instanceof Error ? error.message.slice(0, 1000) : \"XML query failed\";\n await writeDiagnostic(context.stderr, `${context.command}: ${message}\\n`, context.signal);\n return { exitCode: status };\n }\n}\n\nexport function createXmlCommands(options: XmlCommandsOptions = {}): readonly CommandDefinition[] {\n const limits = resolveXmlQueryLimits(options.limits);\n return [\"xq\", \"xmllint\"].map(name => ({ name, execute: context => execute(context, limits) }));\n}\nexport function xmlCommands(options: XmlCommandsOptions = {}): VirtualShellPlugin {\n const definitions = createXmlCommands(options);\n const replace = options.replace ?? false;\n return { name: \"xml-commands\", 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 });\n } };\n}\n", "import { yieldTurn } from \"../../contracts/yield.js\";\n\nexport interface XmlQueryLimits {\n readonly maxInputBytes: number;\n readonly maxOutputBytes: number;\n readonly maxSourceBytes: number;\n readonly maxDepth: number;\n readonly maxNodes: number;\n readonly maxAttributes: number;\n readonly maxAttributesPerElement: number;\n readonly maxNamespaces: number;\n readonly maxSteps: number;\n readonly maxResults: number;\n}\nexport interface XmlCommandsOptions {\n readonly replace?: boolean;\n readonly limits?: Partial<XmlQueryLimits>;\n}\nexport const defaultXmlQueryLimits: Readonly<XmlQueryLimits> = Object.freeze({\n maxInputBytes: 8 * 1024 * 1024, maxOutputBytes: 8 * 1024 * 1024,\n maxSourceBytes: 64 * 1024, maxDepth: 64, maxNodes: 100_000,\n maxAttributes: 10_000, maxAttributesPerElement: 128,\n maxNamespaces: 256, maxSteps: 1_000_000, maxResults: 100_000,\n});\nexport class XmlQueryError extends Error {\n constructor(message: string, readonly status: number) { super(message); }\n}\nexport class XmlQueryLimitError extends XmlQueryError {\n constructor(name: keyof XmlQueryLimits) { super(`${name} limit exceeded`, 5); }\n}\nexport function resolveXmlQueryLimits(options: Partial<XmlQueryLimits> = {}): XmlQueryLimits {\n const limits = { ...defaultXmlQueryLimits, ...options };\n for (const [name, value] of Object.entries(limits)) {\n if (!Object.hasOwn(defaultXmlQueryLimits, name) || !Number.isSafeInteger(value) || value < 1) {\n throw new RangeError(`${name} must be a positive safe integer XML limit`);\n }\n }\n if (limits.maxDepth > 256) throw new RangeError(\"maxDepth must be <=256\");\n return Object.freeze(limits);\n}\nexport class XmlBudget {\n private steps = 0;\n private checkpoint = 0;\n outputBytes = 0;\n constructor(readonly limits: XmlQueryLimits, readonly signal: AbortSignal) {}\n async tick(work = 1): Promise<void> {\n this.signal.throwIfAborted();\n this.steps += work;\n if (this.steps > this.limits.maxSteps) throw new XmlQueryLimitError(\"maxSteps\");\n this.checkpoint += work;\n if (this.checkpoint >= 1024) {\n this.checkpoint = 0;\n await yieldTurn(this.signal);\n }\n }\n results(size: number): void {\n if (size > this.limits.maxResults) throw new XmlQueryLimitError(\"maxResults\");\n }\n}\n", "import { XmlBudget, XmlQueryError, XmlQueryLimitError } from \"./limits.js\";\n\nexport type Predicate = { kind: \"position\"; value: number } | { kind: \"attribute\"; name: string; value: string };\nexport interface QueryStep {\n readonly descendant: boolean;\n readonly kind: \"element\" | \"attribute\" | \"text\";\n readonly name: string;\n readonly predicates: readonly Predicate[];\n}\nexport interface Query {\n readonly scalar: \"string\" | \"count\" | \"boolean\" | undefined;\n readonly steps: readonly QueryStep[];\n}\nconst nameStart = (character: string): boolean => character >= \"a\" && character <= \"z\" || character >= \"A\" && character <= \"Z\" || character === \"_\";\nconst namePart = (character: string): boolean => nameStart(character) || character >= \"0\" && character <= \"9\" || character === \"-\" || character === \".\";\n\nexport async function parseQuery(source: string, budget: XmlBudget): Promise<Query> {\n if (source.length > budget.limits.maxSourceBytes || Buffer.byteLength(source) > budget.limits.maxSourceBytes) throw new XmlQueryLimitError(\"maxSourceBytes\");\n // Admit every character before token operations; the grammar itself has no recursion.\n for (let offset = 0; offset < source.length; offset += 256) await budget.tick(Math.min(256, source.length - offset));\n let at = 0;\n const fail = (): never => { throw new XmlQueryError(`unsupported XPath syntax at offset ${at}`, 10); };\n const space = (): void => { while (source[at] === \" \" || source[at] === \"\\t\" || source[at] === \"\\r\" || source[at] === \"\\n\") at++; };\n const expect = (value: string): void => { space(); if (!source.startsWith(value, at)) fail(); at += value.length; };\n const name = (): string => {\n space(); const start = at;\n if (!nameStart(source[at] ?? \"\")) fail();\n while (namePart(source[at] ?? \"\")) at++;\n if (source[at] === \":\") fail();\n return source.slice(start, at);\n };\n space();\n let scalar: Query[\"scalar\"];\n if (source[at] !== \"/\") {\n const value = name();\n if (value !== \"string\" && value !== \"count\" && value !== \"boolean\") fail();\n scalar = value as Query[\"scalar\"];\n expect(\"(\");\n }\n const steps: QueryStep[] = [];\n space();\n while (source[at] === \"/\") {\n at++;\n const descendant = source[at] === \"/\";\n if (descendant) at++;\n space();\n let kind: QueryStep[\"kind\"] = \"element\";\n if (source[at] === \"@\") { kind = \"attribute\"; at++; }\n let selected: string;\n if (source[at] === \"*\") { selected = \"*\"; at++; }\n else {\n selected = name();\n space();\n if (source[at] === \"(\") {\n if (selected !== \"text\" || kind !== \"element\") fail();\n expect(\"(\"); expect(\")\"); kind = \"text\";\n }\n }\n const predicates: Predicate[] = [];\n space();\n while (source[at] === \"[\") {\n at++; space();\n if (source[at] === \"@\") {\n at++; const attribute = name(); expect(\"=\"); space();\n const quote = source[at++];\n if (quote !== \"'\" && quote !== '\"') fail();\n const start = at;\n while (at < source.length && source[at] !== quote) at++;\n if (at === source.length) fail();\n predicates.push({ kind: \"attribute\", name: attribute, value: source.slice(start, at++) });\n } else {\n const start = at;\n while ((source[at] ?? \"\") >= \"0\" && (source[at] ?? \"\") <= \"9\") at++;\n const value = Number(source.slice(start, at));\n if (start === at || !Number.isSafeInteger(value) || value < 1) fail();\n predicates.push({ kind: \"position\", value });\n }\n expect(\"]\"); space();\n }\n steps.push({ descendant, kind, name: selected, predicates });\n if (kind !== \"element\" && source[at] === \"/\") fail();\n await budget.tick();\n }\n if (!steps.length) fail();\n if (scalar !== undefined) expect(\")\");\n space();\n if (at !== source.length) fail();\n return { scalar, steps };\n}\n", "import type { XmlAttribute, XmlContent, XmlElement } from \"poe-code/safe-fs/core\";\nimport type { Query, QueryStep } from \"./query.js\";\nimport { XmlBudget } from \"./limits.js\";\n\ntype Container = { kind: \"document\"; children: Node[] } | ElementNode;\ninterface ElementNode { kind: \"element\"; value: XmlElement; children: Node[]; attributes: AttributeNode[] }\ninterface AttributeNode { kind: \"attribute\"; value: XmlAttribute }\ninterface ContentNode { kind: Exclude<XmlContent[\"kind\"], \"element\">; value: Exclude<XmlContent, XmlElement> }\nexport type Node = Container | AttributeNode | ContentNode;\nconst xmlns = \"http://www.w3.org/2000/xmlns/\";\n\nasync function indexTree(root: XmlElement, budget: XmlBudget): Promise<{ document: Container; order: Node[] }> {\n const document: Container = { kind: \"document\", children: [] };\n const order: Node[] = [document];\n const pending: { parent: Container; content: XmlContent }[] = [{ parent: document, content: root }];\n while (pending.length) {\n await budget.tick();\n const { parent, content } = pending.pop()!;\n if (content.kind === \"element\") {\n const node: ElementNode = { kind: \"element\", value: content, children: [], attributes: [] };\n parent.children.push(node); order.push(node);\n for (const attribute of content.attributes) {\n await budget.tick();\n if (attribute.namespace === xmlns) continue;\n const selected: AttributeNode = { kind: \"attribute\", value: attribute };\n node.attributes.push(selected); order.push(selected);\n }\n for (let index = content.content.length - 1; index >= 0; index--) {\n await budget.tick(); pending.push({ parent: node, content: content.content[index]! });\n }\n } else {\n const node: ContentNode = { kind: content.kind, value: content };\n parent.children.push(node); order.push(node);\n }\n }\n return { document, order };\n}\n\nfunction matches(node: Node, step: QueryStep): boolean {\n if (step.kind === \"text\") return node.kind === \"text\" || node.kind === \"cdata\";\n if (node.kind !== step.kind) return false;\n if (node.kind === \"element\" || node.kind === \"attribute\") {\n return step.name === \"*\" || node.value.namespace === \"\" && node.value.localName === step.name;\n }\n return false;\n}\n\nexport async function evaluate(query: Query, root: XmlElement, budget: XmlBudget): Promise<Node[]> {\n const { document, order } = await indexTree(root, budget);\n let contexts: Node[] = [document];\n for (const step of query.steps) {\n const parents = new Set<Node>();\n const pending = [...contexts];\n while (pending.length) {\n await budget.tick();\n const node = pending.pop()!;\n if (parents.has(node)) continue;\n parents.add(node);\n if (step.descendant && (node.kind === \"document\" || node.kind === \"element\")) {\n for (const child of node.children) { await budget.tick(); pending.push(child); }\n }\n }\n const selected = new Set<Node>();\n for (const parent of parents) {\n await budget.tick();\n const candidates = step.kind === \"attribute\"\n ? parent.kind === \"element\" ? parent.attributes : []\n : parent.kind === \"element\" || parent.kind === \"document\" ? parent.children : [];\n let matched: Node[] = [];\n for (const candidate of candidates) {\n await budget.tick();\n if (matches(candidate, step)) matched.push(candidate);\n }\n for (const predicate of step.predicates) {\n await budget.tick();\n if (predicate.kind === \"position\") matched = matched[predicate.value - 1] ? [matched[predicate.value - 1]!] : [];\n else {\n const filtered: Node[] = [];\n for (const candidate of matched) {\n await budget.tick();\n if (candidate.kind !== \"element\") continue;\n for (const attribute of candidate.attributes) {\n await budget.tick(attribute.value.value.length + 1);\n if (attribute.value.namespace === \"\" && attribute.value.localName === predicate.name && attribute.value.value === predicate.value) {\n filtered.push(candidate); break;\n }\n }\n }\n matched = filtered;\n }\n }\n for (const node of matched) { await budget.tick(); if (!selected.has(node)) { budget.results(selected.size + 1); selected.add(node); } }\n }\n contexts = [];\n for (const node of order) { await budget.tick(); if (selected.has(node)) contexts.push(node); }\n }\n return contexts;\n}\n\nexport async function* stringValue(node: Node | undefined, budget: XmlBudget): AsyncGenerator<string> {\n if (node === undefined) return;\n if (node.kind === \"attribute\") { yield node.value.value; return; }\n const pending: Node[] = [node];\n while (pending.length) {\n await budget.tick();\n const current = pending.pop()!;\n if (current.kind === \"element\" || current.kind === \"document\") {\n for (let index = current.children.length - 1; index >= 0; index--) {\n await budget.tick(); pending.push(current.children[index]!);\n }\n } else if (current.kind === \"text\" || current.kind === \"cdata\") yield current.value.text;\n }\n}\n\nexport async function* serialize(node: Node, budget: XmlBudget): AsyncGenerator<string> {\n if (node.kind === \"attribute\") {\n yield ` ${node.value.name}=\"`; yield* escape(node.value.value, true, budget); yield '\"'; return;\n }\n if (node.kind === \"document\") return;\n const pending: (XmlContent | string)[] = [node.value];\n while (pending.length) {\n await budget.tick();\n const current = pending.pop()!;\n if (typeof current === \"string\") { yield current; continue; }\n if (current.kind === \"element\") {\n yield `<${current.name}`;\n for (const attribute of current.attributes) {\n await budget.tick(); yield ` ${attribute.name}=\"`; yield* escape(attribute.value, true, budget); yield '\"';\n }\n if (!current.content.length) yield \"/>\";\n else {\n yield \">\"; pending.push(`</${current.name}>`);\n for (let index = current.content.length - 1; index >= 0; index--) {\n await budget.tick(); pending.push(current.content[index]!);\n }\n }\n } else if (current.kind === \"text\") yield* escape(current.text, false, budget);\n else if (current.kind === \"cdata\") { yield \"<![CDATA[\"; yield current.text; yield \"]]>\"; }\n else if (current.kind === \"comment\") { yield \"<!--\"; yield current.text; yield \"-->\"; }\n else if (current.kind === \"processing-instruction\") { yield `<?${current.target}`; if (current.text) { yield \" \"; yield current.text; } yield \"?>\"; }\n }\n}\n\nasync function* escape(value: string, attribute: boolean, budget: XmlBudget): AsyncGenerator<string> {\n let part = \"\";\n for (const character of value) {\n await budget.tick();\n part += character === \"&\" ? \"&amp;\" : character === \"<\" ? \"&lt;\" : character === \">\" ? \"&gt;\"\n : attribute && character === '\"' ? \"&quot;\" : attribute && character === \"\\n\" ? \"&#10;\"\n : character === \"\\r\" ? \"&#13;\" : attribute && character === \"\\t\" ? \"&#9;\" : character;\n if (part.length >= 4096) { yield part; part = \"\"; }\n }\n if (part) yield part;\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }