gray-matter-es 0.0.0

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 (76) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -0
  3. package/dist/defaults.mjs +19 -0
  4. package/dist/defaults.mjs.map +1 -0
  5. package/dist/engines.d.mts +8 -0
  6. package/dist/engines.mjs +63 -0
  7. package/dist/engines.mjs.map +1 -0
  8. package/dist/excerpt.mjs +26 -0
  9. package/dist/excerpt.mjs.map +1 -0
  10. package/dist/index.d.mts +12 -0
  11. package/dist/index.mjs +126 -0
  12. package/dist/index.mjs.map +1 -0
  13. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_chars.mjs +45 -0
  14. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_chars.mjs.map +1 -0
  15. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_dumper_state.mjs +437 -0
  16. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_dumper_state.mjs.map +1 -0
  17. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_loader_state.mjs +909 -0
  18. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_loader_state.mjs.map +1 -0
  19. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_schema.mjs +115 -0
  20. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_schema.mjs.map +1 -0
  21. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/binary.mjs +89 -0
  22. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/binary.mjs.map +1 -0
  23. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/bool.mjs +35 -0
  24. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/bool.mjs.map +1 -0
  25. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/float.mjs +55 -0
  26. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/float.mjs.map +1 -0
  27. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/int.mjs +114 -0
  28. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/int.mjs.map +1 -0
  29. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/map.mjs +15 -0
  30. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/map.mjs.map +1 -0
  31. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/merge.mjs +11 -0
  32. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/merge.mjs.map +1 -0
  33. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/nil.mjs +20 -0
  34. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/nil.mjs.map +1 -0
  35. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/omap.mjs +28 -0
  36. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/omap.mjs.map +1 -0
  37. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/pairs.mjs +19 -0
  38. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/pairs.mjs.map +1 -0
  39. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/regexp.mjs +26 -0
  40. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/regexp.mjs.map +1 -0
  41. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/seq.mjs +11 -0
  42. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/seq.mjs.map +1 -0
  43. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/set.mjs +14 -0
  44. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/set.mjs.map +1 -0
  45. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/str.mjs +11 -0
  46. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/str.mjs.map +1 -0
  47. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/timestamp.mjs +54 -0
  48. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/timestamp.mjs.map +1 -0
  49. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/undefined.mjs +19 -0
  50. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/undefined.mjs.map +1 -0
  51. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_utils.mjs +14 -0
  52. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/_utils.mjs.map +1 -0
  53. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/mod.mjs +4 -0
  54. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/parse.mjs +50 -0
  55. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/parse.mjs.map +1 -0
  56. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/stringify.mjs +32 -0
  57. package/dist/node_modules/.pnpm/@jsr_std__yaml@1.0.10/node_modules/@jsr/std__yaml/stringify.mjs.map +1 -0
  58. package/dist/parse.mjs +13 -0
  59. package/dist/parse.mjs.map +1 -0
  60. package/dist/stringify.mjs +52 -0
  61. package/dist/stringify.mjs.map +1 -0
  62. package/dist/to-file.mjs +44 -0
  63. package/dist/to-file.mjs.map +1 -0
  64. package/dist/types.d.mts +85 -0
  65. package/dist/utils.mjs +60 -0
  66. package/dist/utils.mjs.map +1 -0
  67. package/package.json +61 -0
  68. package/src/defaults.ts +17 -0
  69. package/src/engines.ts +217 -0
  70. package/src/excerpt.ts +146 -0
  71. package/src/index.ts +481 -0
  72. package/src/parse.ts +9 -0
  73. package/src/stringify.ts +187 -0
  74. package/src/to-file.ts +178 -0
  75. package/src/types.ts +84 -0
  76. package/src/utils.ts +158 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_loader_state.mjs","names":["#createError"],"sources":["../../../../../../../node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_loader_state.js"],"sourcesContent":["// Ported from js-yaml v3.13.1:\n// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da\n// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.\n// Copyright 2018-2025 the Deno authors. MIT license.\nimport { AMPERSAND, ASTERISK, BACKSLASH, CARRIAGE_RETURN, COLON, COMMA, COMMERCIAL_AT, DOT, DOUBLE_QUOTE, EXCLAMATION, GRAVE_ACCENT, GREATER_THAN, isEOL, isFlowIndicator, isWhiteSpace, isWhiteSpaceOrEOL, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LINE_FEED, MINUS, PERCENT, PLUS, QUESTION, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SHARP, SINGLE_QUOTE, SMALLER_THAN, SPACE, VERTICAL_LINE } from \"./_chars.js\";\nimport { DEFAULT_SCHEMA } from \"./_schema.js\";\nimport { isObject, isPlainObject } from \"./_utils.js\";\nconst CONTEXT_FLOW_IN = 1;\nconst CONTEXT_FLOW_OUT = 2;\nconst CONTEXT_BLOCK_IN = 3;\nconst CONTEXT_BLOCK_OUT = 4;\nconst CHOMPING_CLIP = 1;\nconst CHOMPING_STRIP = 2;\nconst CHOMPING_KEEP = 3;\nconst PATTERN_NON_PRINTABLE = // deno-lint-ignore no-control-regex\n/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nconst PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nconst PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nconst PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nconst PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\nconst ESCAPED_HEX_LENGTHS = new Map([\n [\n 0x78,\n 2\n ],\n [\n 0x75,\n 4\n ],\n [\n 0x55,\n 8\n ]\n]);\nconst SIMPLE_ESCAPE_SEQUENCES = new Map([\n [\n 0x30,\n \"\\x00\"\n ],\n [\n 0x61,\n \"\\x07\"\n ],\n [\n 0x62,\n \"\\x08\"\n ],\n [\n 0x74,\n \"\\x09\"\n ],\n [\n 0x09,\n \"\\x09\"\n ],\n [\n 0x6e,\n \"\\x0A\"\n ],\n [\n 0x76,\n \"\\x0B\"\n ],\n [\n 0x66,\n \"\\x0C\"\n ],\n [\n 0x72,\n \"\\x0D\"\n ],\n [\n 0x65,\n \"\\x1B\"\n ],\n [\n 0x20,\n \" \"\n ],\n [\n 0x22,\n '\"'\n ],\n [\n 0x2f,\n \"/\"\n ],\n [\n 0x5c,\n \"\\\\\"\n ],\n [\n 0x4e,\n \"\\x85\"\n ],\n [\n 0x5f,\n \"\\xA0\"\n ],\n [\n 0x4c,\n \"\\u2028\"\n ],\n [\n 0x50,\n \"\\u2029\"\n ]\n]);\n/**\n * Converts a hexadecimal character code to its decimal value.\n */ function hexCharCodeToNumber(charCode) {\n // Check if the character code is in the range for '0' to '9'\n if (0x30 <= charCode && charCode <= 0x39) return charCode - 0x30; // Convert '0'-'9' to 0-9\n // Normalize the character code to lowercase if it's a letter\n const lc = charCode | 0x20;\n // Check if the character code is in the range for 'a' to 'f'\n if (0x61 <= lc && lc <= 0x66) return lc - 0x61 + 10; // Convert 'a'-'f' to 10-15\n return -1;\n}\n/**\n * Converts a decimal character code to its decimal value.\n */ function decimalCharCodeToNumber(charCode) {\n // Check if the character code is in the range for '0' to '9'\n if (0x30 <= charCode && charCode <= 0x39) return charCode - 0x30; // Convert '0'-'9' to 0-9\n return -1;\n}\n/**\n * Converts a Unicode code point to a string.\n */ function codepointToChar(codepoint) {\n // Check if the code point is within the Basic Multilingual Plane (BMP)\n if (codepoint <= 0xffff) return String.fromCharCode(codepoint); // Convert BMP code point to character\n // Encode UTF-16 surrogate pair for code points beyond BMP\n // Reference: https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode((codepoint - 0x010000 >> 10) + 0xd800, (codepoint - 0x010000 & 0x03ff) + 0xdc00);\n}\nconst INDENT = 4;\nconst MAX_LENGTH = 75;\nconst DELIMITERS = \"\\x00\\r\\n\\x85\\u2028\\u2029\";\nfunction getSnippet(buffer, position) {\n if (!buffer) return null;\n let start = position;\n let end = position;\n let head = \"\";\n let tail = \"\";\n while(start > 0 && !DELIMITERS.includes(buffer.charAt(start - 1))){\n start--;\n if (position - start > MAX_LENGTH / 2 - 1) {\n head = \" ... \";\n start += 5;\n break;\n }\n }\n while(end < buffer.length && !DELIMITERS.includes(buffer.charAt(end))){\n end++;\n if (end - position > MAX_LENGTH / 2 - 1) {\n tail = \" ... \";\n end -= 5;\n break;\n }\n }\n const snippet = buffer.slice(start, end);\n const indent = \" \".repeat(INDENT);\n const caretIndent = \" \".repeat(INDENT + position - start + head.length);\n return `${indent + head + snippet + tail}\\n${caretIndent}^`;\n}\nfunction markToString(buffer, position, line, column) {\n let where = `at line ${line + 1}, column ${column + 1}`;\n const snippet = getSnippet(buffer, position);\n if (snippet) where += `:\\n${snippet}`;\n return where;\n}\nexport class LoaderState {\n input;\n length;\n lineIndent = 0;\n lineStart = 0;\n position = 0;\n line = 0;\n onWarning;\n allowDuplicateKeys;\n implicitTypes;\n typeMap;\n checkLineBreaks = false;\n tagMap = new Map();\n anchorMap = new Map();\n tag;\n anchor;\n kind;\n result = \"\";\n constructor(input, { schema = DEFAULT_SCHEMA, onWarning, allowDuplicateKeys = false }){\n this.input = input;\n this.onWarning = onWarning;\n this.allowDuplicateKeys = allowDuplicateKeys;\n this.implicitTypes = schema.implicitTypes;\n this.typeMap = schema.typeMap;\n this.length = input.length;\n this.readIndent();\n }\n skipWhitespaces() {\n let ch = this.peek();\n while(isWhiteSpace(ch)){\n ch = this.next();\n }\n }\n skipComment() {\n let ch = this.peek();\n if (ch !== SHARP) return;\n ch = this.next();\n while(ch !== 0 && !isEOL(ch)){\n ch = this.next();\n }\n }\n readIndent() {\n let char = this.peek();\n while(char === SPACE){\n this.lineIndent += 1;\n char = this.next();\n }\n }\n peek(offset = 0) {\n return this.input.charCodeAt(this.position + offset);\n }\n next() {\n this.position += 1;\n return this.peek();\n }\n #createError(message) {\n const mark = markToString(this.input, this.position, this.line, this.position - this.lineStart);\n return new SyntaxError(`${message} ${mark}`);\n }\n dispatchWarning(message) {\n const error = this.#createError(message);\n this.onWarning?.(error);\n }\n yamlDirectiveHandler(args) {\n if (args.length !== 1) {\n throw this.#createError(\"Cannot handle YAML directive: YAML directive accepts exactly one argument\");\n }\n const match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n if (match === null) {\n throw this.#createError(\"Cannot handle YAML directive: ill-formed argument\");\n }\n const major = parseInt(match[1], 10);\n const minor = parseInt(match[2], 10);\n if (major !== 1) {\n throw this.#createError(\"Cannot handle YAML directive: unacceptable YAML version\");\n }\n this.checkLineBreaks = minor < 2;\n if (minor !== 1 && minor !== 2) {\n this.dispatchWarning(\"Cannot handle YAML directive: unsupported YAML version\");\n }\n return args[0] ?? null;\n }\n tagDirectiveHandler(args) {\n if (args.length !== 2) {\n throw this.#createError(`Cannot handle tag directive: directive accepts exactly two arguments, received ${args.length}`);\n }\n const handle = args[0];\n const prefix = args[1];\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throw this.#createError(`Cannot handle tag directive: ill-formed handle (first argument) in \"${handle}\"`);\n }\n if (this.tagMap.has(handle)) {\n throw this.#createError(`Cannot handle tag directive: previously declared suffix for \"${handle}\" tag handle`);\n }\n if (!PATTERN_TAG_URI.test(prefix)) {\n throw this.#createError(\"Cannot handle tag directive: ill-formed tag prefix (second argument) of the TAG directive\");\n }\n this.tagMap.set(handle, prefix);\n }\n captureSegment(start, end, checkJson) {\n if (start < end) {\n const result = this.input.slice(start, end);\n if (checkJson) {\n for(let position = 0; position < result.length; position++){\n const character = result.charCodeAt(position);\n if (!(character === 0x09 || 0x20 <= character && character <= 0x10ffff)) {\n throw this.#createError(`Expected valid JSON character: received \"${character}\"`);\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(result)) {\n throw this.#createError(\"Stream contains non-printable characters\");\n }\n this.result += result;\n }\n }\n readBlockSequence(nodeIndent) {\n let detected = false;\n const tag = this.tag;\n const anchor = this.anchor;\n const result = [];\n if (this.anchor !== null && typeof this.anchor !== \"undefined\") {\n this.anchorMap.set(this.anchor, result);\n }\n let ch = this.peek();\n while(ch !== 0){\n if (ch !== MINUS) {\n break;\n }\n const following = this.peek(1);\n if (!isWhiteSpaceOrEOL(following)) {\n break;\n }\n detected = true;\n this.position++;\n if (this.skipSeparationSpace(true, -1)) {\n if (this.lineIndent <= nodeIndent) {\n result.push(null);\n ch = this.peek();\n continue;\n }\n }\n const line = this.line;\n this.composeNode({\n parentIndent: nodeIndent,\n nodeContext: CONTEXT_BLOCK_IN,\n allowToSeek: false,\n allowCompact: true\n });\n result.push(this.result);\n this.skipSeparationSpace(true, -1);\n ch = this.peek();\n if ((this.line === line || this.lineIndent > nodeIndent) && ch !== 0) {\n throw this.#createError(\"Cannot read block sequence: bad indentation of a sequence entry\");\n } else if (this.lineIndent < nodeIndent) {\n break;\n }\n }\n if (detected) {\n this.tag = tag;\n this.anchor = anchor;\n this.kind = \"sequence\";\n this.result = result;\n return true;\n }\n return false;\n }\n mergeMappings(destination, source, overridableKeys) {\n if (!isObject(source)) {\n throw this.#createError(\"Cannot merge mappings: the provided source object is unacceptable\");\n }\n for (const [key, value] of Object.entries(source)){\n if (Object.hasOwn(destination, key)) continue;\n Object.defineProperty(destination, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n overridableKeys.add(key);\n }\n }\n storeMappingPair(result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n for(let index = 0; index < keyNode.length; index++){\n if (Array.isArray(keyNode[index])) {\n throw this.#createError(\"Cannot store mapping pair: nested arrays are not supported inside keys\");\n }\n if (typeof keyNode === \"object\" && isPlainObject(keyNode[index])) {\n keyNode[index] = \"[object Object]\";\n }\n }\n }\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === \"object\" && isPlainObject(keyNode)) {\n keyNode = \"[object Object]\";\n }\n keyNode = String(keyNode);\n if (keyTag === \"tag:yaml.org,2002:merge\") {\n if (Array.isArray(valueNode)) {\n for(let index = 0; index < valueNode.length; index++){\n this.mergeMappings(result, valueNode[index], overridableKeys);\n }\n } else {\n this.mergeMappings(result, valueNode, overridableKeys);\n }\n } else {\n if (!this.allowDuplicateKeys && !overridableKeys.has(keyNode) && Object.hasOwn(result, keyNode)) {\n this.line = startLine || this.line;\n this.position = startPos || this.position;\n throw this.#createError(\"Cannot store mapping pair: duplicated key\");\n }\n Object.defineProperty(result, keyNode, {\n value: valueNode,\n writable: true,\n enumerable: true,\n configurable: true\n });\n overridableKeys.delete(keyNode);\n }\n return result;\n }\n readLineBreak() {\n const ch = this.peek();\n if (ch === LINE_FEED) {\n this.position++;\n } else if (ch === CARRIAGE_RETURN) {\n this.position++;\n if (this.peek() === LINE_FEED) {\n this.position++;\n }\n } else {\n throw this.#createError(\"Cannot read line: line break not found\");\n }\n this.line += 1;\n this.lineStart = this.position;\n }\n skipSeparationSpace(allowComments, checkIndent) {\n let lineBreaks = 0;\n let ch = this.peek();\n while(ch !== 0){\n this.skipWhitespaces();\n ch = this.peek();\n if (allowComments) {\n this.skipComment();\n ch = this.peek();\n }\n if (isEOL(ch)) {\n this.readLineBreak();\n ch = this.peek();\n lineBreaks++;\n this.lineIndent = 0;\n this.readIndent();\n ch = this.peek();\n } else {\n break;\n }\n }\n if (checkIndent !== -1 && lineBreaks !== 0 && this.lineIndent < checkIndent) {\n this.dispatchWarning(\"deficient indentation\");\n }\n return lineBreaks;\n }\n testDocumentSeparator() {\n let ch = this.peek();\n // Condition this.position === this.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === MINUS || ch === DOT) && ch === this.peek(1) && ch === this.peek(2)) {\n ch = this.peek(3);\n if (ch === 0 || isWhiteSpaceOrEOL(ch)) {\n return true;\n }\n }\n return false;\n }\n writeFoldedLines(count) {\n if (count === 1) {\n this.result += \" \";\n } else if (count > 1) {\n this.result += \"\\n\".repeat(count - 1);\n }\n }\n readPlainScalar(nodeIndent, withinFlowCollection) {\n const kind = this.kind;\n const result = this.result;\n let ch = this.peek();\n if (isWhiteSpaceOrEOL(ch) || isFlowIndicator(ch) || ch === SHARP || ch === AMPERSAND || ch === ASTERISK || ch === EXCLAMATION || ch === VERTICAL_LINE || ch === GREATER_THAN || ch === SINGLE_QUOTE || ch === DOUBLE_QUOTE || ch === PERCENT || ch === COMMERCIAL_AT || ch === GRAVE_ACCENT) {\n return false;\n }\n let following;\n if (ch === QUESTION || ch === MINUS) {\n following = this.peek(1);\n if (isWhiteSpaceOrEOL(following) || withinFlowCollection && isFlowIndicator(following)) {\n return false;\n }\n }\n this.kind = \"scalar\";\n this.result = \"\";\n let captureEnd = this.position;\n let captureStart = this.position;\n let hasPendingContent = false;\n let line = 0;\n while(ch !== 0){\n if (ch === COLON) {\n following = this.peek(1);\n if (isWhiteSpaceOrEOL(following) || withinFlowCollection && isFlowIndicator(following)) {\n break;\n }\n } else if (ch === SHARP) {\n const preceding = this.peek(-1);\n if (isWhiteSpaceOrEOL(preceding)) {\n break;\n }\n } else if (this.position === this.lineStart && this.testDocumentSeparator() || withinFlowCollection && isFlowIndicator(ch)) {\n break;\n } else if (isEOL(ch)) {\n line = this.line;\n const lineStart = this.lineStart;\n const lineIndent = this.lineIndent;\n this.skipSeparationSpace(false, -1);\n if (this.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = this.peek();\n continue;\n } else {\n this.position = captureEnd;\n this.line = line;\n this.lineStart = lineStart;\n this.lineIndent = lineIndent;\n break;\n }\n }\n if (hasPendingContent) {\n this.captureSegment(captureStart, captureEnd, false);\n this.writeFoldedLines(this.line - line);\n captureStart = captureEnd = this.position;\n hasPendingContent = false;\n }\n if (!isWhiteSpace(ch)) {\n captureEnd = this.position + 1;\n }\n ch = this.next();\n }\n this.captureSegment(captureStart, captureEnd, false);\n if (this.result) {\n return true;\n }\n this.kind = kind;\n this.result = result;\n return false;\n }\n readSingleQuotedScalar(nodeIndent) {\n let ch = this.peek();\n if (ch !== SINGLE_QUOTE) {\n return false;\n }\n this.kind = \"scalar\";\n this.result = \"\";\n this.position++;\n let captureStart = this.position;\n let captureEnd = this.position;\n ch = this.peek();\n while(ch !== 0){\n if (ch === SINGLE_QUOTE) {\n this.captureSegment(captureStart, this.position, true);\n ch = this.next();\n if (ch === SINGLE_QUOTE) {\n captureStart = this.position;\n this.position++;\n captureEnd = this.position;\n } else {\n return true;\n }\n } else if (isEOL(ch)) {\n this.captureSegment(captureStart, captureEnd, true);\n this.writeFoldedLines(this.skipSeparationSpace(false, nodeIndent));\n captureStart = captureEnd = this.position;\n } else if (this.position === this.lineStart && this.testDocumentSeparator()) {\n throw this.#createError(\"Unexpected end of the document within a single quoted scalar\");\n } else {\n this.position++;\n captureEnd = this.position;\n }\n ch = this.peek();\n }\n throw this.#createError(\"Unexpected end of the stream within a single quoted scalar\");\n }\n readDoubleQuotedScalar(nodeIndent) {\n let ch = this.peek();\n if (ch !== DOUBLE_QUOTE) {\n return false;\n }\n this.kind = \"scalar\";\n this.result = \"\";\n this.position++;\n let captureEnd = this.position;\n let captureStart = this.position;\n let tmp;\n ch = this.peek();\n while(ch !== 0){\n if (ch === DOUBLE_QUOTE) {\n this.captureSegment(captureStart, this.position, true);\n this.position++;\n return true;\n }\n if (ch === BACKSLASH) {\n this.captureSegment(captureStart, this.position, true);\n ch = this.next();\n if (isEOL(ch)) {\n this.skipSeparationSpace(false, nodeIndent);\n } else if (ch < 256 && SIMPLE_ESCAPE_SEQUENCES.has(ch)) {\n this.result += SIMPLE_ESCAPE_SEQUENCES.get(ch);\n this.position++;\n } else if ((tmp = ESCAPED_HEX_LENGTHS.get(ch) ?? 0) > 0) {\n let hexLength = tmp;\n let hexResult = 0;\n for(; hexLength > 0; hexLength--){\n ch = this.next();\n if ((tmp = hexCharCodeToNumber(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n } else {\n throw this.#createError(\"Cannot read double quoted scalar: expected hexadecimal character\");\n }\n }\n this.result += codepointToChar(hexResult);\n this.position++;\n } else {\n throw this.#createError(\"Cannot read double quoted scalar: unknown escape sequence\");\n }\n captureStart = captureEnd = this.position;\n } else if (isEOL(ch)) {\n this.captureSegment(captureStart, captureEnd, true);\n this.writeFoldedLines(this.skipSeparationSpace(false, nodeIndent));\n captureStart = captureEnd = this.position;\n } else if (this.position === this.lineStart && this.testDocumentSeparator()) {\n throw this.#createError(\"Unexpected end of the document within a double quoted scalar\");\n } else {\n this.position++;\n captureEnd = this.position;\n }\n ch = this.peek();\n }\n throw this.#createError(\"Unexpected end of the stream within a double quoted scalar\");\n }\n readFlowCollection(nodeIndent) {\n let ch = this.peek();\n let terminator;\n let isMapping = true;\n let result = {};\n if (ch === LEFT_SQUARE_BRACKET) {\n terminator = RIGHT_SQUARE_BRACKET;\n isMapping = false;\n result = [];\n } else if (ch === LEFT_CURLY_BRACKET) {\n terminator = RIGHT_CURLY_BRACKET;\n } else {\n return false;\n }\n if (this.anchor !== null && typeof this.anchor !== \"undefined\") {\n this.anchorMap.set(this.anchor, result);\n }\n ch = this.next();\n const tag = this.tag;\n const anchor = this.anchor;\n let readNext = true;\n let valueNode = null;\n let keyNode = null;\n let keyTag = null;\n let isExplicitPair = false;\n let isPair = false;\n let following = 0;\n let line = 0;\n const overridableKeys = new Set();\n while(ch !== 0){\n this.skipSeparationSpace(true, nodeIndent);\n ch = this.peek();\n if (ch === terminator) {\n this.position++;\n this.tag = tag;\n this.anchor = anchor;\n this.kind = isMapping ? \"mapping\" : \"sequence\";\n this.result = result;\n return true;\n }\n if (!readNext) {\n throw this.#createError(\"Cannot read flow collection: missing comma between flow collection entries\");\n }\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n if (ch === QUESTION) {\n following = this.peek(1);\n if (isWhiteSpaceOrEOL(following)) {\n isPair = isExplicitPair = true;\n this.position++;\n this.skipSeparationSpace(true, nodeIndent);\n }\n }\n line = this.line;\n this.composeNode({\n parentIndent: nodeIndent,\n nodeContext: CONTEXT_FLOW_IN,\n allowToSeek: false,\n allowCompact: true\n });\n keyTag = this.tag || null;\n keyNode = this.result;\n this.skipSeparationSpace(true, nodeIndent);\n ch = this.peek();\n if ((isExplicitPair || this.line === line) && ch === COLON) {\n isPair = true;\n ch = this.next();\n this.skipSeparationSpace(true, nodeIndent);\n this.composeNode({\n parentIndent: nodeIndent,\n nodeContext: CONTEXT_FLOW_IN,\n allowToSeek: false,\n allowCompact: true\n });\n valueNode = this.result;\n }\n if (isMapping) {\n this.storeMappingPair(result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n result.push(this.storeMappingPair({}, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n result.push(keyNode);\n }\n this.skipSeparationSpace(true, nodeIndent);\n ch = this.peek();\n if (ch === COMMA) {\n readNext = true;\n ch = this.next();\n } else {\n readNext = false;\n }\n }\n throw this.#createError(\"Cannot read flow collection: unexpected end of the stream within a flow collection\");\n }\n // Handles block scaler styles: e.g. '|', '>', '|-' and '>-'.\n // https://yaml.org/spec/1.2.2/#81-block-scalar-styles\n readBlockScalar(nodeIndent) {\n let chomping = CHOMPING_CLIP;\n let didReadContent = false;\n let detectedIndent = false;\n let textIndent = nodeIndent;\n let emptyLines = 0;\n let atMoreIndented = false;\n let ch = this.peek();\n let folding = false;\n if (ch === VERTICAL_LINE) {\n folding = false;\n } else if (ch === GREATER_THAN) {\n folding = true;\n } else {\n return false;\n }\n this.kind = \"scalar\";\n this.result = \"\";\n let tmp = 0;\n while(ch !== 0){\n ch = this.next();\n if (ch === PLUS || ch === MINUS) {\n if (CHOMPING_CLIP === chomping) {\n chomping = ch === PLUS ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throw this.#createError(\"Cannot read block: chomping mode identifier repeated\");\n }\n } else if ((tmp = decimalCharCodeToNumber(ch)) >= 0) {\n if (tmp === 0) {\n throw this.#createError(\"Cannot read block: indentation width must be greater than 0\");\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throw this.#createError(\"Cannot read block: indentation width identifier repeated\");\n }\n } else {\n break;\n }\n }\n if (isWhiteSpace(ch)) {\n this.skipWhitespaces();\n this.skipComment();\n ch = this.peek();\n }\n while(ch !== 0){\n this.readLineBreak();\n this.lineIndent = 0;\n ch = this.peek();\n while((!detectedIndent || this.lineIndent < textIndent) && ch === SPACE){\n this.lineIndent++;\n ch = this.next();\n }\n if (!detectedIndent && this.lineIndent > textIndent) {\n textIndent = this.lineIndent;\n }\n if (isEOL(ch)) {\n emptyLines++;\n continue;\n }\n // End of the scalar.\n if (this.lineIndent < textIndent) {\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n this.result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) {\n // i.e. only if the scalar is not empty.\n this.result += \"\\n\";\n }\n }\n break;\n }\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (isWhiteSpace(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n this.result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n this.result += \"\\n\".repeat(emptyLines + 1);\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) {\n // i.e. only if we have already read some scalar content.\n this.result += \" \";\n }\n // Several line breaks - perceive as different lines.\n } else {\n this.result += \"\\n\".repeat(emptyLines);\n }\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n this.result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n }\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n const captureStart = this.position;\n while(!isEOL(ch) && ch !== 0){\n ch = this.next();\n }\n this.captureSegment(captureStart, this.position, false);\n }\n return true;\n }\n readBlockMapping(nodeIndent, flowIndent) {\n const tag = this.tag;\n const anchor = this.anchor;\n const result = {};\n const overridableKeys = new Set();\n let allowCompact = false;\n let line;\n let pos;\n let keyTag = null;\n let keyNode = null;\n let valueNode = null;\n let atExplicitKey = false;\n let detected = false;\n if (this.anchor !== null && typeof this.anchor !== \"undefined\") {\n this.anchorMap.set(this.anchor, result);\n }\n let ch = this.peek();\n while(ch !== 0){\n const following = this.peek(1);\n line = this.line; // Save the current line.\n pos = this.position;\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === QUESTION || ch === COLON) && isWhiteSpaceOrEOL(following)) {\n if (ch === QUESTION) {\n if (atExplicitKey) {\n this.storeMappingPair(result, overridableKeys, keyTag, keyNode, null);\n keyTag = null;\n keyNode = null;\n valueNode = null;\n }\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n } else {\n throw this.#createError(\"Cannot read block as explicit mapping pair is incomplete: a key node is missed or followed by a non-tabulated empty line\");\n }\n this.position += 1;\n ch = following;\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (this.composeNode({\n parentIndent: flowIndent,\n nodeContext: CONTEXT_FLOW_OUT,\n allowToSeek: false,\n allowCompact: true\n })) {\n if (this.line === line) {\n ch = this.peek();\n this.skipWhitespaces();\n ch = this.peek();\n if (ch === COLON) {\n ch = this.next();\n if (!isWhiteSpaceOrEOL(ch)) {\n throw this.#createError(\"Cannot read block: a whitespace character is expected after the key-value separator within a block mapping\");\n }\n if (atExplicitKey) {\n this.storeMappingPair(result, overridableKeys, keyTag, keyNode, null);\n keyTag = null;\n keyNode = null;\n valueNode = null;\n }\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = this.tag;\n keyNode = this.result;\n } else if (detected) {\n throw this.#createError(\"Cannot read an implicit mapping pair: missing colon\");\n } else {\n this.tag = tag;\n this.anchor = anchor;\n return true; // Keep the result of `composeNode`.\n }\n } else if (detected) {\n throw this.#createError(\"Cannot read a block mapping entry: a multiline key may not be an implicit key\");\n } else {\n this.tag = tag;\n this.anchor = anchor;\n return true; // Keep the result of `composeNode`.\n }\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (this.line === line || this.lineIndent > nodeIndent) {\n if (this.composeNode({\n parentIndent: nodeIndent,\n nodeContext: CONTEXT_BLOCK_OUT,\n allowToSeek: true,\n allowCompact\n })) {\n if (atExplicitKey) {\n keyNode = this.result;\n } else {\n valueNode = this.result;\n }\n }\n if (!atExplicitKey) {\n this.storeMappingPair(result, overridableKeys, keyTag, keyNode, valueNode, line, pos);\n keyTag = keyNode = valueNode = null;\n }\n this.skipSeparationSpace(true, -1);\n ch = this.peek();\n }\n if (this.lineIndent > nodeIndent && ch !== 0) {\n throw this.#createError(\"Cannot read block: bad indentation of a mapping entry\");\n } else if (this.lineIndent < nodeIndent) {\n break;\n }\n }\n //\n // Epilogue.\n //\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n this.storeMappingPair(result, overridableKeys, keyTag, keyNode, null);\n }\n // Expose the resulting mapping.\n if (detected) {\n this.tag = tag;\n this.anchor = anchor;\n this.kind = \"mapping\";\n this.result = result;\n }\n return detected;\n }\n readTagProperty() {\n let isVerbatim = false;\n let isNamed = false;\n let tagHandle = \"\";\n let tagName;\n let ch = this.peek();\n if (ch !== EXCLAMATION) return false;\n if (this.tag !== null) {\n throw this.#createError(\"Cannot read tag property: duplication of a tag property\");\n }\n ch = this.next();\n if (ch === SMALLER_THAN) {\n isVerbatim = true;\n ch = this.next();\n } else if (ch === EXCLAMATION) {\n isNamed = true;\n tagHandle = \"!!\";\n ch = this.next();\n } else {\n tagHandle = \"!\";\n }\n let position = this.position;\n if (isVerbatim) {\n do {\n ch = this.next();\n }while (ch !== 0 && ch !== GREATER_THAN)\n if (this.position < this.length) {\n tagName = this.input.slice(position, this.position);\n ch = this.next();\n } else {\n throw this.#createError(\"Cannot read tag property: unexpected end of stream\");\n }\n } else {\n while(ch !== 0 && !isWhiteSpaceOrEOL(ch)){\n if (ch === EXCLAMATION) {\n if (!isNamed) {\n tagHandle = this.input.slice(position - 1, this.position + 1);\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throw this.#createError(\"Cannot read tag property: named tag handle contains invalid characters\");\n }\n isNamed = true;\n position = this.position + 1;\n } else {\n throw this.#createError(\"Cannot read tag property: tag suffix cannot contain an exclamation mark\");\n }\n }\n ch = this.next();\n }\n tagName = this.input.slice(position, this.position);\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throw this.#createError(\"Cannot read tag property: tag suffix cannot contain flow indicator characters\");\n }\n }\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throw this.#createError(`Cannot read tag property: invalid characters in tag name \"${tagName}\"`);\n }\n if (isVerbatim) {\n this.tag = tagName;\n } else if (this.tagMap.has(tagHandle)) {\n this.tag = this.tagMap.get(tagHandle) + tagName;\n } else if (tagHandle === \"!\") {\n this.tag = `!${tagName}`;\n } else if (tagHandle === \"!!\") {\n this.tag = `tag:yaml.org,2002:${tagName}`;\n } else {\n throw this.#createError(`Cannot read tag property: undeclared tag handle \"${tagHandle}\"`);\n }\n return true;\n }\n readAnchorProperty() {\n let ch = this.peek();\n if (ch !== AMPERSAND) return false;\n if (this.anchor !== null) {\n throw this.#createError(\"Cannot read anchor property: duplicate anchor property\");\n }\n ch = this.next();\n const position = this.position;\n while(ch !== 0 && !isWhiteSpaceOrEOL(ch) && !isFlowIndicator(ch)){\n ch = this.next();\n }\n if (this.position === position) {\n throw this.#createError(\"Cannot read anchor property: name of an anchor node must contain at least one character\");\n }\n this.anchor = this.input.slice(position, this.position);\n return true;\n }\n readAlias() {\n if (this.peek() !== ASTERISK) return false;\n let ch = this.next();\n const position = this.position;\n while(ch !== 0 && !isWhiteSpaceOrEOL(ch) && !isFlowIndicator(ch)){\n ch = this.next();\n }\n if (this.position === position) {\n throw this.#createError(\"Cannot read alias: alias name must contain at least one character\");\n }\n const alias = this.input.slice(position, this.position);\n if (!this.anchorMap.has(alias)) {\n throw this.#createError(`Cannot read alias: unidentified alias \"${alias}\"`);\n }\n this.result = this.anchorMap.get(alias);\n this.skipSeparationSpace(true, -1);\n return true;\n }\n composeNode({ parentIndent, nodeContext, allowToSeek, allowCompact }) {\n let indentStatus = 1; // 1: this>parent, 0: this=parent, -1: this<parent\n let atNewLine = false;\n let hasContent = false;\n let type;\n this.tag = null;\n this.anchor = null;\n this.kind = null;\n this.result = null;\n const allowBlockScalars = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;\n let allowBlockCollections = allowBlockScalars;\n const allowBlockStyles = allowBlockScalars;\n if (allowToSeek) {\n if (this.skipSeparationSpace(true, -1)) {\n atNewLine = true;\n if (this.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (this.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (this.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n if (indentStatus === 1) {\n while(this.readTagProperty() || this.readAnchorProperty()){\n if (this.skipSeparationSpace(true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n if (this.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (this.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (this.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n const cond = CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext;\n const flowIndent = cond ? parentIndent : parentIndent + 1;\n const blockIndent = this.position - this.lineStart;\n if (indentStatus === 1) {\n if (allowBlockCollections && (this.readBlockSequence(blockIndent) || this.readBlockMapping(blockIndent, flowIndent)) || this.readFlowCollection(flowIndent)) {\n hasContent = true;\n } else {\n if (allowBlockScalars && this.readBlockScalar(flowIndent) || this.readSingleQuotedScalar(flowIndent) || this.readDoubleQuotedScalar(flowIndent)) {\n hasContent = true;\n } else if (this.readAlias()) {\n hasContent = true;\n if (this.tag !== null || this.anchor !== null) {\n throw this.#createError(\"Cannot compose node: alias node should not have any properties\");\n }\n } else if (this.readPlainScalar(flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n if (this.tag === null) {\n this.tag = \"?\";\n }\n }\n if (this.anchor !== null) {\n this.anchorMap.set(this.anchor, this.result);\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && this.readBlockSequence(blockIndent);\n }\n }\n if (this.tag !== null && this.tag !== \"!\") {\n if (this.tag === \"?\") {\n for(let typeIndex = 0; typeIndex < this.implicitTypes.length; typeIndex++){\n type = this.implicitTypes[typeIndex];\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only assigned to plain scalars. So, it isn't\n // needed to check for 'kind' conformity.\n if (type.resolve(this.result)) {\n // `state.result` updated in resolver if matched\n this.result = type.construct(this.result);\n this.tag = type.tag;\n if (this.anchor !== null) {\n this.anchorMap.set(this.anchor, this.result);\n }\n break;\n }\n }\n } else if (this.typeMap[this.kind ?? \"fallback\"].has(this.tag)) {\n const map = this.typeMap[this.kind ?? \"fallback\"];\n type = map.get(this.tag);\n if (this.result !== null && type.kind !== this.kind) {\n throw this.#createError(`Unacceptable node kind for !<${this.tag}> tag: it should be \"${type.kind}\", not \"${this.kind}\"`);\n }\n if (!type.resolve(this.result)) {\n // `state.result` updated in resolver if matched\n throw this.#createError(`Cannot resolve a node with !<${this.tag}> explicit tag`);\n } else {\n this.result = type.construct(this.result);\n if (this.anchor !== null) {\n this.anchorMap.set(this.anchor, this.result);\n }\n }\n } else {\n throw this.#createError(`Cannot resolve unknown tag !<${this.tag}>`);\n }\n }\n return this.tag !== null || this.anchor !== null || hasContent;\n }\n readDirectives() {\n let hasDirectives = false;\n let version = null;\n let ch = this.peek();\n while(ch !== 0){\n this.skipSeparationSpace(true, -1);\n ch = this.peek();\n if (this.lineIndent > 0 || ch !== PERCENT) {\n break;\n }\n hasDirectives = true;\n ch = this.next();\n let position = this.position;\n while(ch !== 0 && !isWhiteSpaceOrEOL(ch)){\n ch = this.next();\n }\n const directiveName = this.input.slice(position, this.position);\n const directiveArgs = [];\n if (directiveName.length < 1) {\n throw this.#createError(\"Cannot read document: directive name length must be greater than zero\");\n }\n while(ch !== 0){\n this.skipWhitespaces();\n this.skipComment();\n ch = this.peek();\n if (isEOL(ch)) break;\n position = this.position;\n while(ch !== 0 && !isWhiteSpaceOrEOL(ch)){\n ch = this.next();\n }\n directiveArgs.push(this.input.slice(position, this.position));\n }\n if (ch !== 0) this.readLineBreak();\n switch(directiveName){\n case \"YAML\":\n if (version !== null) {\n throw this.#createError(\"Cannot handle YAML directive: duplication of %YAML directive\");\n }\n version = this.yamlDirectiveHandler(directiveArgs);\n break;\n case \"TAG\":\n this.tagDirectiveHandler(directiveArgs);\n break;\n default:\n this.dispatchWarning(`unknown document directive \"${directiveName}\"`);\n break;\n }\n ch = this.peek();\n }\n return hasDirectives;\n }\n readDocument() {\n const documentStart = this.position;\n this.checkLineBreaks = false;\n this.tagMap = new Map();\n this.anchorMap = new Map();\n const hasDirectives = this.readDirectives();\n this.skipSeparationSpace(true, -1);\n if (this.lineIndent === 0 && this.peek() === MINUS && this.peek(1) === MINUS && this.peek(2) === MINUS) {\n this.position += 3;\n this.skipSeparationSpace(true, -1);\n } else if (hasDirectives) {\n throw this.#createError(\"Cannot read document: directives end mark is expected\");\n }\n this.composeNode({\n parentIndent: this.lineIndent - 1,\n nodeContext: CONTEXT_BLOCK_OUT,\n allowToSeek: false,\n allowCompact: true\n });\n this.skipSeparationSpace(true, -1);\n if (this.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(this.input.slice(documentStart, this.position))) {\n this.dispatchWarning(\"non-ASCII line breaks are interpreted as content\");\n }\n if (this.position === this.lineStart && this.testDocumentSeparator()) {\n if (this.peek() === DOT) {\n this.position += 3;\n this.skipSeparationSpace(true, -1);\n }\n } else if (this.position < this.length - 1) {\n throw this.#createError(\"Cannot read document: end of the stream or a document separator is expected\");\n }\n return this.result;\n }\n *readDocuments() {\n while(this.position < this.length - 1){\n yield this.readDocument();\n }\n }\n}\n//# sourceMappingURL=_loader_state.js.map"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import { binary } from "./_type/binary.mjs";
2
+ import { bool } from "./_type/bool.mjs";
3
+ import { float } from "./_type/float.mjs";
4
+ import { int } from "./_type/int.mjs";
5
+ import { map } from "./_type/map.mjs";
6
+ import { merge } from "./_type/merge.mjs";
7
+ import { nil } from "./_type/nil.mjs";
8
+ import { omap } from "./_type/omap.mjs";
9
+ import { pairs } from "./_type/pairs.mjs";
10
+ import { regexp } from "./_type/regexp.mjs";
11
+ import { seq } from "./_type/seq.mjs";
12
+ import { set } from "./_type/set.mjs";
13
+ import { str } from "./_type/str.mjs";
14
+ import { timestamp } from "./_type/timestamp.mjs";
15
+ import { undefinedType } from "./_type/undefined.mjs";
16
+
17
+ //#region node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_schema.js
18
+ function createTypeMap(implicitTypes, explicitTypes) {
19
+ const result = {
20
+ fallback: /* @__PURE__ */ new Map(),
21
+ mapping: /* @__PURE__ */ new Map(),
22
+ scalar: /* @__PURE__ */ new Map(),
23
+ sequence: /* @__PURE__ */ new Map()
24
+ };
25
+ const fallbackMap = result.fallback;
26
+ for (const type of [...implicitTypes, ...explicitTypes]) {
27
+ result[type.kind].set(type.tag, type);
28
+ fallbackMap.set(type.tag, type);
29
+ }
30
+ return result;
31
+ }
32
+ function createSchema({ explicitTypes = [], implicitTypes = [], include }) {
33
+ if (include) {
34
+ implicitTypes.push(...include.implicitTypes);
35
+ explicitTypes.push(...include.explicitTypes);
36
+ }
37
+ return {
38
+ implicitTypes,
39
+ explicitTypes,
40
+ typeMap: createTypeMap(implicitTypes, explicitTypes)
41
+ };
42
+ }
43
+ /**
44
+ * Standard YAML's failsafe schema.
45
+ *
46
+ * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2802346}
47
+ */ const FAILSAFE_SCHEMA = createSchema({ explicitTypes: [
48
+ str,
49
+ seq,
50
+ map
51
+ ] });
52
+ /**
53
+ * Standard YAML's JSON schema.
54
+ *
55
+ * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2803231}
56
+ */ const JSON_SCHEMA = createSchema({
57
+ implicitTypes: [
58
+ nil,
59
+ bool,
60
+ int,
61
+ float
62
+ ],
63
+ include: FAILSAFE_SCHEMA
64
+ });
65
+ /**
66
+ * Standard YAML's core schema.
67
+ *
68
+ * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2804923}
69
+ */ const CORE_SCHEMA = createSchema({ include: JSON_SCHEMA });
70
+ /**
71
+ * Default YAML schema. It is not described in the YAML specification.
72
+ */ const DEFAULT_SCHEMA = createSchema({
73
+ explicitTypes: [
74
+ binary,
75
+ omap,
76
+ pairs,
77
+ set
78
+ ],
79
+ implicitTypes: [timestamp, merge],
80
+ include: CORE_SCHEMA
81
+ });
82
+ /***
83
+ * Extends JS-YAML default schema with additional JavaScript types
84
+ * It is not described in the YAML specification.
85
+ * Functions are no longer supported for security reasons.
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * import { parse } from "@std/yaml";
90
+ *
91
+ * const data = parse(
92
+ * `
93
+ * regexp:
94
+ * simple: !!js/regexp foobar
95
+ * modifiers: !!js/regexp /foobar/mi
96
+ * undefined: !!js/undefined ~
97
+ * `,
98
+ * { schema: "extended" },
99
+ * );
100
+ * ```
101
+ */ const EXTENDED_SCHEMA = createSchema({
102
+ explicitTypes: [regexp, undefinedType],
103
+ include: DEFAULT_SCHEMA
104
+ });
105
+ const SCHEMA_MAP = new Map([
106
+ ["core", CORE_SCHEMA],
107
+ ["default", DEFAULT_SCHEMA],
108
+ ["failsafe", FAILSAFE_SCHEMA],
109
+ ["json", JSON_SCHEMA],
110
+ ["extended", EXTENDED_SCHEMA]
111
+ ]);
112
+
113
+ //#endregion
114
+ export { DEFAULT_SCHEMA, SCHEMA_MAP };
115
+ //# sourceMappingURL=_schema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_schema.mjs","names":[],"sources":["../../../../../../../node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_schema.js"],"sourcesContent":["// Ported from js-yaml v3.13.1:\n// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da\n// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.\n// Copyright 2018-2025 the Deno authors. MIT license.\n// This module is browser compatible.\nimport { binary } from \"./_type/binary.js\";\nimport { bool } from \"./_type/bool.js\";\nimport { float } from \"./_type/float.js\";\nimport { int } from \"./_type/int.js\";\nimport { map } from \"./_type/map.js\";\nimport { merge } from \"./_type/merge.js\";\nimport { nil } from \"./_type/nil.js\";\nimport { omap } from \"./_type/omap.js\";\nimport { pairs } from \"./_type/pairs.js\";\nimport { regexp } from \"./_type/regexp.js\";\nimport { seq } from \"./_type/seq.js\";\nimport { set } from \"./_type/set.js\";\nimport { str } from \"./_type/str.js\";\nimport { timestamp } from \"./_type/timestamp.js\";\nimport { undefinedType } from \"./_type/undefined.js\";\nfunction createTypeMap(implicitTypes, explicitTypes) {\n const result = {\n fallback: new Map(),\n mapping: new Map(),\n scalar: new Map(),\n sequence: new Map()\n };\n const fallbackMap = result.fallback;\n for (const type of [\n ...implicitTypes,\n ...explicitTypes\n ]){\n const map = result[type.kind];\n map.set(type.tag, type);\n fallbackMap.set(type.tag, type);\n }\n return result;\n}\nfunction createSchema({ explicitTypes = [], implicitTypes = [], include }) {\n if (include) {\n implicitTypes.push(...include.implicitTypes);\n explicitTypes.push(...include.explicitTypes);\n }\n const typeMap = createTypeMap(implicitTypes, explicitTypes);\n return {\n implicitTypes,\n explicitTypes,\n typeMap\n };\n}\n/**\n * Standard YAML's failsafe schema.\n *\n * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2802346}\n */ const FAILSAFE_SCHEMA = createSchema({\n explicitTypes: [\n str,\n seq,\n map\n ]\n});\n/**\n * Standard YAML's JSON schema.\n *\n * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2803231}\n */ const JSON_SCHEMA = createSchema({\n implicitTypes: [\n nil,\n bool,\n int,\n float\n ],\n include: FAILSAFE_SCHEMA\n});\n/**\n * Standard YAML's core schema.\n *\n * @see {@link http://www.yaml.org/spec/1.2/spec.html#id2804923}\n */ const CORE_SCHEMA = createSchema({\n include: JSON_SCHEMA\n});\n/**\n * Default YAML schema. It is not described in the YAML specification.\n */ export const DEFAULT_SCHEMA = createSchema({\n explicitTypes: [\n binary,\n omap,\n pairs,\n set\n ],\n implicitTypes: [\n timestamp,\n merge\n ],\n include: CORE_SCHEMA\n});\n/***\n * Extends JS-YAML default schema with additional JavaScript types\n * It is not described in the YAML specification.\n * Functions are no longer supported for security reasons.\n *\n * @example\n * ```ts\n * import { parse } from \"@std/yaml\";\n *\n * const data = parse(\n * `\n * regexp:\n * simple: !!js/regexp foobar\n * modifiers: !!js/regexp /foobar/mi\n * undefined: !!js/undefined ~\n * `,\n * { schema: \"extended\" },\n * );\n * ```\n */ const EXTENDED_SCHEMA = createSchema({\n explicitTypes: [\n regexp,\n undefinedType\n ],\n include: DEFAULT_SCHEMA\n});\nexport const SCHEMA_MAP = new Map([\n [\n \"core\",\n CORE_SCHEMA\n ],\n [\n \"default\",\n DEFAULT_SCHEMA\n ],\n [\n \"failsafe\",\n FAILSAFE_SCHEMA\n ],\n [\n \"json\",\n JSON_SCHEMA\n ],\n [\n \"extended\",\n EXTENDED_SCHEMA\n ]\n]);\nexport function getSchema(schema = \"default\", types) {\n const schemaObj = SCHEMA_MAP.get(schema);\n if (!types) {\n return schemaObj;\n }\n return createSchema({\n implicitTypes: [\n ...types,\n ...schemaObj.implicitTypes\n ],\n explicitTypes: [\n ...schemaObj.explicitTypes\n ]\n });\n}\n//# sourceMappingURL=_schema.js.map"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;;;;AAoBA,SAAS,cAAc,eAAe,eAAe;CACnD,MAAM,SAAS;EACb,0BAAU,IAAI,KAAK;EACnB,yBAAS,IAAI,KAAK;EAClB,wBAAQ,IAAI,KAAK;EACjB,0BAAU,IAAI,KAAK;EACpB;CACD,MAAM,cAAc,OAAO;AAC3B,MAAK,MAAM,QAAQ,CACjB,GAAG,eACH,GAAG,cACJ,EAAC;AAEA,EADY,OAAO,KAAK,MACpB,IAAI,KAAK,KAAK,KAAK;AACvB,cAAY,IAAI,KAAK,KAAK,KAAK;;AAEjC,QAAO;;AAET,SAAS,aAAa,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,EAAE,WAAW;AACzE,KAAI,SAAS;AACX,gBAAc,KAAK,GAAG,QAAQ,cAAc;AAC5C,gBAAc,KAAK,GAAG,QAAQ,cAAc;;AAG9C,QAAO;EACL;EACA;EACA,SAJc,cAAc,eAAe,cAAc;EAK1D;;;;;;GAMC,MAAM,kBAAkB,aAAa,EACvC,eAAe;CACb;CACA;CACA;CACD,EACF,CAAC;;;;;GAKE,MAAM,cAAc,aAAa;CACnC,eAAe;EACb;EACA;EACA;EACA;EACD;CACD,SAAS;CACV,CAAC;;;;;GAKE,MAAM,cAAc,aAAa,EACnC,SAAS,aACV,CAAC;;;GAGE,MAAa,iBAAiB,aAAa;CAC7C,eAAe;EACb;EACA;EACA;EACA;EACD;CACD,eAAe,CACb,WACA,MACD;CACD,SAAS;CACV,CAAC;;;;;;;;;;;;;;;;;;;;GAoBE,MAAM,kBAAkB,aAAa;CACvC,eAAe,CACb,QACA,cACD;CACD,SAAS;CACV,CAAC;AACF,MAAa,aAAa,IAAI,IAAI;CAChC,CACE,QACA,YACD;CACD,CACE,WACA,eACD;CACD,CACE,YACA,gBACD;CACD,CACE,QACA,YACD;CACD,CACE,YACA,gBACD;CACF,CAAC"}
@@ -0,0 +1,89 @@
1
+ //#region node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/binary.js
2
+ const BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
3
+ function resolveYamlBinary(data) {
4
+ if (data === null) return false;
5
+ let code;
6
+ let bitlen = 0;
7
+ const max = data.length;
8
+ const map = BASE64_MAP;
9
+ for (let idx = 0; idx < max; idx++) {
10
+ code = map.indexOf(data.charAt(idx));
11
+ if (code > 64) continue;
12
+ if (code < 0) return false;
13
+ bitlen += 6;
14
+ }
15
+ return bitlen % 8 === 0;
16
+ }
17
+ function constructYamlBinary(data) {
18
+ const input = data.replace(/[\r\n=]/g, "");
19
+ const max = input.length;
20
+ const map = BASE64_MAP;
21
+ const result = [];
22
+ let bits = 0;
23
+ for (let idx = 0; idx < max; idx++) {
24
+ if (idx % 4 === 0 && idx) {
25
+ result.push(bits >> 16 & 255);
26
+ result.push(bits >> 8 & 255);
27
+ result.push(bits & 255);
28
+ }
29
+ bits = bits << 6 | map.indexOf(input.charAt(idx));
30
+ }
31
+ const tailbits = max % 4 * 6;
32
+ if (tailbits === 0) {
33
+ result.push(bits >> 16 & 255);
34
+ result.push(bits >> 8 & 255);
35
+ result.push(bits & 255);
36
+ } else if (tailbits === 18) {
37
+ result.push(bits >> 10 & 255);
38
+ result.push(bits >> 2 & 255);
39
+ } else if (tailbits === 12) result.push(bits >> 4 & 255);
40
+ return new Uint8Array(result);
41
+ }
42
+ function representYamlBinary(object) {
43
+ const max = object.length;
44
+ const map = BASE64_MAP;
45
+ let result = "";
46
+ let bits = 0;
47
+ for (let idx = 0; idx < max; idx++) {
48
+ if (idx % 3 === 0 && idx) {
49
+ result += map[bits >> 18 & 63];
50
+ result += map[bits >> 12 & 63];
51
+ result += map[bits >> 6 & 63];
52
+ result += map[bits & 63];
53
+ }
54
+ bits = (bits << 8) + object[idx];
55
+ }
56
+ const tail = max % 3;
57
+ if (tail === 0) {
58
+ result += map[bits >> 18 & 63];
59
+ result += map[bits >> 12 & 63];
60
+ result += map[bits >> 6 & 63];
61
+ result += map[bits & 63];
62
+ } else if (tail === 2) {
63
+ result += map[bits >> 10 & 63];
64
+ result += map[bits >> 4 & 63];
65
+ result += map[bits << 2 & 63];
66
+ result += map[64];
67
+ } else if (tail === 1) {
68
+ result += map[bits >> 2 & 63];
69
+ result += map[bits << 4 & 63];
70
+ result += map[64];
71
+ result += map[64];
72
+ }
73
+ return result;
74
+ }
75
+ function isBinary(obj) {
76
+ return obj instanceof Uint8Array;
77
+ }
78
+ const binary = {
79
+ tag: "tag:yaml.org,2002:binary",
80
+ construct: constructYamlBinary,
81
+ kind: "scalar",
82
+ predicate: isBinary,
83
+ represent: representYamlBinary,
84
+ resolve: resolveYamlBinary
85
+ };
86
+
87
+ //#endregion
88
+ export { binary };
89
+ //# sourceMappingURL=binary.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.mjs","names":[],"sources":["../../../../../../../../node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/binary.js"],"sourcesContent":["// Ported from js-yaml v3.13.1:\n// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.\n// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da\n// Copyright 2018-2025 the Deno authors. MIT license.\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nconst BASE64_MAP = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r\";\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n let code;\n let bitlen = 0;\n const max = data.length;\n const map = BASE64_MAP;\n // Convert one by one.\n for(let idx = 0; idx < max; idx++){\n code = map.indexOf(data.charAt(idx));\n // Skip CR/LF\n if (code > 64) continue;\n // Fail on illegal characters\n if (code < 0) return false;\n bitlen += 6;\n }\n // If there are any bits left, source was corrupted\n return bitlen % 8 === 0;\n}\nfunction constructYamlBinary(data) {\n // remove CR/LF & padding to simplify scan\n const input = data.replace(/[\\r\\n=]/g, \"\");\n const max = input.length;\n const map = BASE64_MAP;\n // Collect by 6*4 bits (3 bytes)\n const result = [];\n let bits = 0;\n for(let idx = 0; idx < max; idx++){\n if (idx % 4 === 0 && idx) {\n result.push(bits >> 16 & 0xff);\n result.push(bits >> 8 & 0xff);\n result.push(bits & 0xff);\n }\n bits = bits << 6 | map.indexOf(input.charAt(idx));\n }\n // Dump tail\n const tailbits = max % 4 * 6;\n if (tailbits === 0) {\n result.push(bits >> 16 & 0xff);\n result.push(bits >> 8 & 0xff);\n result.push(bits & 0xff);\n } else if (tailbits === 18) {\n result.push(bits >> 10 & 0xff);\n result.push(bits >> 2 & 0xff);\n } else if (tailbits === 12) {\n result.push(bits >> 4 & 0xff);\n }\n return new Uint8Array(result);\n}\nfunction representYamlBinary(object) {\n const max = object.length;\n const map = BASE64_MAP;\n // Convert every three bytes to 4 ASCII characters.\n let result = \"\";\n let bits = 0;\n for(let idx = 0; idx < max; idx++){\n if (idx % 3 === 0 && idx) {\n result += map[bits >> 18 & 0x3f];\n result += map[bits >> 12 & 0x3f];\n result += map[bits >> 6 & 0x3f];\n result += map[bits & 0x3f];\n }\n bits = (bits << 8) + object[idx];\n }\n // Dump tail\n const tail = max % 3;\n if (tail === 0) {\n result += map[bits >> 18 & 0x3f];\n result += map[bits >> 12 & 0x3f];\n result += map[bits >> 6 & 0x3f];\n result += map[bits & 0x3f];\n } else if (tail === 2) {\n result += map[bits >> 10 & 0x3f];\n result += map[bits >> 4 & 0x3f];\n result += map[bits << 2 & 0x3f];\n result += map[64];\n } else if (tail === 1) {\n result += map[bits >> 2 & 0x3f];\n result += map[bits << 4 & 0x3f];\n result += map[64];\n result += map[64];\n }\n return result;\n}\nfunction isBinary(obj) {\n return obj instanceof Uint8Array;\n}\nexport const binary = {\n tag: \"tag:yaml.org,2002:binary\",\n construct: constructYamlBinary,\n kind: \"scalar\",\n predicate: isBinary,\n represent: representYamlBinary,\n resolve: resolveYamlBinary\n};\n//# sourceMappingURL=binary.js.map"],"x_google_ignoreList":[0],"mappings":";AAKA,MAAM,aAAa;AACnB,SAAS,kBAAkB,MAAM;AAC/B,KAAI,SAAS,KAAM,QAAO;CAC1B,IAAI;CACJ,IAAI,SAAS;CACb,MAAM,MAAM,KAAK;CACjB,MAAM,MAAM;AAEZ,MAAI,IAAI,MAAM,GAAG,MAAM,KAAK,OAAM;AAChC,SAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC;AAEpC,MAAI,OAAO,GAAI;AAEf,MAAI,OAAO,EAAG,QAAO;AACrB,YAAU;;AAGZ,QAAO,SAAS,MAAM;;AAExB,SAAS,oBAAoB,MAAM;CAEjC,MAAM,QAAQ,KAAK,QAAQ,YAAY,GAAG;CAC1C,MAAM,MAAM,MAAM;CAClB,MAAM,MAAM;CAEZ,MAAM,SAAS,EAAE;CACjB,IAAI,OAAO;AACX,MAAI,IAAI,MAAM,GAAG,MAAM,KAAK,OAAM;AAChC,MAAI,MAAM,MAAM,KAAK,KAAK;AACxB,UAAO,KAAK,QAAQ,KAAK,IAAK;AAC9B,UAAO,KAAK,QAAQ,IAAI,IAAK;AAC7B,UAAO,KAAK,OAAO,IAAK;;AAE1B,SAAO,QAAQ,IAAI,IAAI,QAAQ,MAAM,OAAO,IAAI,CAAC;;CAGnD,MAAM,WAAW,MAAM,IAAI;AAC3B,KAAI,aAAa,GAAG;AAClB,SAAO,KAAK,QAAQ,KAAK,IAAK;AAC9B,SAAO,KAAK,QAAQ,IAAI,IAAK;AAC7B,SAAO,KAAK,OAAO,IAAK;YACf,aAAa,IAAI;AAC1B,SAAO,KAAK,QAAQ,KAAK,IAAK;AAC9B,SAAO,KAAK,QAAQ,IAAI,IAAK;YACpB,aAAa,GACtB,QAAO,KAAK,QAAQ,IAAI,IAAK;AAE/B,QAAO,IAAI,WAAW,OAAO;;AAE/B,SAAS,oBAAoB,QAAQ;CACnC,MAAM,MAAM,OAAO;CACnB,MAAM,MAAM;CAEZ,IAAI,SAAS;CACb,IAAI,OAAO;AACX,MAAI,IAAI,MAAM,GAAG,MAAM,KAAK,OAAM;AAChC,MAAI,MAAM,MAAM,KAAK,KAAK;AACxB,aAAU,IAAI,QAAQ,KAAK;AAC3B,aAAU,IAAI,QAAQ,KAAK;AAC3B,aAAU,IAAI,QAAQ,IAAI;AAC1B,aAAU,IAAI,OAAO;;AAEvB,UAAQ,QAAQ,KAAK,OAAO;;CAG9B,MAAM,OAAO,MAAM;AACnB,KAAI,SAAS,GAAG;AACd,YAAU,IAAI,QAAQ,KAAK;AAC3B,YAAU,IAAI,QAAQ,KAAK;AAC3B,YAAU,IAAI,QAAQ,IAAI;AAC1B,YAAU,IAAI,OAAO;YACZ,SAAS,GAAG;AACrB,YAAU,IAAI,QAAQ,KAAK;AAC3B,YAAU,IAAI,QAAQ,IAAI;AAC1B,YAAU,IAAI,QAAQ,IAAI;AAC1B,YAAU,IAAI;YACL,SAAS,GAAG;AACrB,YAAU,IAAI,QAAQ,IAAI;AAC1B,YAAU,IAAI,QAAQ,IAAI;AAC1B,YAAU,IAAI;AACd,YAAU,IAAI;;AAEhB,QAAO;;AAET,SAAS,SAAS,KAAK;AACrB,QAAO,eAAe;;AAExB,MAAa,SAAS;CACpB,KAAK;CACL,WAAW;CACX,MAAM;CACN,WAAW;CACX,WAAW;CACX,SAAS;CACV"}
@@ -0,0 +1,35 @@
1
+ //#region node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/bool.js
2
+ const YAML_TRUE_BOOLEANS = [
3
+ "true",
4
+ "True",
5
+ "TRUE"
6
+ ];
7
+ const YAML_FALSE_BOOLEANS = [
8
+ "false",
9
+ "False",
10
+ "FALSE"
11
+ ];
12
+ const YAML_BOOLEANS = [...YAML_TRUE_BOOLEANS, ...YAML_FALSE_BOOLEANS];
13
+ const bool = {
14
+ tag: "tag:yaml.org,2002:bool",
15
+ kind: "scalar",
16
+ defaultStyle: "lowercase",
17
+ predicate: (value) => typeof value === "boolean" || value instanceof Boolean,
18
+ construct: (data) => YAML_TRUE_BOOLEANS.includes(data),
19
+ resolve: (data) => YAML_BOOLEANS.includes(data),
20
+ represent: {
21
+ lowercase: (object) => {
22
+ return (object instanceof Boolean ? object.valueOf() : object) ? "true" : "false";
23
+ },
24
+ uppercase: (object) => {
25
+ return (object instanceof Boolean ? object.valueOf() : object) ? "TRUE" : "FALSE";
26
+ },
27
+ camelcase: (object) => {
28
+ return (object instanceof Boolean ? object.valueOf() : object) ? "True" : "False";
29
+ }
30
+ }
31
+ };
32
+
33
+ //#endregion
34
+ export { bool };
35
+ //# sourceMappingURL=bool.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bool.mjs","names":[],"sources":["../../../../../../../../node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/bool.js"],"sourcesContent":["// Ported from js-yaml v3.13.1:\n// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da\n// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.\n// Copyright 2018-2025 the Deno authors. MIT license.\nconst YAML_TRUE_BOOLEANS = [\n \"true\",\n \"True\",\n \"TRUE\"\n];\nconst YAML_FALSE_BOOLEANS = [\n \"false\",\n \"False\",\n \"FALSE\"\n];\nconst YAML_BOOLEANS = [\n ...YAML_TRUE_BOOLEANS,\n ...YAML_FALSE_BOOLEANS\n];\nexport const bool = {\n tag: \"tag:yaml.org,2002:bool\",\n kind: \"scalar\",\n defaultStyle: \"lowercase\",\n predicate: (value)=>typeof value === \"boolean\" || value instanceof Boolean,\n construct: (data)=>YAML_TRUE_BOOLEANS.includes(data),\n resolve: (data)=>YAML_BOOLEANS.includes(data),\n represent: {\n // deno-lint-ignore ban-types\n lowercase: (object)=>{\n const value = object instanceof Boolean ? object.valueOf() : object;\n return value ? \"true\" : \"false\";\n },\n // deno-lint-ignore ban-types\n uppercase: (object)=>{\n const value = object instanceof Boolean ? object.valueOf() : object;\n return value ? \"TRUE\" : \"FALSE\";\n },\n // deno-lint-ignore ban-types\n camelcase: (object)=>{\n const value = object instanceof Boolean ? object.valueOf() : object;\n return value ? \"True\" : \"False\";\n }\n }\n};\n//# sourceMappingURL=bool.js.map"],"x_google_ignoreList":[0],"mappings":";AAIA,MAAM,qBAAqB;CACzB;CACA;CACA;CACD;AACD,MAAM,sBAAsB;CAC1B;CACA;CACA;CACD;AACD,MAAM,gBAAgB,CACpB,GAAG,oBACH,GAAG,oBACJ;AACD,MAAa,OAAO;CAClB,KAAK;CACL,MAAM;CACN,cAAc;CACd,YAAY,UAAQ,OAAO,UAAU,aAAa,iBAAiB;CACnE,YAAY,SAAO,mBAAmB,SAAS,KAAK;CACpD,UAAU,SAAO,cAAc,SAAS,KAAK;CAC7C,WAAW;EAET,YAAY,WAAS;AAEnB,WADc,kBAAkB,UAAU,OAAO,SAAS,GAAG,UAC9C,SAAS;;EAG1B,YAAY,WAAS;AAEnB,WADc,kBAAkB,UAAU,OAAO,SAAS,GAAG,UAC9C,SAAS;;EAG1B,YAAY,WAAS;AAEnB,WADc,kBAAkB,UAAU,OAAO,SAAS,GAAG,UAC9C,SAAS;;EAE3B;CACF"}
@@ -0,0 +1,55 @@
1
+ import { isNegativeZero } from "../_utils.mjs";
2
+
3
+ //#region node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/float.js
4
+ const YAML_FLOAT_PATTERN = /* @__PURE__ */ new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");
5
+ function resolveYamlFloat(data) {
6
+ if (!YAML_FLOAT_PATTERN.test(data) || data[data.length - 1] === "_") return false;
7
+ return true;
8
+ }
9
+ function constructYamlFloat(data) {
10
+ let value = data.replace(/_/g, "").toLowerCase();
11
+ const sign = value[0] === "-" ? -1 : 1;
12
+ if (value[0] && "+-".includes(value[0])) value = value.slice(1);
13
+ if (value === ".inf") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
14
+ if (value === ".nan") return NaN;
15
+ return sign * parseFloat(value);
16
+ }
17
+ const SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
18
+ function representYamlFloat(object, style) {
19
+ const value = object instanceof Number ? object.valueOf() : object;
20
+ if (isNaN(value)) switch (style) {
21
+ case "lowercase": return ".nan";
22
+ case "uppercase": return ".NAN";
23
+ case "camelcase": return ".NaN";
24
+ }
25
+ else if (Number.POSITIVE_INFINITY === value) switch (style) {
26
+ case "lowercase": return ".inf";
27
+ case "uppercase": return ".INF";
28
+ case "camelcase": return ".Inf";
29
+ }
30
+ else if (Number.NEGATIVE_INFINITY === value) switch (style) {
31
+ case "lowercase": return "-.inf";
32
+ case "uppercase": return "-.INF";
33
+ case "camelcase": return "-.Inf";
34
+ }
35
+ else if (isNegativeZero(value)) return "-0.0";
36
+ const res = value.toString(10);
37
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
38
+ }
39
+ function isFloat(object) {
40
+ if (object instanceof Number) object = object.valueOf();
41
+ return typeof object === "number" && (object % 1 !== 0 || isNegativeZero(object));
42
+ }
43
+ const float = {
44
+ tag: "tag:yaml.org,2002:float",
45
+ construct: constructYamlFloat,
46
+ defaultStyle: "lowercase",
47
+ kind: "scalar",
48
+ predicate: isFloat,
49
+ represent: representYamlFloat,
50
+ resolve: resolveYamlFloat
51
+ };
52
+
53
+ //#endregion
54
+ export { float };
55
+ //# sourceMappingURL=float.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float.mjs","names":[],"sources":["../../../../../../../../node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/float.js"],"sourcesContent":["// Ported from js-yaml v3.13.1:\n// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da\n// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.\n// Copyright 2018-2025 the Deno authors. MIT license.\nimport { isNegativeZero } from \"../_utils.js\";\nconst YAML_FLOAT_PATTERN = new RegExp(// 2.5e4, 2.5 and integers\n\"^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?\" + // .2e4, .2\n// special case, seems not from spec\n\"|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?\" + // .inf\n\"|[-+]?\\\\.(?:inf|Inf|INF)\" + // .nan\n\"|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat(data) {\n if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === \"_\") {\n return false;\n }\n return true;\n}\nfunction constructYamlFloat(data) {\n let value = data.replace(/_/g, \"\").toLowerCase();\n const sign = value[0] === \"-\" ? -1 : 1;\n if (value[0] && \"+-\".includes(value[0])) {\n value = value.slice(1);\n }\n if (value === \".inf\") {\n return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n }\n if (value === \".nan\") {\n return NaN;\n }\n return sign * parseFloat(value);\n}\nconst SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\nfunction representYamlFloat(// deno-lint-ignore ban-types\nobject, style) {\n const value = object instanceof Number ? object.valueOf() : object;\n if (isNaN(value)) {\n switch(style){\n case \"lowercase\":\n return \".nan\";\n case \"uppercase\":\n return \".NAN\";\n case \"camelcase\":\n return \".NaN\";\n }\n } else if (Number.POSITIVE_INFINITY === value) {\n switch(style){\n case \"lowercase\":\n return \".inf\";\n case \"uppercase\":\n return \".INF\";\n case \"camelcase\":\n return \".Inf\";\n }\n } else if (Number.NEGATIVE_INFINITY === value) {\n switch(style){\n case \"lowercase\":\n return \"-.inf\";\n case \"uppercase\":\n return \"-.INF\";\n case \"camelcase\":\n return \"-.Inf\";\n }\n } else if (isNegativeZero(value)) {\n return \"-0.0\";\n }\n const res = value.toString(10);\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requires dot: 5.e-100. Fix it with simple hack\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace(\"e\", \".e\") : res;\n}\nfunction isFloat(object) {\n if (object instanceof Number) object = object.valueOf();\n return typeof object === \"number\" && (object % 1 !== 0 || isNegativeZero(object));\n}\nexport const float = {\n tag: \"tag:yaml.org,2002:float\",\n construct: constructYamlFloat,\n defaultStyle: \"lowercase\",\n kind: \"scalar\",\n predicate: isFloat,\n represent: representYamlFloat,\n resolve: resolveYamlFloat\n};\n//# sourceMappingURL=float.js.map"],"x_google_ignoreList":[0],"mappings":";;;AAKA,MAAM,qCAAqB,IAAI,OAC/B,6IAIwB;AACxB,SAAS,iBAAiB,MAAM;AAC9B,KAAI,CAAC,mBAAmB,KAAK,KAAK,IAElC,KAAK,KAAK,SAAS,OAAO,IACxB,QAAO;AAET,QAAO;;AAET,SAAS,mBAAmB,MAAM;CAChC,IAAI,QAAQ,KAAK,QAAQ,MAAM,GAAG,CAAC,aAAa;CAChD,MAAM,OAAO,MAAM,OAAO,MAAM,KAAK;AACrC,KAAI,MAAM,MAAM,KAAK,SAAS,MAAM,GAAG,CACrC,SAAQ,MAAM,MAAM,EAAE;AAExB,KAAI,UAAU,OACZ,QAAO,SAAS,IAAI,OAAO,oBAAoB,OAAO;AAExD,KAAI,UAAU,OACZ,QAAO;AAET,QAAO,OAAO,WAAW,MAAM;;AAEjC,MAAM,yBAAyB;AAC/B,SAAS,mBACT,QAAQ,OAAO;CACb,MAAM,QAAQ,kBAAkB,SAAS,OAAO,SAAS,GAAG;AAC5D,KAAI,MAAM,MAAM,CACd,SAAO,OAAP;EACE,KAAK,YACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,YACH,QAAO;;UAEF,OAAO,sBAAsB,MACtC,SAAO,OAAP;EACE,KAAK,YACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,YACH,QAAO;;UAEF,OAAO,sBAAsB,MACtC,SAAO,OAAP;EACE,KAAK,YACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,YACH,QAAO;;UAEF,eAAe,MAAM,CAC9B,QAAO;CAET,MAAM,MAAM,MAAM,SAAS,GAAG;AAG9B,QAAO,uBAAuB,KAAK,IAAI,GAAG,IAAI,QAAQ,KAAK,KAAK,GAAG;;AAErE,SAAS,QAAQ,QAAQ;AACvB,KAAI,kBAAkB,OAAQ,UAAS,OAAO,SAAS;AACvD,QAAO,OAAO,WAAW,aAAa,SAAS,MAAM,KAAK,eAAe,OAAO;;AAElF,MAAa,QAAQ;CACnB,KAAK;CACL,WAAW;CACX,cAAc;CACd,MAAM;CACN,WAAW;CACX,WAAW;CACX,SAAS;CACV"}
@@ -0,0 +1,114 @@
1
+ import { isNegativeZero } from "../_utils.mjs";
2
+
3
+ //#region node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/int.js
4
+ function isCharCodeInRange(c, lower, upper) {
5
+ return lower <= c && c <= upper;
6
+ }
7
+ function isHexCode(c) {
8
+ return isCharCodeInRange(c, 48, 57) || isCharCodeInRange(c, 65, 70) || isCharCodeInRange(c, 97, 102);
9
+ }
10
+ function isOctCode(c) {
11
+ return isCharCodeInRange(c, 48, 55);
12
+ }
13
+ function isDecCode(c) {
14
+ return isCharCodeInRange(c, 48, 57);
15
+ }
16
+ function resolveYamlInteger(data) {
17
+ const max = data.length;
18
+ let index = 0;
19
+ let hasDigits = false;
20
+ if (!max) return false;
21
+ let ch = data[index];
22
+ if (ch === "-" || ch === "+") ch = data[++index];
23
+ if (ch === "0") {
24
+ if (index + 1 === max) return true;
25
+ ch = data[++index];
26
+ if (ch === "b") {
27
+ index++;
28
+ for (; index < max; index++) {
29
+ ch = data[index];
30
+ if (ch === "_") continue;
31
+ if (ch !== "0" && ch !== "1") return false;
32
+ hasDigits = true;
33
+ }
34
+ return hasDigits && ch !== "_";
35
+ }
36
+ if (ch === "x") {
37
+ index++;
38
+ for (; index < max; index++) {
39
+ ch = data[index];
40
+ if (ch === "_") continue;
41
+ if (!isHexCode(data.charCodeAt(index))) return false;
42
+ hasDigits = true;
43
+ }
44
+ return hasDigits && ch !== "_";
45
+ }
46
+ for (; index < max; index++) {
47
+ ch = data[index];
48
+ if (ch === "_") continue;
49
+ if (!isOctCode(data.charCodeAt(index))) return false;
50
+ hasDigits = true;
51
+ }
52
+ return hasDigits && ch !== "_";
53
+ }
54
+ if (ch === "_") return false;
55
+ for (; index < max; index++) {
56
+ ch = data[index];
57
+ if (ch === "_") continue;
58
+ if (!isDecCode(data.charCodeAt(index))) return false;
59
+ hasDigits = true;
60
+ }
61
+ if (!hasDigits || ch === "_") return false;
62
+ return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
63
+ }
64
+ function constructYamlInteger(data) {
65
+ let value = data;
66
+ if (value.includes("_")) value = value.replace(/_/g, "");
67
+ let sign = 1;
68
+ let ch = value[0];
69
+ if (ch === "-" || ch === "+") {
70
+ if (ch === "-") sign = -1;
71
+ value = value.slice(1);
72
+ ch = value[0];
73
+ }
74
+ if (value === "0") return 0;
75
+ if (ch === "0") {
76
+ if (value[1] === "b") return sign * parseInt(value.slice(2), 2);
77
+ if (value[1] === "x") return sign * parseInt(value, 16);
78
+ return sign * parseInt(value, 8);
79
+ }
80
+ return sign * parseInt(value, 10);
81
+ }
82
+ function isInteger(object) {
83
+ if (object instanceof Number) object = object.valueOf();
84
+ return typeof object === "number" && object % 1 === 0 && !isNegativeZero(object);
85
+ }
86
+ const int = {
87
+ tag: "tag:yaml.org,2002:int",
88
+ construct: constructYamlInteger,
89
+ defaultStyle: "decimal",
90
+ kind: "scalar",
91
+ predicate: isInteger,
92
+ represent: {
93
+ binary(object) {
94
+ const value = object instanceof Number ? object.valueOf() : object;
95
+ return value >= 0 ? `0b${value.toString(2)}` : `-0b${value.toString(2).slice(1)}`;
96
+ },
97
+ octal(object) {
98
+ const value = object instanceof Number ? object.valueOf() : object;
99
+ return value >= 0 ? `0${value.toString(8)}` : `-0${value.toString(8).slice(1)}`;
100
+ },
101
+ decimal(object) {
102
+ return (object instanceof Number ? object.valueOf() : object).toString(10);
103
+ },
104
+ hexadecimal(object) {
105
+ const value = object instanceof Number ? object.valueOf() : object;
106
+ return value >= 0 ? `0x${value.toString(16).toUpperCase()}` : `-0x${value.toString(16).toUpperCase().slice(1)}`;
107
+ }
108
+ },
109
+ resolve: resolveYamlInteger
110
+ };
111
+
112
+ //#endregion
113
+ export { int };
114
+ //# sourceMappingURL=int.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"int.mjs","names":[],"sources":["../../../../../../../../node_modules/.pnpm/@jsr+std__yaml@1.0.10/node_modules/@jsr/std__yaml/_type/int.js"],"sourcesContent":["// Ported from js-yaml v3.13.1:\n// https://github.com/nodeca/js-yaml/commit/665aadda42349dcae869f12040d9b10ef18d12da\n// Copyright 2011-2015 by Vitaly Puzrin. All rights reserved. MIT license.\n// Copyright 2018-2025 the Deno authors. MIT license.\nimport { isNegativeZero } from \"../_utils.js\";\nfunction isCharCodeInRange(c, lower, upper) {\n return lower <= c && c <= upper;\n}\nfunction isHexCode(c) {\n return isCharCodeInRange(c, 0x30, 0x39) || // 0-9\n isCharCodeInRange(c, 0x41, 0x46) || // A-F\n isCharCodeInRange(c, 0x61, 0x66) // a-f\n ;\n}\nfunction isOctCode(c) {\n return isCharCodeInRange(c, 0x30, 0x37); // 0-7\n}\nfunction isDecCode(c) {\n return isCharCodeInRange(c, 0x30, 0x39); // 0-9\n}\nfunction resolveYamlInteger(data) {\n const max = data.length;\n let index = 0;\n let hasDigits = false;\n if (!max) return false;\n let ch = data[index];\n // sign\n if (ch === \"-\" || ch === \"+\") {\n ch = data[++index];\n }\n if (ch === \"0\") {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n // base 2, base 8, base 16\n if (ch === \"b\") {\n // base 2\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (ch !== \"0\" && ch !== \"1\") return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n if (ch === \"x\") {\n // base 16\n index++;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n // base 8\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== \"_\";\n }\n // base 10 (except 0) or base 60\n // value should not start with `_`;\n if (ch === \"_\") return false;\n for(; index < max; index++){\n ch = data[index];\n if (ch === \"_\") continue;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === \"_\") return false;\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\nfunction constructYamlInteger(data) {\n let value = data;\n if (value.includes(\"_\")) {\n value = value.replace(/_/g, \"\");\n }\n let sign = 1;\n let ch = value[0];\n if (ch === \"-\" || ch === \"+\") {\n if (ch === \"-\") sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n if (value === \"0\") return 0;\n if (ch === \"0\") {\n if (value[1] === \"b\") return sign * parseInt(value.slice(2), 2);\n if (value[1] === \"x\") return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n return sign * parseInt(value, 10);\n}\nfunction isInteger(object) {\n if (object instanceof Number) object = object.valueOf();\n return typeof object === \"number\" && object % 1 === 0 && !isNegativeZero(object);\n}\nexport const int = {\n tag: \"tag:yaml.org,2002:int\",\n construct: constructYamlInteger,\n defaultStyle: \"decimal\",\n kind: \"scalar\",\n predicate: isInteger,\n represent: {\n // deno-lint-ignore ban-types\n binary (object) {\n const value = object instanceof Number ? object.valueOf() : object;\n return value >= 0 ? `0b${value.toString(2)}` : `-0b${value.toString(2).slice(1)}`;\n },\n // deno-lint-ignore ban-types\n octal (object) {\n const value = object instanceof Number ? object.valueOf() : object;\n return value >= 0 ? `0${value.toString(8)}` : `-0${value.toString(8).slice(1)}`;\n },\n // deno-lint-ignore ban-types\n decimal (object) {\n const value = object instanceof Number ? object.valueOf() : object;\n return value.toString(10);\n },\n // deno-lint-ignore ban-types\n hexadecimal (object) {\n const value = object instanceof Number ? object.valueOf() : object;\n return value >= 0 ? `0x${value.toString(16).toUpperCase()}` : `-0x${value.toString(16).toUpperCase().slice(1)}`;\n }\n },\n resolve: resolveYamlInteger\n};\n//# sourceMappingURL=int.js.map"],"x_google_ignoreList":[0],"mappings":"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"}