@gdacm/dashboard-manager 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["yamlDump","yamlLoad"],"sources":["../../../node_modules/js-yaml/dist/js-yaml.mjs","../src/utils/io.js","../src/info.js","../src/FolderInfo.js","../src/DashboardInfo.js","../src/DashboardsInfo.js","../src/DashboardProject.js","../src/utils/id.js","../src/api/httpClient/index.js","../src/api/GrafanaApi.js","../src/DashboardManager.js","../src/dashboards.js"],"sourcesContent":["/*! js-yaml 5.4.1 https://github.com/nodeca/js-yaml @license MIT */\n//#region src/tag.ts\n/**\n* Returned by a scalar resolver when the source does not match its tag.\n*\n* @category Tags\n*/\nvar NOT_RESOLVED = Symbol(\"NOT_RESOLVED\");\n/**\n* Create a normalized scalar tag definition.\n*\n* @category Tags\n*/\nfunction defineScalarTag(tagName, options) {\n\treturn {\n\t\ttagName,\n\t\tnodeKind: \"scalar\",\n\t\timplicit: options.implicit ?? false,\n\t\tmatchByTagPrefix: options.matchByTagPrefix ?? false,\n\t\timplicitFirstChars: options.implicitFirstChars ?? null,\n\t\tresolve: options.resolve,\n\t\tidentify: options.identify,\n\t\trepresent: options.represent ?? ((data) => String(data)),\n\t\trepresentTagName: options.representTagName ?? (() => tagName)\n\t};\n}\n/**\n* Create a normalized sequence tag definition.\n*\n* @category Tags\n*/\nfunction defineSequenceTag(tagName, options) {\n\tconst carrierIsResult = options.finalize === void 0;\n\treturn {\n\t\ttagName,\n\t\tnodeKind: \"sequence\",\n\t\timplicit: false,\n\t\tmatchByTagPrefix: options.matchByTagPrefix ?? false,\n\t\tcreate: options.create,\n\t\taddItem: options.addItem,\n\t\tfinalize: options.finalize ?? ((carrier) => carrier),\n\t\tcarrierIsResult,\n\t\tidentify: options.identify,\n\t\trepresent: options.represent ?? ((data) => data),\n\t\trepresentTagName: options.representTagName ?? (() => tagName)\n\t};\n}\n/**\n* Create a normalized mapping tag definition.\n*\n* @category Tags\n*/\nfunction defineMappingTag(tagName, options) {\n\tconst carrierIsResult = options.finalize === void 0;\n\treturn {\n\t\ttagName,\n\t\tnodeKind: \"mapping\",\n\t\timplicit: false,\n\t\tmatchByTagPrefix: options.matchByTagPrefix ?? false,\n\t\tcreate: options.create,\n\t\taddPair: options.addPair,\n\t\thas: options.has,\n\t\tkeys: options.keys,\n\t\tget: options.get,\n\t\tfinalize: options.finalize ?? ((carrier) => carrier),\n\t\tcarrierIsResult,\n\t\tidentify: options.identify,\n\t\trepresent: options.represent ?? ((data) => data),\n\t\trepresentTagName: options.representTagName ?? (() => tagName)\n\t};\n}\n//#endregion\n//#region src/tag/scalar/str.ts\n/** @category Tags */\nvar strTag = defineScalarTag(\"tag:yaml.org,2002:str\", {\n\tresolve: (source) => source,\n\tidentify: (data) => typeof data === \"string\"\n});\n//#endregion\n//#region src/tag/scalar/null_core.ts\nvar NULL_VALUES$1 = [\n\t\"\",\n\t\"~\",\n\t\"null\",\n\t\"Null\",\n\t\"NULL\"\n];\n/** @category Tags */\nvar nullCoreTag = defineScalarTag(\"tag:yaml.org,2002:null\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"\",\n\t\t\"~\",\n\t\t\"n\",\n\t\t\"N\"\n\t],\n\tresolve: (source) => {\n\t\tif (NULL_VALUES$1.indexOf(source) !== -1) return null;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => object === null,\n\trepresent: () => \"null\"\n});\n//#endregion\n//#region src/tag/scalar/null_json.ts\n/** @category Tags */\nvar nullJsonTag = defineScalarTag(\"tag:yaml.org,2002:null\", {\n\timplicit: true,\n\timplicitFirstChars: [\"n\"],\n\tresolve: (source, isExplicit) => {\n\t\tif (source === \"null\" || isExplicit && source === \"\") return null;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => object === null,\n\trepresent: () => \"null\"\n});\n//#endregion\n//#region src/tag/scalar/null_yaml11.ts\nvar NULL_VALUES = [\n\t\"\",\n\t\"~\",\n\t\"null\",\n\t\"Null\",\n\t\"NULL\"\n];\n/** @category Tags */\nvar nullYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:null\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"\",\n\t\t\"~\",\n\t\t\"n\",\n\t\t\"N\"\n\t],\n\tresolve: (source) => {\n\t\tif (NULL_VALUES.indexOf(source) !== -1) return null;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => object === null,\n\trepresent: () => \"null\"\n});\n//#endregion\n//#region src/tag/scalar/bool_core.ts\nvar TRUE_VALUES$2 = [\n\t\"true\",\n\t\"True\",\n\t\"TRUE\"\n];\nvar FALSE_VALUES$2 = [\n\t\"false\",\n\t\"False\",\n\t\"FALSE\"\n];\n/** @category Tags */\nvar boolCoreTag = defineScalarTag(\"tag:yaml.org,2002:bool\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"t\",\n\t\t\"T\",\n\t\t\"f\",\n\t\t\"F\"\n\t],\n\tresolve: (source) => {\n\t\tif (TRUE_VALUES$2.indexOf(source) !== -1) return true;\n\t\tif (FALSE_VALUES$2.indexOf(source) !== -1) return false;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Boolean]\",\n\trepresent: (object) => object ? \"true\" : \"false\"\n});\n//#endregion\n//#region src/tag/scalar/bool_json.ts\nvar TRUE_VALUES$1 = [\"true\"];\nvar FALSE_VALUES$1 = [\"false\"];\n/** @category Tags */\nvar boolJsonTag = defineScalarTag(\"tag:yaml.org,2002:bool\", {\n\timplicit: true,\n\timplicitFirstChars: [\"t\", \"f\"],\n\tresolve: (source) => {\n\t\tif (TRUE_VALUES$1.indexOf(source) !== -1) return true;\n\t\tif (FALSE_VALUES$1.indexOf(source) !== -1) return false;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Boolean]\",\n\trepresent: (object) => object ? \"true\" : \"false\"\n});\n//#endregion\n//#region src/tag/scalar/bool_yaml11.ts\nvar TRUE_VALUES = [\n\t\"true\",\n\t\"True\",\n\t\"TRUE\",\n\t\"y\",\n\t\"Y\",\n\t\"yes\",\n\t\"Yes\",\n\t\"YES\",\n\t\"on\",\n\t\"On\",\n\t\"ON\"\n];\nvar FALSE_VALUES = [\n\t\"false\",\n\t\"False\",\n\t\"FALSE\",\n\t\"n\",\n\t\"N\",\n\t\"no\",\n\t\"No\",\n\t\"NO\",\n\t\"off\",\n\t\"Off\",\n\t\"OFF\"\n];\n/** @category Tags */\nvar boolYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:bool\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"y\",\n\t\t\"Y\",\n\t\t\"n\",\n\t\t\"N\",\n\t\t\"t\",\n\t\t\"T\",\n\t\t\"f\",\n\t\t\"F\",\n\t\t\"o\",\n\t\t\"O\"\n\t],\n\tresolve: (source) => {\n\t\tif (TRUE_VALUES.indexOf(source) !== -1) return true;\n\t\tif (FALSE_VALUES.indexOf(source) !== -1) return false;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Boolean]\",\n\trepresent: (object) => object ? \"true\" : \"false\"\n});\n//#endregion\n//#region src/tag/scalar/int_core.ts\nvar YAML_INTEGER_IMPLICIT_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:0o[0-7]+|0x[0-9a-fA-F]+|[-+]?[0-9]+)$\");\nvar YAML_INTEGER_EXPLICIT_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$\");\nfunction parseYamlInteger$2(source) {\n\tlet value = source;\n\tlet sign = 1;\n\tif (value[0] === \"-\" || value[0] === \"+\") {\n\t\tif (value[0] === \"-\") sign = -1;\n\t\tvalue = value.slice(1);\n\t}\n\tif (value.startsWith(\"0b\")) return sign * parseInt(value.slice(2), 2);\n\tif (value.startsWith(\"0o\")) return sign * parseInt(value.slice(2), 8);\n\tif (value.startsWith(\"0x\")) return sign * parseInt(value.slice(2), 16);\n\treturn sign * parseInt(value, 10);\n}\nfunction resolveYamlInteger$2(source, isExplicit) {\n\tif (isExplicit) {\n\t\tif (!YAML_INTEGER_EXPLICIT_PATTERN$1.test(source)) return NOT_RESOLVED;\n\t} else if (!YAML_INTEGER_IMPLICIT_PATTERN$1.test(source)) return NOT_RESOLVED;\n\tconst result = parseYamlInteger$2(source);\n\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n}\n/** @category Tags */\nvar intCoreTag = defineScalarTag(\"tag:yaml.org,2002:int\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlInteger$2,\n\tidentify: (object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf(\"e\") < 0,\n\trepresent: (object) => object.toString(10)\n});\n//#endregion\n//#region src/tag/scalar/int_json.ts\nvar YAML_INTEGER_IMPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^-?(?:0|[1-9][0-9]*)$\");\nvar YAML_INTEGER_EXPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$\");\nfunction parseYamlInteger$1(source) {\n\tlet value = source;\n\tlet sign = 1;\n\tif (value[0] === \"-\" || value[0] === \"+\") {\n\t\tif (value[0] === \"-\") sign = -1;\n\t\tvalue = value.slice(1);\n\t}\n\tif (value.startsWith(\"0b\")) return sign * parseInt(value.slice(2), 2);\n\tif (value.startsWith(\"0o\")) return sign * parseInt(value.slice(2), 8);\n\tif (value.startsWith(\"0x\")) return sign * parseInt(value.slice(2), 16);\n\treturn sign * parseInt(value, 10);\n}\nfunction resolveYamlInteger$1(source, isExplicit) {\n\tif (isExplicit) {\n\t\tif (!YAML_INTEGER_EXPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\t} else if (!YAML_INTEGER_IMPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\tconst result = parseYamlInteger$1(source);\n\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n}\n/** @category Tags */\nvar intJsonTag = defineScalarTag(\"tag:yaml.org,2002:int\", {\n\timplicit: true,\n\timplicitFirstChars: [\"-\", ...\"0123456789\"],\n\tresolve: resolveYamlInteger$1,\n\tidentify: (object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf(\"e\") < 0,\n\trepresent: (object) => object.toString(10)\n});\n//#endregion\n//#region src/tag/scalar/int_yaml11.ts\nvar YAML_INTEGER_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?0x[0-9a-fA-F_]+|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+|[-+]?(?:0|[1-9][0-9_]*))$\");\nfunction parseYamlInteger(source) {\n\tlet value = source.replace(/_/g, \"\");\n\tlet sign = 1;\n\tif (value[0] === \"-\" || value[0] === \"+\") {\n\t\tif (value[0] === \"-\") sign = -1;\n\t\tvalue = value.slice(1);\n\t}\n\tif (value.startsWith(\"0b\")) return sign * parseInt(value.slice(2), 2);\n\tif (value.startsWith(\"0x\")) return sign * parseInt(value.slice(2), 16);\n\tif (value.includes(\":\")) {\n\t\tlet result = 0;\n\t\tfor (const part of value.split(\":\")) result = result * 60 + Number(part);\n\t\treturn sign * result;\n\t}\n\tif (value !== \"0\" && value[0] === \"0\") return sign * parseInt(value, 8);\n\treturn sign * parseInt(value, 10);\n}\nfunction resolveYamlInteger(source) {\n\tif (!YAML_INTEGER_PATTERN.test(source)) return NOT_RESOLVED;\n\tconst result = parseYamlInteger(source);\n\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n}\n/** @category Tags */\nvar intYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:int\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlInteger,\n\tidentify: (object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf(\"e\") < 0,\n\trepresent: (object) => object.toString(10)\n});\n//#endregion\n//#region src/tag/scalar/float_core.ts\nvar YAML_FLOAT_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:[-+]?[0-9]+(?:\\\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nvar YAML_FLOAT_SPECIAL_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat$2(source) {\n\tif (!YAML_FLOAT_PATTERN$1.test(source)) return NOT_RESOLVED;\n\tlet value = source.toLowerCase();\n\tconst sign = value[0] === \"-\" ? -1 : 1;\n\tif (\"+-\".includes(value[0])) value = value.slice(1);\n\tif (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\tif (value === \".nan\") return NaN;\n\tconst result = sign * parseFloat(value);\n\tif (Number.isFinite(result) || YAML_FLOAT_SPECIAL_PATTERN$1.test(source)) return result;\n\treturn NOT_RESOLVED;\n}\nfunction representYamlFloat$2(object) {\n\tif (isNaN(object)) return \".nan\";\n\tif (object === Number.POSITIVE_INFINITY) return \".inf\";\n\tif (object === Number.NEGATIVE_INFINITY) return \"-.inf\";\n\tif (Object.is(object, -0)) return \"-0.0\";\n\tconst result = object.toString(10);\n\treturn /^[-+]?[0-9]+e/.test(result) ? result.replace(\"e\", \".e\") : result;\n}\n/** @category Tags */\nvar floatCoreTag = defineScalarTag(\"tag:yaml.org,2002:float\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t\".\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlFloat$2,\n\tidentify: (object) => typeof object === \"number\" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf(\"e\") >= 0),\n\trepresent: representYamlFloat$2\n});\n//#endregion\n//#region src/tag/scalar/float_json.ts\nvar YAML_FLOAT_IMPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^-?(?:0|[1-9][0-9]*)(?:\\\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$\");\nvar YAML_FLOAT_EXPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?[0-9]+(?:\\\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat$1(source, isExplicit) {\n\tif (isExplicit) {\n\t\tif (!YAML_FLOAT_EXPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\t\tlet value = source.toLowerCase();\n\t\tconst sign = value[0] === \"-\" ? -1 : 1;\n\t\tif (\"+-\".includes(value[0])) value = value.slice(1);\n\t\tif (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\t\tif (value === \".nan\") return NaN;\n\t\tconst result = sign * parseFloat(value);\n\t\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n\t}\n\tif (!YAML_FLOAT_IMPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\tconst result = Number(source);\n\tif (Number.isFinite(result)) return result;\n\treturn NOT_RESOLVED;\n}\nfunction representYamlFloat$1(object) {\n\tif (isNaN(object)) return \".nan\";\n\tif (object === Number.POSITIVE_INFINITY) return \".inf\";\n\tif (object === Number.NEGATIVE_INFINITY) return \"-.inf\";\n\tif (Object.is(object, -0)) return \"-0.0\";\n\tconst result = object.toString(10);\n\treturn /^[-+]?[0-9]+e/.test(result) ? result.replace(\"e\", \".e\") : result;\n}\n/** @category Tags */\nvar floatJsonTag = defineScalarTag(\"tag:yaml.org,2002:float\", {\n\timplicit: true,\n\timplicitFirstChars: [\"-\", ...\"0123456789\"],\n\tresolve: resolveYamlFloat$1,\n\tidentify: (object) => typeof object === \"number\" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf(\"e\") >= 0),\n\trepresent: representYamlFloat$1\n});\n//#endregion\n//#region src/tag/scalar/float_yaml11.ts\nvar YAML_FLOAT_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?(?:(?:[0-9][0-9_]*)?\\\\.[0-9_]*)(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nvar YAML_FLOAT_SPECIAL_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat(source) {\n\tif (!YAML_FLOAT_PATTERN.test(source)) return NOT_RESOLVED;\n\tlet value = source.toLowerCase().replace(/_/g, \"\");\n\tconst sign = value[0] === \"-\" ? -1 : 1;\n\tif (\"+-\".includes(value[0])) value = value.slice(1);\n\tif (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\tif (value === \".nan\") return NaN;\n\tlet result = 0;\n\tif (value.includes(\":\")) {\n\t\tfor (const part of value.split(\":\")) result = result * 60 + Number(part);\n\t\tresult *= sign;\n\t} else result = sign * parseFloat(value);\n\tif (Number.isFinite(result) || YAML_FLOAT_SPECIAL_PATTERN.test(source)) return result;\n\treturn NOT_RESOLVED;\n}\nfunction representYamlFloat(object) {\n\tif (isNaN(object)) return \".nan\";\n\tif (object === Number.POSITIVE_INFINITY) return \".inf\";\n\tif (object === Number.NEGATIVE_INFINITY) return \"-.inf\";\n\tif (Object.is(object, -0)) return \"-0.0\";\n\tconst result = object.toString(10);\n\treturn /^[-+]?[0-9]+e/.test(result) ? result.replace(\"e\", \".e\") : result;\n}\n/** @category Tags */\nvar floatYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:float\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t\".\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlFloat,\n\tidentify: (object) => typeof object === \"number\" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf(\"e\") >= 0),\n\trepresent: representYamlFloat\n});\n//#endregion\n//#region src/tag/scalar/merge.ts\n/**\n* Enables merge keys in {@link CORE_SCHEMA} when added with\n* {@link Schema.withTags}.\n*\n* @category Tags\n*/\nvar mergeTag = defineScalarTag(\"tag:yaml.org,2002:merge\", {\n\timplicit: true,\n\timplicitFirstChars: [\"<\"],\n\tresolve: (source, isExplicit) => {\n\t\tif (source === \"<<\" || isExplicit && source === \"\") return \"<<\";\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: () => false\n});\n//#endregion\n//#region src/tag/scalar/binary.ts\nvar BASE64_PATTERN = /^[A-Za-z0-9+/]*={0,2}$/;\nfunction resolveYamlBinary(source) {\n\tconst input = source.replace(/\\s/g, \"\");\n\tif (input.length % 4 !== 0 || !BASE64_PATTERN.test(input)) return NOT_RESOLVED;\n\tconst binary = atob(input);\n\tconst result = new Uint8Array(binary.length);\n\tfor (let index = 0; index < binary.length; index++) result[index] = binary.charCodeAt(index);\n\treturn result;\n}\nfunction representYamlBinary(object) {\n\tlet binary = \"\";\n\tfor (let index = 0; index < object.length; index++) binary += String.fromCharCode(object[index]);\n\treturn btoa(binary);\n}\n/**\n* The `!!binary` tag, represented as a `Uint8Array`.\n*\n* @category Tags\n*/\nvar binaryTag = defineScalarTag(\"tag:yaml.org,2002:binary\", {\n\tresolve: resolveYamlBinary,\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Uint8Array]\",\n\trepresent: representYamlBinary\n});\n//#endregion\n//#region src/tag/scalar/timestamp.ts\nvar YAML_DATE_REGEXP = /* @__PURE__ */ new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\");\nvar YAML_TIMESTAMP_REGEXP = /* @__PURE__ */ new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");\nfunction makeUtcDate(year, month, day, hour = 0, minute = 0, second = 0, fraction = 0) {\n\tconst date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\tdate.setUTCFullYear(year, month, day);\n\treturn date;\n}\nfunction resolveYamlTimestamp(source) {\n\tlet match = YAML_DATE_REGEXP.exec(source);\n\tif (match === null) match = YAML_TIMESTAMP_REGEXP.exec(source);\n\tif (match === null) return NOT_RESOLVED;\n\tconst year = +match[1];\n\tconst month = +match[2] - 1;\n\tconst day = +match[3];\n\tif (!match[4]) {\n\t\tconst date = makeUtcDate(year, month, day);\n\t\tif (date.getUTCFullYear() !== year || date.getUTCMonth() !== month || date.getUTCDate() !== day) return NOT_RESOLVED;\n\t\treturn date;\n\t}\n\tconst hour = +match[4];\n\tconst minute = +match[5];\n\tconst second = +match[6];\n\tlet fraction = 0;\n\tif (hour > 23 || minute > 59 || second > 59) return NOT_RESOLVED;\n\tif (match[7]) {\n\t\tlet value = match[7].slice(0, 3);\n\t\twhile (value.length < 3) value += \"0\";\n\t\tfraction = +value;\n\t}\n\tconst date = makeUtcDate(year, month, day, hour, minute, second, fraction);\n\tif (date.getUTCFullYear() !== year || date.getUTCMonth() !== month || date.getUTCDate() !== day) return NOT_RESOLVED;\n\tif (match[9]) {\n\t\tconst offsetHour = +match[10];\n\t\tconst offsetMinute = +(match[11] || 0);\n\t\tif (offsetHour > 23 || offsetMinute > 59) return NOT_RESOLVED;\n\t\tconst offset = (offsetHour * 60 + offsetMinute) * 6e4;\n\t\tdate.setTime(date.getTime() - (match[9] === \"-\" ? -offset : offset));\n\t}\n\treturn date;\n}\n/**\n* The YAML 1.1 `!!timestamp` tag, represented as a JavaScript `Date`.\n*\n* @category Tags\n*/\nvar timestampTag = defineScalarTag(\"tag:yaml.org,2002:timestamp\", {\n\timplicit: true,\n\timplicitFirstChars: [...\"0123456789\"],\n\tresolve: resolveYamlTimestamp,\n\tidentify: (object) => object instanceof Date,\n\trepresent: (object) => object.toISOString()\n});\n//#endregion\n//#region src/tag/sequence/seq.ts\n/** @category Tags */\nvar seqTag = defineSequenceTag(\"tag:yaml.org,2002:seq\", {\n\tcreate: () => [],\n\taddItem: (container, item) => {\n\t\tcontainer.push(item);\n\t},\n\tidentify: Array.isArray\n});\n//#endregion\n//#region src/common/object.ts\nfunction isPlainObject(data) {\n\tif (data === null || typeof data !== \"object\" || Array.isArray(data)) return false;\n\tconst prototype = Object.getPrototypeOf(data);\n\treturn prototype === null || prototype === Object.prototype;\n}\nfunction pick(object, keys) {\n\tconst result = {};\n\tfor (const key of keys) if (object[key] !== void 0) result[key] = object[key];\n\treturn result;\n}\n//#endregion\n//#region src/tag/sequence/omap.ts\n/**\n* Provided only for YAML 1.1 compatibility and supported by the loader only.\n* JavaScript has no dedicated class to represent this type, so it cannot be\n* identified and dumped.\n*\n* ```yaml\n* !!omap\n* - one: 1\n* - two: 2\n* ```\n*\n* is loaded as\n*\n* ```javascript\n* [\n* { one: 1 },\n* { two: 2 }\n* ]\n* ```\n*\n* @category Tags\n*/\nvar omapTag = defineSequenceTag(\"tag:yaml.org,2002:omap\", {\n\tcreate: () => ({\n\t\tlist: [],\n\t\tseen: /* @__PURE__ */ new Set()\n\t}),\n\taddItem: (carrier, item) => {\n\t\tlet key;\n\t\tif (item instanceof Map) {\n\t\t\tif (item.size !== 1) return \"cannot resolve an ordered map item\";\n\t\t\tkey = item.keys().next().value;\n\t\t} else if (isPlainObject(item)) {\n\t\t\tconst itemKeys = Object.keys(item);\n\t\t\tif (itemKeys.length !== 1) return \"cannot resolve an ordered map item\";\n\t\t\tkey = itemKeys[0];\n\t\t} else return \"cannot resolve an ordered map item\";\n\t\tif (carrier.seen.has(key)) return \"duplicate key in ordered map\";\n\t\tcarrier.seen.add(key);\n\t\tcarrier.list.push(item);\n\t\treturn \"\";\n\t},\n\tfinalize: (carrier) => carrier.list,\n\tidentify: () => false\n});\n//#endregion\n//#region src/tag/sequence/pairs.ts\n/**\n* Provided only for YAML 1.1 compatibility and supported by the loader only.\n* JavaScript has no dedicated class to represent this type, so it cannot be\n* identified and dumped.\n*\n* ```yaml\n* !!pairs\n* - one: 1\n* - two: 2\n* ```\n*\n* is loaded as\n*\n* ```javascript\n* [\n* ['one', 1],\n* ['two', 2]\n* ]\n* ```\n*\n* @category Tags\n*/\nvar pairsTag = defineSequenceTag(\"tag:yaml.org,2002:pairs\", {\n\tcreate: () => [],\n\taddItem: (container, item) => {\n\t\tif (item instanceof Map) {\n\t\t\tif (item.size !== 1) return \"cannot resolve a pairs item\";\n\t\t\tcontainer.push(item.entries().next().value);\n\t\t\treturn \"\";\n\t\t}\n\t\tif (Object.prototype.toString.call(item) !== \"[object Object]\") return \"cannot resolve a pairs item\";\n\t\tconst object = item;\n\t\tconst keys = Object.keys(object);\n\t\tif (keys.length !== 1) return \"cannot resolve a pairs item\";\n\t\tcontainer.push([keys[0], object[keys[0]]]);\n\t\treturn \"\";\n\t},\n\tidentify: () => false\n});\n//#endregion\n//#region src/tag/mapping/map.ts\n/**\n* This is the default mapping implementation. It uses `{}` objects and has only\n* partial functionality due to language limitations. This choice was made\n* because users expect to get JavaScript objects, and it was left unchanged to\n* avoid too many breaking changes in the v5 release.\n*\n* Side effects:\n*\n* - `Object.hasOwn()` checks or `for...of` loops are required for safe use (to\n* avoid falling through to prototypes).\n* - Only scalar string keys are supported properly.\n* - Other scalar keys, such as `null` and numbers, are converted to strings.\n* This is historical behaviour, and it can cause side effects such as\n* problems with `!!merge`.\n*\n* Note that non-string scalar keys may be deprecated in future versions.\n*\n* Ideally, use {@link realMapTag} instead.\n*\n* @category Tags\n*/\nvar mapTag = defineMappingTag(\"tag:yaml.org,2002:map\", {\n\tcreate: () => ({}),\n\tidentify: isPlainObject,\n\trepresent: (o) => {\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const key of Object.keys(o)) map.set(key, o[key]);\n\t\treturn map;\n\t},\n\taddPair: (container, key, value) => {\n\t\tif (key !== null && typeof key === \"object\") return \"object-based map does not support complex keys\";\n\t\tconst normalizedKey = String(key);\n\t\tif (normalizedKey === \"__proto__\") Object.defineProperty(container, normalizedKey, {\n\t\t\tvalue,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\telse container[normalizedKey] = value;\n\t\treturn \"\";\n\t},\n\thas: (container, key) => {\n\t\tif (key !== null && typeof key === \"object\") return false;\n\t\treturn Object.prototype.hasOwnProperty.call(container, String(key));\n\t},\n\tkeys: (container) => Object.keys(container),\n\tget: (container, key) => {\n\t\tconst normalizedKey = String(key);\n\t\tif (!Object.prototype.hasOwnProperty.call(container, normalizedKey)) return null;\n\t\treturn container[normalizedKey];\n\t}\n});\n//#endregion\n//#region src/tag/mapping/set.ts\n/**\n* The YAML 1.1 `!!set` tag, represented as a JavaScript `Set`.\n*\n* @category Tags\n*/\nvar setTag = defineMappingTag(\"tag:yaml.org,2002:set\", {\n\tcreate: () => /* @__PURE__ */ new Set(),\n\tidentify: (data) => data instanceof Set,\n\trepresent: (data) => {\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const key of data) map.set(key, null);\n\t\treturn map;\n\t},\n\taddPair: (container, key, value) => {\n\t\tif (value !== null) return \"cannot resolve a set item\";\n\t\tcontainer.add(key);\n\t\treturn \"\";\n\t},\n\thas: (container, key) => container.has(key),\n\tkeys: (container) => container.keys(),\n\tget: () => null\n});\n//#endregion\n//#region src/schema.ts\nfunction createTagDefinitionMap() {\n\treturn {\n\t\tscalar: Object.create(null),\n\t\tsequence: Object.create(null),\n\t\tmapping: Object.create(null)\n\t};\n}\nfunction createTagDefinitionListMap() {\n\treturn {\n\t\tscalar: [],\n\t\tsequence: [],\n\t\tmapping: []\n\t};\n}\nfunction compileTags(tags) {\n\tconst result = [];\n\tfor (const tag of tags) {\n\t\tlet index = result.length;\n\t\tfor (let previousIndex = 0; previousIndex < result.length; previousIndex++) {\n\t\t\tconst previous = result[previousIndex];\n\t\t\tif (previous.nodeKind === tag.nodeKind && previous.tagName === tag.tagName && previous.matchByTagPrefix === tag.matchByTagPrefix) {\n\t\t\t\tindex = previousIndex;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tresult[index] = tag;\n\t}\n\treturn result;\n}\n/**\n* Controls tag resolution when loading and type selection when dumping.\n*\n* @category Schemas\n*/\nvar Schema = class Schema {\n\ttags;\n\t/** @internal */\n\timplicitScalarTags;\n\t/**\n\t* Dispatch implicit scalar resolvers by `source.charAt(0)`. Each bucket holds\n\t* the resolvers that may match that key, in schema order; a key absent from\n\t* the map uses\n\t* {@link Schema.implicitScalarAnyFirstChar}\n\t* (resolvers that declared no first-char constraint, so they apply to any\n\t* first character).\n\t*/\n\timplicitScalarByFirstChar;\n\timplicitScalarAnyFirstChar;\n\t/**\n\t* The default scalar tag (`!!str`), resolved once so the composer's fallback\n\t* for unresolved plain scalars avoids a keyed lookup per scalar.\n\t*\n\t* @internal\n\t*/\n\tdefaultScalarTag;\n\t/**\n\t* The default container tags (`!!seq` / `!!map`), used by the dumper: when a\n\t* value is identified by its default tag, the tag is implicit and not\n\t* printed. Undefined if the schema does not define them (then such values\n\t* can't be dumped).\n\t*\n\t* @internal\n\t*/\n\tdefaultSequenceTag;\n\t/** @internal */\n\tdefaultMappingTag;\n\texact;\n\tprefix;\n\tconstructor(tags) {\n\t\tconst compiledTags = compileTags(tags);\n\t\tconst implicitScalarTags = [];\n\t\tconst exact = createTagDefinitionMap();\n\t\tconst prefix = createTagDefinitionListMap();\n\t\tfor (const tag of compiledTags) {\n\t\t\tif (tag.nodeKind === \"scalar\" && tag.implicit) {\n\t\t\t\tif (tag.matchByTagPrefix) throw new Error(\"Implicit scalar tags cannot match by tag prefix\");\n\t\t\t\timplicitScalarTags.push(tag);\n\t\t\t}\n\t\t\tswitch (tag.nodeKind) {\n\t\t\t\tcase \"scalar\":\n\t\t\t\t\tif (tag.matchByTagPrefix) prefix.scalar.push(tag);\n\t\t\t\t\telse exact.scalar[tag.tagName] = tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sequence\":\n\t\t\t\t\tif (tag.matchByTagPrefix) prefix.sequence.push(tag);\n\t\t\t\t\telse exact.sequence[tag.tagName] = tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mapping\":\n\t\t\t\t\tif (tag.matchByTagPrefix) prefix.mapping.push(tag);\n\t\t\t\t\telse exact.mapping[tag.tagName] = tag;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst implicitScalarAnyFirstChar = implicitScalarTags.filter((tag) => tag.implicitFirstChars === null);\n\t\tconst keys = /* @__PURE__ */ new Set();\n\t\tfor (const tag of implicitScalarTags) if (tag.implicitFirstChars !== null) for (const key of tag.implicitFirstChars) keys.add(key);\n\t\tconst implicitScalarByFirstChar = /* @__PURE__ */ new Map();\n\t\tfor (const key of keys) implicitScalarByFirstChar.set(key, implicitScalarTags.filter((tag) => tag.implicitFirstChars === null || tag.implicitFirstChars.indexOf(key) !== -1));\n\t\tconst defaultScalarTag = exact.scalar[\"tag:yaml.org,2002:str\"];\n\t\tif (!defaultScalarTag) throw new Error(\"schema does not define the default scalar tag (tag:yaml.org,2002:str)\");\n\t\tthis.tags = compiledTags;\n\t\tthis.implicitScalarTags = implicitScalarTags;\n\t\tthis.implicitScalarByFirstChar = implicitScalarByFirstChar;\n\t\tthis.implicitScalarAnyFirstChar = implicitScalarAnyFirstChar;\n\t\tthis.defaultScalarTag = defaultScalarTag;\n\t\tthis.defaultSequenceTag = exact.sequence[\"tag:yaml.org,2002:seq\"];\n\t\tthis.defaultMappingTag = exact.mapping[\"tag:yaml.org,2002:map\"];\n\t\tthis.exact = exact;\n\t\tthis.prefix = prefix;\n\t}\n\t/** @internal */\n\tlookupScalarTag(tagName) {\n\t\tconst exactTag = this.exact.scalar[tagName];\n\t\tif (exactTag) return exactTag;\n\t\tfor (const tag of this.prefix.scalar) if (tagName.startsWith(tag.tagName)) return tag;\n\t}\n\t/** @internal */\n\tlookupSequenceTag(tagName) {\n\t\tconst exactTag = this.exact.sequence[tagName];\n\t\tif (exactTag) return exactTag;\n\t\tfor (const tag of this.prefix.sequence) if (tagName.startsWith(tag.tagName)) return tag;\n\t}\n\t/** @internal */\n\tlookupMappingTag(tagName) {\n\t\tconst exactTag = this.exact.mapping[tagName];\n\t\tif (exactTag) return exactTag;\n\t\tfor (const tag of this.prefix.mapping) if (tagName.startsWith(tag.tagName)) return tag;\n\t}\n\t/** @internal */\n\tresolveImplicitScalarTag(source) {\n\t\tconst candidates = this.implicitScalarByFirstChar.get(source.charAt(0)) ?? this.implicitScalarAnyFirstChar;\n\t\tfor (const tag of candidates) {\n\t\t\tconst value = tag.resolve(source, false, tag.tagName);\n\t\t\tif (value !== NOT_RESOLVED) return {\n\t\t\t\tvalue,\n\t\t\t\ttag\n\t\t\t};\n\t\t}\n\t\tconst tag = this.defaultScalarTag;\n\t\treturn {\n\t\t\tvalue: tag.resolve(source, false, tag.tagName),\n\t\t\ttag\n\t\t};\n\t}\n\t/**\n\t* Creates a new schema with the specified tags added. If a tag already\n\t* exists, it is replaced by the specified tag.\n\t*\n\t* @example\n\t*\n\t* ```javascript\n\t* import { CORE_SCHEMA, mergeTag, realMapTag } from 'js-yaml'\n\t*\n\t* const schema = CORE_SCHEMA.withTags(mergeTag, realMapTag)\n\t* ```\n\t*/\n\twithTags(...tags) {\n\t\tlet flatTags = [];\n\t\tfor (const tag of tags) flatTags = flatTags.concat(tag);\n\t\treturn new Schema([...this.tags, ...flatTags]);\n\t}\n};\n/**\n* The YAML 1.2 Failsafe Schema: strings, sequences, and mappings.\n*\n* @category Schemas\n*/\nvar FAILSAFE_SCHEMA = new Schema([\n\tstrTag,\n\tseqTag,\n\tmapTag\n]);\n/**\n* The YAML 1.2 JSON Schema. It uses JSON scalar forms while retaining YAML\n* collection syntax.\n*\n* @category Schemas\n*/\nvar JSON_SCHEMA = new Schema([\n\t...FAILSAFE_SCHEMA.tags,\n\tnullJsonTag,\n\tboolJsonTag,\n\tintJsonTag,\n\tfloatJsonTag\n]);\n/**\n* The default schema for the loaders. Note, {@link CORE_SCHEMA} comes\n* without the `!!merge` tag. You can easily enable it if needed.\n*\n* @example\n* Enable {@link mergeTag}:\n*\n* ```javascript\n* import { load, CORE_SCHEMA, mergeTag } from 'js-yaml'\n*\n* try {\n* load(data, { schema: CORE_SCHEMA.withTags(mergeTag) })\n* } catch (e) {\n* console.error(e)\n* }\n* ```\n*\n* @category Schemas\n*/\nvar CORE_SCHEMA = new Schema([\n\t...FAILSAFE_SCHEMA.tags,\n\tnullCoreTag,\n\tboolCoreTag,\n\tintCoreTag,\n\tfloatCoreTag\n]);\n/**\n* YAML 1.1-compatible schema.\n*\n* @category Schemas\n*/\nvar YAML11_SCHEMA = new Schema([\n\t...FAILSAFE_SCHEMA.tags,\n\tnullYaml11Tag,\n\tboolYaml11Tag,\n\tintYaml11Tag,\n\tfloatYaml11Tag,\n\ttimestampTag,\n\tmergeTag,\n\tbinaryTag,\n\tomapTag,\n\tpairsTag,\n\tsetTag\n]);\n/**\n* The dumper schema for maximum compatibility. It combines all supported type\n* variants from YAML 1.1 and YAML 1.2 so strings matching any of them are\n* quoted. This makes the generated YAML more compatible with other parsers.\n*\n* The schema is based on YAML 1.1, but extends `!!int` and `!!float` to accept\n* both YAML 1.1 and Core Schema forms, since Core Schema supports some forms\n* that YAML 1.1 does not.\n*\n* @category Schemas\n*/\nvar DUMP_SCHEMA = YAML11_SCHEMA.withTags({\n\t...intYaml11Tag,\n\tresolve: (source, isExplicit, tagName) => {\n\t\tconst result = intYaml11Tag.resolve(source, isExplicit, tagName);\n\t\treturn result === NOT_RESOLVED ? intCoreTag.resolve(source, isExplicit, tagName) : result;\n\t}\n}, {\n\t...floatYaml11Tag,\n\tresolve: (source, isExplicit, tagName) => {\n\t\tconst result = floatYaml11Tag.resolve(source, isExplicit, tagName);\n\t\treturn result === NOT_RESOLVED ? floatCoreTag.resolve(source, isExplicit, tagName) : result;\n\t}\n});\n//#endregion\n//#region src/tag/mapping/real_map.ts\n/**\n* Recommended when non-string keys are actually needed. It uses native\n* JavaScript `Map` objects, so keys keep their constructed types instead of\n* being converted to strings.\n*\n* It is not the default to avoid widespread breaking changes in existing\n* projects. `Map` has a different access API and does not pass deep equality\n* checks against `{}`-based fixtures. Alongside the other changes in v5,\n* making it the default was considered too disruptive.\n*\n* If these differences are acceptable for your project, we recommend using\n* {@link realMapTag} to guarantee the absence of problems and side effects.\n*\n* @example\n* Enable {@link realMapTag}:\n*\n* ```javascript\n* import { load, CORE_SCHEMA, realMapTag } from 'js-yaml'\n*\n* try {\n* load(data, { schema: CORE_SCHEMA.withTags(realMapTag) })\n* } catch (e) {\n* console.error(e)\n* }\n* ```\n*\n* @category Tags\n*/\nvar realMapTag = defineMappingTag(\"tag:yaml.org,2002:map\", {\n\tcreate: () => /* @__PURE__ */ new Map(),\n\taddPair: (container, key, value) => {\n\t\tcontainer.set(key, value);\n\t\treturn \"\";\n\t},\n\thas: (container, key) => container.has(key),\n\tkeys: (container) => container.keys(),\n\tget: (container, key) => container.get(key),\n\tidentify: (data) => data instanceof Map || isPlainObject(data),\n\trepresent: (data) => {\n\t\tif (data instanceof Map) return data;\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tconst obj = data;\n\t\tfor (const key of Object.keys(obj)) map.set(key, obj[key]);\n\t\treturn map;\n\t}\n});\n//#endregion\n//#region src/tag/mapping/legacy_map.ts\nfunction normalizeKey(key) {\n\tif (Array.isArray(key)) {\n\t\tconst array = Array.prototype.slice.call(key);\n\t\tfor (let index = 0; index < array.length; index++) {\n\t\t\tif (Array.isArray(array[index])) return null;\n\t\t\tif (typeof array[index] === \"object\" && Object.prototype.toString.call(array[index]) === \"[object Object]\") array[index] = \"[object Object]\";\n\t\t}\n\t\treturn String(array);\n\t}\n\tif (typeof key === \"object\" && Object.prototype.toString.call(key) === \"[object Object]\") return \"[object Object]\";\n\treturn String(key);\n}\n/**\n* This implementation exists solely to reproduce v4 behavior exactly. Its use\n* is strongly discouraged. If complex or non-string keys are needed, use\n* {@link realMapTag} instead.\n*\n* @category Tags\n*/\nvar legacyMapTag = defineMappingTag(\"tag:yaml.org,2002:map\", {\n\tcreate: () => ({}),\n\tidentify: isPlainObject,\n\trepresent: (o) => {\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const key of Object.keys(o)) map.set(key, o[key]);\n\t\treturn map;\n\t},\n\taddPair: (container, key, value) => {\n\t\tconst normalizedKey = normalizeKey(key);\n\t\tif (normalizedKey === null) return \"nested arrays are not supported inside keys\";\n\t\tif (normalizedKey === \"__proto__\") Object.defineProperty(container, normalizedKey, {\n\t\t\tvalue,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\telse container[normalizedKey] = value;\n\t\treturn \"\";\n\t},\n\thas: (container, key) => {\n\t\tconst normalizedKey = normalizeKey(key);\n\t\treturn normalizedKey !== null && Object.prototype.hasOwnProperty.call(container, normalizedKey);\n\t},\n\tkeys: (container) => Object.keys(container),\n\tget: (container, key) => {\n\t\tconst normalizedKey = String(key);\n\t\tif (!Object.prototype.hasOwnProperty.call(container, normalizedKey)) return null;\n\t\treturn container[normalizedKey];\n\t}\n});\n//#endregion\n//#region src/common/snippet.ts\nvar DEFAULT_SNIPPET_OPTIONS = {\n\tmaxLength: 79,\n\tindent: 1,\n\tlinesBefore: 3,\n\tlinesAfter: 2\n};\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n\tlet head = \"\";\n\tlet tail = \"\";\n\tconst maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\tif (position - lineStart > maxHalfLength) {\n\t\thead = \" ... \";\n\t\tlineStart = position - maxHalfLength + head.length;\n\t}\n\tif (lineEnd - position > maxHalfLength) {\n\t\ttail = \" ...\";\n\t\tlineEnd = position + maxHalfLength - tail.length;\n\t}\n\treturn {\n\t\tstr: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"→\") + tail,\n\t\tpos: position - lineStart + head.length\n\t};\n}\nfunction padStart(string, max) {\n\treturn \" \".repeat(Math.max(max - string.length, 0)) + string;\n}\nfunction makeSnippet(mark, options) {\n\tif (!mark.buffer) return null;\n\tconst opts = {\n\t\t...DEFAULT_SNIPPET_OPTIONS,\n\t\t...options\n\t};\n\tconst re = /\\r?\\n|\\r|\\0/g;\n\tconst lineStarts = [0];\n\tconst lineEnds = [];\n\tlet match;\n\tlet foundLineNo = -1;\n\twhile (match = re.exec(mark.buffer)) {\n\t\tlineEnds.push(match.index);\n\t\tlineStarts.push(match.index + match[0].length);\n\t\tif (mark.position <= match.index && foundLineNo < 0) foundLineNo = lineStarts.length - 2;\n\t}\n\tif (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\tlet result = \"\";\n\tconst lineNoLength = Math.min(mark.line + opts.linesAfter, lineEnds.length).toString().length;\n\tconst maxLineLength = opts.maxLength - (opts.indent + lineNoLength + 3);\n\tfor (let i = 1; i <= opts.linesBefore; i++) {\n\t\tif (foundLineNo - i < 0) break;\n\t\tconst line = getLine(mark.buffer, lineStarts[foundLineNo - i], lineEnds[foundLineNo - i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength);\n\t\tresult = `${\" \".repeat(opts.indent)}${padStart((mark.line - i + 1).toString(), lineNoLength)} | ${line.str}\\n${result}`;\n\t}\n\tconst line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n\tresult += `${\" \".repeat(opts.indent)}${padStart((mark.line + 1).toString(), lineNoLength)} | ${line.str}\\n`;\n\tresult += `${\"-\".repeat(opts.indent + lineNoLength + 3 + line.pos)}^\\n`;\n\tfor (let i = 1; i <= opts.linesAfter; i++) {\n\t\tif (foundLineNo + i >= lineEnds.length) break;\n\t\tconst line = getLine(mark.buffer, lineStarts[foundLineNo + i], lineEnds[foundLineNo + i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength);\n\t\tresult += `${\" \".repeat(opts.indent)}${padStart((mark.line + i + 1).toString(), lineNoLength)} | ${line.str}\\n`;\n\t}\n\treturn result.replace(/\\n$/, \"\");\n}\n//#endregion\n//#region src/common/exception.ts\nfunction formatError(exception, compact) {\n\tlet where = \"\";\n\tif (!exception.mark) return exception.reason;\n\tif (exception.mark.name) where += `in \"${exception.mark.name}\" `;\n\twhere += `(${exception.mark.line + 1}:${exception.mark.column + 1})`;\n\tif (!compact && exception.mark.snippet) where += `\\n\\n${exception.mark.snippet}`;\n\treturn `${exception.reason} ${where}`;\n}\n/**\n* A YAML error. Unlike an ordinary `Error`, it adds a source snippet showing\n* the location of the problem to the error message, when available.\n*\n* @category Main\n*/\nvar YAMLException = class YAMLException extends Error {\n\treason;\n\tmark;\n\t/**\n\t* Optional `mark` contains source snippet data. Usually, use\n\t* {@link YAMLException.throwAt} instead of passing it directly.\n\t*/\n\tconstructor(reason, mark) {\n\t\tsuper();\n\t\tthis.name = \"YAMLException\";\n\t\tthis.reason = reason;\n\t\tthis.mark = mark;\n\t\tthis.message = formatError(this, false);\n\t\tif (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor);\n\t}\n\t/**\n\t* Returns the formatted error, omitting the source snippet in compact mode.\n\t*/\n\ttoString(compact) {\n\t\treturn `${this.name}: ${formatError(this, compact)}`;\n\t}\n\t/**\n\t* Builds a YAMLException with a source snippet and throws it. `source` is\n\t* the raw input text; `position` is an offset into it.\n\t*/\n\tstatic throwAt(source, position, message, filename = \"\") {\n\t\tlet line = 0;\n\t\tlet lineStart = 0;\n\t\tfor (let index = 0; index < position; index++) {\n\t\t\tconst ch = source.charCodeAt(index);\n\t\t\tif (ch === 10) {\n\t\t\t\tline++;\n\t\t\t\tlineStart = index + 1;\n\t\t\t} else if (ch === 13) {\n\t\t\t\tline++;\n\t\t\t\tif (source.charCodeAt(index + 1) === 10) index++;\n\t\t\t\tlineStart = index + 1;\n\t\t\t}\n\t\t}\n\t\tconst mark = {\n\t\t\tname: filename,\n\t\t\tbuffer: source,\n\t\t\tposition,\n\t\t\tline,\n\t\t\tcolumn: position - lineStart\n\t\t};\n\t\tmark.snippet = makeSnippet(mark);\n\t\tthrow new YAMLException(message, mark);\n\t}\n};\n//#endregion\n//#region src/parser/events.ts\n/** @category Events */\nvar EVENT_ID = {\n\tDOCUMENT: 1,\n\tSEQUENCE: 2,\n\tMAPPING: 3,\n\tSCALAR: 4,\n\tALIAS: 5,\n\tPOP: 6\n};\n/** @category Nodes */\nvar SCALAR_STYLE = {\n\tPLAIN: 1,\n\tSINGLE_QUOTED: 2,\n\tDOUBLE_QUOTED: 3,\n\tLITERAL_BLOCK: 4,\n\tFOLDED_BLOCK: 5\n};\n/** @category Nodes */\nvar COLLECTION_STYLE = {\n\tBLOCK: 1,\n\tFLOW: 2\n};\n/** @category Nodes */\nvar CHOMPING_MODE = {\n\tCLIP: 1,\n\tSTRIP: 2,\n\tKEEP: 3\n};\n//#endregion\n//#region src/parser/parser_scalar.ts\nvar NO_RANGE$3 = -1;\nfunction simpleEscapeSequence(c) {\n\tswitch (c) {\n\t\tcase 48: return \"\\0\";\n\t\tcase 97: return \"\\x07\";\n\t\tcase 98: return \"\\b\";\n\t\tcase 116: return \"\t\";\n\t\tcase 9: return \"\t\";\n\t\tcase 110: return \"\\n\";\n\t\tcase 118: return \"\\v\";\n\t\tcase 102: return \"\\f\";\n\t\tcase 114: return \"\\r\";\n\t\tcase 101: return \"\\x1B\";\n\t\tcase 32: return \" \";\n\t\tcase 34: return \"\\\"\";\n\t\tcase 47: return \"/\";\n\t\tcase 92: return \"\\\\\";\n\t\tcase 78: return \"
\";\n\t\tcase 95: return \"\\xA0\";\n\t\tcase 76: return \"\\u2028\";\n\t\tcase 80: return \"\\u2029\";\n\t\tdefault: return \"\";\n\t}\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (let i = 0; i < 256; i++) {\n\tsimpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n\tsimpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction charFromCodepoint(c) {\n\tif (c <= 65535) return String.fromCharCode(c);\n\treturn String.fromCharCode((c - 65536 >> 10) + 55296, (c - 65536 & 1023) + 56320);\n}\nfunction fromHexCode$1(c) {\n\tif (c >= 48 && c <= 57) return c - 48;\n\treturn (c | 32) - 97 + 10;\n}\nfunction escapedHexLen$1(c) {\n\tif (c === 120) return 2;\n\tif (c === 117) return 4;\n\treturn 8;\n}\nfunction skipFoldedBreaks(input, position, end) {\n\tlet breaks = 0;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 10) {\n\t\t\tbreaks++;\n\t\t\tposition++;\n\t\t} else if (ch === 13) {\n\t\t\tbreaks++;\n\t\t\tposition++;\n\t\t\tif (input.charCodeAt(position) === 10) position++;\n\t\t} else if (ch === 32 || ch === 9) position++;\n\t\telse break;\n\t}\n\treturn {\n\t\tposition,\n\t\tbreaks\n\t};\n}\nfunction foldedBreaks(count) {\n\tif (count === 1) return \" \";\n\treturn \"\\n\".repeat(count - 1);\n}\nfunction getPlainValue(input, start, end) {\n\tlet result = \"\";\n\tlet position = start;\n\tlet captureStart = start;\n\tlet captureEnd = start;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 10 || ch === 13) {\n\t\t\tresult += input.slice(captureStart, captureEnd);\n\t\t\tconst fold = skipFoldedBreaks(input, position, end);\n\t\t\tresult += foldedBreaks(fold.breaks);\n\t\t\tposition = captureStart = captureEnd = fold.position;\n\t\t} else {\n\t\t\tposition++;\n\t\t\tif (ch !== 32 && ch !== 9) captureEnd = position;\n\t\t}\n\t}\n\treturn result + input.slice(captureStart, captureEnd);\n}\nfunction getSingleQuotedValue(input, start, end) {\n\tlet result = \"\";\n\tlet position = start;\n\tlet captureStart = start;\n\tlet captureEnd = start;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 39) {\n\t\t\tresult += input.slice(captureStart, position) + \"'\";\n\t\t\tposition += 2;\n\t\t\tcaptureStart = captureEnd = position;\n\t\t} else if (ch === 10 || ch === 13) {\n\t\t\tresult += input.slice(captureStart, captureEnd);\n\t\t\tconst fold = skipFoldedBreaks(input, position, end);\n\t\t\tresult += foldedBreaks(fold.breaks);\n\t\t\tposition = captureStart = captureEnd = fold.position;\n\t\t} else {\n\t\t\tposition++;\n\t\t\tif (ch !== 32 && ch !== 9) captureEnd = position;\n\t\t}\n\t}\n\treturn result + input.slice(captureStart, end);\n}\nfunction getDoubleQuotedValue(input, start, end) {\n\tlet result = \"\";\n\tlet position = start;\n\tlet captureStart = start;\n\tlet captureEnd = start;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 92) {\n\t\t\tresult += input.slice(captureStart, position);\n\t\t\tposition++;\n\t\t\tconst escaped = input.charCodeAt(position);\n\t\t\tif (escaped === 10 || escaped === 13) position = skipFoldedBreaks(input, position, end).position;\n\t\t\telse if (escaped < 256 && simpleEscapeCheck[escaped]) {\n\t\t\t\tresult += simpleEscapeMap[escaped];\n\t\t\t\tposition++;\n\t\t\t} else {\n\t\t\t\tlet hexLength = escapedHexLen$1(escaped);\n\t\t\t\tlet hexResult = 0;\n\t\t\t\tfor (; hexLength > 0; hexLength--) {\n\t\t\t\t\tposition++;\n\t\t\t\t\tconst digit = fromHexCode$1(input.charCodeAt(position));\n\t\t\t\t\thexResult = (hexResult << 4) + digit;\n\t\t\t\t}\n\t\t\t\tresult += charFromCodepoint(hexResult);\n\t\t\t\tposition++;\n\t\t\t}\n\t\t\tcaptureStart = captureEnd = position;\n\t\t} else if (ch === 10 || ch === 13) {\n\t\t\tresult += input.slice(captureStart, captureEnd);\n\t\t\tconst fold = skipFoldedBreaks(input, position, end);\n\t\t\tresult += foldedBreaks(fold.breaks);\n\t\t\tposition = captureStart = captureEnd = fold.position;\n\t\t} else {\n\t\t\tposition++;\n\t\t\tif (ch !== 32 && ch !== 9) captureEnd = position;\n\t\t}\n\t}\n\treturn result + input.slice(captureStart, end);\n}\nfunction getBlockValue(input, start, end, indent, chomping, folded) {\n\tconst textIndent = indent < 0 ? 0 : indent;\n\tconst region = input.slice(start, end).replace(/\\r\\n?/g, \"\\n\");\n\tconst lines = region === \"\" ? [] : (region.endsWith(\"\\n\") ? region.slice(0, -1) : region).split(\"\\n\");\n\tlet result = \"\";\n\tlet didReadContent = false;\n\tlet emptyLines = 0;\n\tlet atMoreIndented = false;\n\tfor (const line of lines) {\n\t\tlet column = 0;\n\t\twhile (column < textIndent && line.charCodeAt(column) === 32) column++;\n\t\tif (indent < 0 || column >= line.length) {\n\t\t\temptyLines++;\n\t\t\tcontinue;\n\t\t}\n\t\tconst content = line.slice(textIndent);\n\t\tconst first = content.charCodeAt(0);\n\t\tif (folded) if (first === 32 || first === 9) {\n\t\t\tatMoreIndented = true;\n\t\t\tresult += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n\t\t} else if (atMoreIndented) {\n\t\t\tatMoreIndented = false;\n\t\t\tresult += \"\\n\".repeat(emptyLines + 1);\n\t\t} else if (emptyLines === 0) {\n\t\t\tif (didReadContent) result += \" \";\n\t\t} else result += \"\\n\".repeat(emptyLines);\n\t\telse result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n\t\tresult += content;\n\t\tdidReadContent = true;\n\t\temptyLines = 0;\n\t}\n\tif (chomping === CHOMPING_MODE.KEEP) result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n\telse if (chomping !== CHOMPING_MODE.STRIP) {\n\t\tif (didReadContent) result += \"\\n\";\n\t}\n\treturn result;\n}\n/**\n* Decodes the scalar referenced by event offsets in `input`.\n*\n* @category Events\n*/\nfunction getScalarValue(input, scalar) {\n\tif (scalar.valueStart === NO_RANGE$3) return \"\";\n\tconst { valueStart, valueEnd } = scalar;\n\tif (scalar.fast) return input.slice(valueStart, valueEnd);\n\tswitch (scalar.style) {\n\t\tcase SCALAR_STYLE.SINGLE_QUOTED: return getSingleQuotedValue(input, valueStart, valueEnd);\n\t\tcase SCALAR_STYLE.DOUBLE_QUOTED: return getDoubleQuotedValue(input, valueStart, valueEnd);\n\t\tcase SCALAR_STYLE.LITERAL_BLOCK: return getBlockValue(input, valueStart, valueEnd, scalar.indent, scalar.chomping, false);\n\t\tcase SCALAR_STYLE.FOLDED_BLOCK: return getBlockValue(input, valueStart, valueEnd, scalar.indent, scalar.chomping, true);\n\t\tdefault: return getPlainValue(input, valueStart, valueEnd);\n\t}\n}\n//#endregion\n//#region src/common/tagname.ts\nvar DEFAULT_TAG_HANDLERS = Object.assign(Object.create(null), {\n\t\"!\": \"!\",\n\t\"!!\": \"tag:yaml.org,2002:\"\n});\nfunction tagPercentEncode(source) {\n\treturn encodeURI(source).replace(/!/g, \"%21\");\n}\nfunction tagNameFull(rawTag, tagHandlers) {\n\tif (rawTag.startsWith(\"!<\") && rawTag.endsWith(\">\")) return decodeURIComponent(rawTag.slice(2, -1));\n\tconst handleEnd = rawTag.indexOf(\"!\", 1);\n\tconst handle = handleEnd === -1 ? \"!\" : rawTag.slice(0, handleEnd + 1);\n\tconst prefix = tagHandlers?.[handle] ?? DEFAULT_TAG_HANDLERS[handle] ?? handle;\n\treturn decodeURIComponent(prefix) + decodeURIComponent(rawTag.slice(handle.length));\n}\nfunction tagNameShort(fullTag) {\n\tlet tag = fullTag;\n\tif (tag.charCodeAt(0) === 33) {\n\t\ttag = tag.slice(1);\n\t\treturn `!${tagPercentEncode(tag)}`;\n\t}\n\tif (tag.slice(0, 18) === \"tag:yaml.org,2002:\") return `!!${tagPercentEncode(tag.slice(18))}`;\n\treturn `!<${tagPercentEncode(tag)}>`;\n}\n//#endregion\n//#region src/parser/constructor.ts\nvar NO_RANGE$2 = -1;\nvar MERGE_TAG_NAME = \"tag:yaml.org,2002:merge\";\nvar DEFAULT_CONSTRUCTOR_OPTIONS = {\n\tfilename: \"\",\n\tschema: CORE_SCHEMA,\n\tjson: false,\n\tmaxTotalMergeKeys: 1e4,\n\tmaxAliases: -1\n};\nfunction eventPosition$1(event) {\n\tif (\"tagStart\" in event && event.tagStart !== NO_RANGE$2) return event.tagStart;\n\tif (\"anchorStart\" in event && event.anchorStart !== NO_RANGE$2) return event.anchorStart;\n\tif (\"valueStart\" in event && event.valueStart !== NO_RANGE$2) return event.valueStart;\n\tif (\"start\" in event) return event.start;\n\treturn 0;\n}\nfunction throwError$1(state, message) {\n\tYAMLException.throwAt(state.source, state.position, message, state.filename);\n}\nfunction finalizeCollection(state, position, tag, carrier) {\n\ttry {\n\t\treturn tag.finalize(carrier);\n\t} catch (error) {\n\t\tif (error instanceof YAMLException) throw error;\n\t\tYAMLException.throwAt(state.source, position, error instanceof Error ? error.message : String(error), state.filename);\n\t}\n}\nfunction constructScalar(state, event) {\n\tconst source = getScalarValue(state.source, event);\n\tconst rawTag = event.tagStart === NO_RANGE$2 ? \"\" : state.source.slice(event.tagStart, event.tagEnd);\n\tconst strTag = state.schema.defaultScalarTag;\n\tif (rawTag !== \"\") {\n\t\tif (rawTag === \"!\") return {\n\t\t\tvalue: source,\n\t\t\ttag: strTag\n\t\t};\n\t\tconst tagName = tagNameFull(rawTag, state.tagHandlers);\n\t\tconst scalarTag = state.schema.lookupScalarTag(tagName);\n\t\tif (scalarTag) {\n\t\t\tconst result = scalarTag.resolve(source, true, tagName);\n\t\t\tif (result === NOT_RESOLVED) throwError$1(state, `cannot resolve a node with !<${tagName}> explicit tag`);\n\t\t\treturn {\n\t\t\t\tvalue: result,\n\t\t\t\ttag: scalarTag\n\t\t\t};\n\t\t}\n\t\tconst collectionTagDef = state.schema.lookupMappingTag(tagName) ?? state.schema.lookupSequenceTag(tagName);\n\t\tif (collectionTagDef) {\n\t\t\tif (source !== \"\") throwError$1(state, `cannot resolve a node with !<${tagName}> explicit tag`);\n\t\t\tconst carrier = collectionTagDef.create(tagName);\n\t\t\treturn {\n\t\t\t\tvalue: collectionTagDef.carrierIsResult ? carrier : finalizeCollection(state, state.position, collectionTagDef, carrier),\n\t\t\t\ttag: collectionTagDef\n\t\t\t};\n\t\t}\n\t\tthrowError$1(state, `unknown scalar tag !<${tagName}>`);\n\t}\n\tif (event.style === SCALAR_STYLE.PLAIN) return state.schema.resolveImplicitScalarTag(source);\n\treturn {\n\t\tvalue: strTag.resolve(source, false, strTag.tagName),\n\t\ttag: strTag\n\t};\n}\nfunction collectionTagName(state, event, defaultTagName) {\n\tconst rawTag = event.tagStart === NO_RANGE$2 ? \"\" : state.source.slice(event.tagStart, event.tagEnd);\n\treturn rawTag === \"\" || rawTag === \"!\" ? defaultTagName : tagNameFull(rawTag, state.tagHandlers);\n}\nfunction isMappingTag(tag) {\n\treturn tag.nodeKind === \"mapping\";\n}\nfunction chargeMergeWork(state) {\n\tstate.totalMergeKeys++;\n\tif (state.maxTotalMergeKeys !== -1 && state.totalMergeKeys > state.maxTotalMergeKeys) throwError$1(state, `merge keys exceeded maxTotalMergeKeys (${state.maxTotalMergeKeys})`);\n}\nfunction mergeKeys(state, frame, source, sourceTag) {\n\tchargeMergeWork(state);\n\tfor (const sourceKey of sourceTag.keys(source)) {\n\t\tchargeMergeWork(state);\n\t\tif (frame.tag.has(frame.value, sourceKey)) continue;\n\t\tconst err = frame.tag.addPair(frame.value, sourceKey, sourceTag.get(source, sourceKey));\n\t\tif (err) throwError$1(state, err);\n\t\tframe.overridable ??= /* @__PURE__ */ new Set();\n\t\tframe.overridable.add(sourceKey);\n\t}\n}\nfunction mergeSource(state, frame, source, sourceTag) {\n\tstate.position = frame.keyPosition;\n\tif (isMappingTag(sourceTag)) mergeKeys(state, frame, source, sourceTag);\n\telse if (sourceTag.nodeKind === \"sequence\" && Array.isArray(source)) {\n\t\tif (source.length > 100) throwError$1(state, \"abnormal merge sequence size\");\n\t\tfor (const element of source) {\n\t\t\tconst elementTag = state.nodeTags.get(element);\n\t\t\tif (!elementTag) throwError$1(state, \"cannot merge mappings; the provided source object is unacceptable\");\n\t\t\tmergeKeys(state, frame, element, elementTag);\n\t\t}\n\t} else throwError$1(state, \"cannot merge mappings; the provided source object is unacceptable\");\n}\nfunction addMappingValue(state, frame, key, value, tag) {\n\tstate.position = frame.keyPosition;\n\tif (frame.keyIsMerge) {\n\t\tmergeSource(state, frame, value, tag);\n\t\treturn;\n\t}\n\tif (!state.json && frame.tag.has(frame.value, key) && !frame.overridable?.has(key)) throwError$1(state, \"duplicated mapping key\");\n\tconst err = frame.tag.addPair(frame.value, key, value);\n\tif (err) throwError$1(state, err);\n\tframe.overridable?.delete(key);\n}\nfunction addValue(state, value, tag) {\n\tconst frame = state.frames[state.frames.length - 1];\n\tif (frame.kind === \"document\") {\n\t\tframe.value = value;\n\t\tframe.hasValue = true;\n\t} else if (frame.kind === \"sequence\") {\n\t\tif (isMappingTag(tag)) state.nodeTags.set(value, tag);\n\t\tconst err = frame.tag.addItem(frame.value, value, frame.index++);\n\t\tif (err) throwError$1(state, err);\n\t} else if (frame.hasKey) {\n\t\tconst key = frame.key;\n\t\tframe.key = void 0;\n\t\tframe.hasKey = false;\n\t\taddMappingValue(state, frame, key, value, tag);\n\t} else {\n\t\tframe.key = value;\n\t\tframe.keyPosition = state.position;\n\t\tframe.hasKey = true;\n\t\tframe.keyIsMerge = tag.tagName === MERGE_TAG_NAME;\n\t}\n}\nfunction storeAnchor(state, event, value, tag, isValueFinal) {\n\tif (event.anchorStart !== NO_RANGE$2) {\n\t\tconst anchor = {\n\t\t\tvalue,\n\t\t\ttag,\n\t\t\tisValueFinal\n\t\t};\n\t\tstate.anchors.set(state.source.slice(event.anchorStart, event.anchorEnd), anchor);\n\t\treturn anchor;\n\t}\n\treturn null;\n}\n/**\n* Constructs JavaScript documents directly from parser events, without an\n* intermediate AST.\n*\n* @category Events\n*/\nfunction constructFromEvents(events, options) {\n\tconst state = {\n\t\t...DEFAULT_CONSTRUCTOR_OPTIONS,\n\t\t...options,\n\t\tevents,\n\t\tdocuments: [],\n\t\teventIndex: 0,\n\t\tposition: 0,\n\t\tframes: [],\n\t\tanchors: /* @__PURE__ */ new Map(),\n\t\tnodeTags: /* @__PURE__ */ new Map(),\n\t\ttagHandlers: Object.create(null),\n\t\ttotalMergeKeys: 0,\n\t\taliasCount: 0\n\t};\n\twhile (state.eventIndex < state.events.length) {\n\t\tconst event = state.events[state.eventIndex++];\n\t\tstate.position = eventPosition$1(event);\n\t\tswitch (event.type) {\n\t\t\tcase EVENT_ID.DOCUMENT:\n\t\t\t\tstate.anchors = /* @__PURE__ */ new Map();\n\t\t\t\tstate.nodeTags = /* @__PURE__ */ new Map();\n\t\t\t\tstate.aliasCount = 0;\n\t\t\t\tstate.tagHandlers = Object.create(null);\n\t\t\t\tfor (const directive of event.directives) if (directive.kind === \"tag\") state.tagHandlers[directive.handle] = directive.prefix;\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"document\",\n\t\t\t\t\tposition: state.position,\n\t\t\t\t\tvalue: void 0,\n\t\t\t\t\thasValue: false\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase EVENT_ID.SCALAR: {\n\t\t\t\tconst { value, tag } = constructScalar(state, event);\n\t\t\t\tstoreAnchor(state, event, value, tag, true);\n\t\t\t\taddValue(state, value, tag);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.SEQUENCE: {\n\t\t\t\tconst tagName = collectionTagName(state, event, \"tag:yaml.org,2002:seq\");\n\t\t\t\tconst tag = state.schema.lookupSequenceTag(tagName);\n\t\t\t\tif (!tag) throwError$1(state, `unknown sequence tag !<${tagName}>`);\n\t\t\t\tconst value = tag.create(tagName);\n\t\t\t\tconst anchor = storeAnchor(state, event, value, tag, tag.carrierIsResult);\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"sequence\",\n\t\t\t\t\tposition: state.position,\n\t\t\t\t\tvalue,\n\t\t\t\t\ttag,\n\t\t\t\t\tanchor,\n\t\t\t\t\tindex: 0\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.MAPPING: {\n\t\t\t\tconst tagName = collectionTagName(state, event, \"tag:yaml.org,2002:map\");\n\t\t\t\tconst tag = state.schema.lookupMappingTag(tagName);\n\t\t\t\tif (!tag) throwError$1(state, `unknown mapping tag !<${tagName}>`);\n\t\t\t\tconst value = tag.create(tagName);\n\t\t\t\tconst anchor = storeAnchor(state, event, value, tag, tag.carrierIsResult);\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"mapping\",\n\t\t\t\t\tposition: state.position,\n\t\t\t\t\tvalue,\n\t\t\t\t\ttag,\n\t\t\t\t\tanchor,\n\t\t\t\t\tkey: void 0,\n\t\t\t\t\tkeyPosition: state.position,\n\t\t\t\t\thasKey: false,\n\t\t\t\t\tkeyIsMerge: false,\n\t\t\t\t\toverridable: null\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.ALIAS: {\n\t\t\t\tif (state.maxAliases !== -1 && ++state.aliasCount > state.maxAliases) throwError$1(state, `aliases exceeded maxAliases (${state.maxAliases})`);\n\t\t\t\tconst name = state.source.slice(event.anchorStart, event.anchorEnd);\n\t\t\t\tconst anchor = state.anchors.get(name);\n\t\t\t\tif (!anchor) throwError$1(state, `unidentified alias \"${name}\"`);\n\t\t\t\tif (!anchor.isValueFinal) throwError$1(state, `recursive alias \"${name}\" is not supported for tag ${anchor.tag.tagName} because it uses finalize()`);\n\t\t\t\taddValue(state, anchor.value, anchor.tag);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.POP: {\n\t\t\t\tconst frame = state.frames.pop();\n\t\t\t\tif (frame.kind === \"mapping\" && frame.hasKey) {\n\t\t\t\t\tstate.position = frame.keyPosition;\n\t\t\t\t\tthrowError$1(state, \"incomplete mapping pair in event stream\");\n\t\t\t\t}\n\t\t\t\tif (frame.kind === \"document\") state.documents.push(frame.value);\n\t\t\t\telse {\n\t\t\t\t\tconst value = frame.tag.carrierIsResult ? frame.value : finalizeCollection(state, frame.position, frame.tag, frame.value);\n\t\t\t\t\tif (frame.anchor) {\n\t\t\t\t\t\tframe.anchor.value = value;\n\t\t\t\t\t\tframe.anchor.isValueFinal = true;\n\t\t\t\t\t}\n\t\t\t\t\taddValue(state, value, frame.tag);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn state.documents;\n}\n//#endregion\n//#region src/parser/parser.ts\nvar NO_RANGE$1 = -1;\nvar HAS_OWN = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]{}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![0-9A-Za-z-]+!)$/;\nvar NS_URI_CHAR = String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]])`;\nvar NS_TAG_CHAR = String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$.~*'()_])`;\nvar PATTERN_TAG_URI = new RegExp(`^(?:${NS_URI_CHAR})*$`);\nvar PATTERN_TAG_SUFFIX = new RegExp(`^(?:${NS_TAG_CHAR})+$`);\nvar PATTERN_TAG_PREFIX = new RegExp(`^(?:!(?:${NS_URI_CHAR})*|${NS_TAG_CHAR}(?:${NS_URI_CHAR})*)$`);\nvar DEFAULT_PARSER_OPTIONS = {\n\tfilename: \"\",\n\tmaxDepth: 100\n};\nfunction addDocumentEvent(state, explicitStart, explicitEnd) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.DOCUMENT,\n\t\texplicitStart,\n\t\texplicitEnd,\n\t\tdirectives: state.directives\n\t});\n}\nfunction addSequenceEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd, style) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.SEQUENCE,\n\t\tstart,\n\t\tanchorStart,\n\t\tanchorEnd,\n\t\ttagStart,\n\t\ttagEnd,\n\t\tstyle\n\t});\n}\nfunction addMappingEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd, style) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.MAPPING,\n\t\tstart,\n\t\tanchorStart,\n\t\tanchorEnd,\n\t\ttagStart,\n\t\ttagEnd,\n\t\tstyle\n\t});\n}\nfunction insertFlowPairMappingEvent(state, snapshot) {\n\tstate.events.splice(snapshot.eventsLength, 0, {\n\t\ttype: EVENT_ID.MAPPING,\n\t\tstart: snapshot.position,\n\t\tanchorStart: NO_RANGE$1,\n\t\tanchorEnd: NO_RANGE$1,\n\t\ttagStart: NO_RANGE$1,\n\t\ttagEnd: NO_RANGE$1,\n\t\tstyle: COLLECTION_STYLE.FLOW\n\t});\n}\nfunction addScalarEvent(state, valueStart, valueEnd, anchorStart, anchorEnd, tagStart, tagEnd, style, chomping = CHOMPING_MODE.CLIP, indent = -1, fast = false) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.SCALAR,\n\t\tvalueStart,\n\t\tvalueEnd,\n\t\tanchorStart,\n\t\tanchorEnd,\n\t\ttagStart,\n\t\ttagEnd,\n\t\tstyle,\n\t\tchomping,\n\t\tindent,\n\t\tfast\n\t});\n}\nfunction addAliasEvent(state, anchorStart, anchorEnd) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.ALIAS,\n\t\tanchorStart,\n\t\tanchorEnd\n\t});\n}\nfunction addPopEvent(state) {\n\tstate.events.push({ type: EVENT_ID.POP });\n}\nfunction addEmptyScalarEvent(state) {\n\taddScalarEvent(state, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, SCALAR_STYLE.PLAIN);\n}\nfunction emptyProperties() {\n\treturn {\n\t\tanchorStart: NO_RANGE$1,\n\t\tanchorEnd: NO_RANGE$1,\n\t\ttagStart: NO_RANGE$1,\n\t\ttagEnd: NO_RANGE$1\n\t};\n}\nfunction snapshotState(state) {\n\treturn {\n\t\tposition: state.position,\n\t\tline: state.line,\n\t\tlineStart: state.lineStart,\n\t\tlineIndent: state.lineIndent,\n\t\tfirstTabInLine: state.firstTabInLine,\n\t\teventsLength: state.events.length\n\t};\n}\nfunction restoreState(state, snapshot) {\n\tstate.position = snapshot.position;\n\tstate.line = snapshot.line;\n\tstate.lineStart = snapshot.lineStart;\n\tstate.lineIndent = snapshot.lineIndent;\n\tstate.firstTabInLine = snapshot.firstTabInLine;\n\tstate.events.length = snapshot.eventsLength;\n}\nfunction throwError(state, message) {\n\tYAMLException.throwAt(state.input.slice(0, state.length), state.position, message, state.filename);\n}\nfunction isEol(c) {\n\treturn c === 10 || c === 13;\n}\nfunction isWhiteSpace(c) {\n\treturn c === 9 || c === 32;\n}\nfunction isWsOrEol(c) {\n\treturn isWhiteSpace(c) || isEol(c);\n}\nfunction isWsOrEolOrEnd(c) {\n\treturn c === 0 || isWsOrEol(c);\n}\nfunction isFlowIndicator(c) {\n\treturn c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\nfunction fromDecimalCode(c) {\n\treturn c >= 48 && c <= 57 ? c - 48 : -1;\n}\nfunction fromHexCode(c) {\n\tif (c >= 48 && c <= 57) return c - 48;\n\tconst lc = c | 32;\n\tif (lc >= 97 && lc <= 102) return lc - 97 + 10;\n\treturn -1;\n}\nfunction escapedHexLen(c) {\n\tif (c === 120) return 2;\n\tif (c === 117) return 4;\n\tif (c === 85) return 8;\n\treturn 0;\n}\nfunction isSimpleEscape(c) {\n\treturn c === 48 || c === 97 || c === 98 || c === 116 || c === 9 || c === 110 || c === 118 || c === 102 || c === 114 || c === 101 || c === 32 || c === 34 || c === 47 || c === 92 || c === 78 || c === 95 || c === 76 || c === 80;\n}\nfunction consumeLineBreak(state) {\n\tif (state.input.charCodeAt(state.position) === 10) state.position++;\n\telse {\n\t\tstate.position++;\n\t\tif (state.input.charCodeAt(state.position) === 10) state.position++;\n\t}\n\tstate.line++;\n\tstate.lineStart = state.position;\n\tstate.lineIndent = 0;\n\tstate.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state, allowComments) {\n\tlet lineBreaks = 0;\n\tlet ch = state.input.charCodeAt(state.position);\n\tlet hasSeparation = state.position === state.lineStart || isWsOrEol(state.input.charCodeAt(state.position - 1));\n\twhile (ch !== 0) {\n\t\twhile (isWhiteSpace(ch)) {\n\t\t\thasSeparation = true;\n\t\t\tif (ch === 9 && state.firstTabInLine === -1) state.firstTabInLine = state.position;\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t}\n\t\tif (allowComments && hasSeparation && ch === 35) do\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\twhile (!isEol(ch) && ch !== 0);\n\t\tif (!isEol(ch)) break;\n\t\tconsumeLineBreak(state);\n\t\tlineBreaks++;\n\t\thasSeparation = true;\n\t\tch = state.input.charCodeAt(state.position);\n\t\twhile (ch === 32) {\n\t\t\tstate.lineIndent++;\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t}\n\t}\n\treturn lineBreaks;\n}\nfunction testDocumentSeparator(state, position = state.position) {\n\tconst ch = state.input.charCodeAt(position);\n\tif ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(position + 1) && ch === state.input.charCodeAt(position + 2)) {\n\t\tconst following = state.input.charCodeAt(position + 3);\n\t\treturn following === 0 || isWsOrEol(following);\n\t}\n\treturn false;\n}\nfunction skipByteOrderMark(state) {\n\tif (state.position === state.lineStart && state.input.charCodeAt(state.position) === 65279) {\n\t\tstate.position++;\n\t\tstate.lineStart = state.position;\n\t}\n}\nfunction testDocumentBoundary(state) {\n\tif (state.position !== state.lineStart) return false;\n\tif (testDocumentSeparator(state)) return true;\n\tif (state.input.charCodeAt(state.position) !== 65279) return false;\n\tconst snapshot = snapshotState(state);\n\tskipByteOrderMark(state);\n\tskipSeparationSpace(state, true);\n\tconst ch = state.input.charCodeAt(state.position);\n\tconst result = state.position === state.lineStart && (ch === 37 || ch === 45 && testDocumentSeparator(state));\n\trestoreState(state, snapshot);\n\treturn result;\n}\nfunction skipUntilLineEnd(state) {\n\tlet ch = state.input.charCodeAt(state.position);\n\twhile (ch !== 0 && !isEol(ch)) ch = state.input.charCodeAt(++state.position);\n}\nfunction checkPrintable(state, start, end) {\n\tif (PATTERN_NON_PRINTABLE.test(state.input.slice(start, end))) throwError(state, \"the stream contains non-printable characters\");\n}\nfunction readTagProperty(state, props, inFlow) {\n\tif (state.input.charCodeAt(state.position) !== 33) return false;\n\tif (props.tagStart !== NO_RANGE$1) throwError(state, \"duplication of a tag property\");\n\tconst start = state.position;\n\tlet isVerbatim = false;\n\tlet isNamed = false;\n\tlet tagHandle = \"!\";\n\tlet ch = state.input.charCodeAt(++state.position);\n\tif (ch === 60) {\n\t\tisVerbatim = true;\n\t\tch = state.input.charCodeAt(++state.position);\n\t} else if (ch === 33) {\n\t\tisNamed = true;\n\t\ttagHandle = \"!!\";\n\t\tch = state.input.charCodeAt(++state.position);\n\t}\n\tlet suffixStart = state.position;\n\tlet tagName;\n\tif (isVerbatim) {\n\t\twhile (ch !== 0 && ch !== 62) ch = state.input.charCodeAt(++state.position);\n\t\tif (ch !== 62) throwError(state, \"unexpected end of the stream within a verbatim tag\");\n\t\ttagName = state.input.slice(suffixStart, state.position);\n\t\tstate.position++;\n\t} else {\n\t\twhile (ch !== 0 && !isWsOrEol(ch) && !(inFlow && isFlowIndicator(ch))) {\n\t\t\tif (ch === 33) if (!isNamed) {\n\t\t\t\ttagHandle = state.input.slice(suffixStart - 1, state.position + 1);\n\t\t\t\tif (!PATTERN_TAG_HANDLE.test(tagHandle)) throwError(state, \"named tag handle cannot contain such characters\");\n\t\t\t\tisNamed = true;\n\t\t\t\tsuffixStart = state.position + 1;\n\t\t\t} else throwError(state, \"tag suffix cannot contain exclamation marks\");\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t}\n\t\ttagName = state.input.slice(suffixStart, state.position);\n\t\tif (PATTERN_FLOW_INDICATORS.test(tagName)) throwError(state, \"tag suffix cannot contain flow indicator characters\");\n\t}\n\tif (tagName && !(isVerbatim ? PATTERN_TAG_URI.test(tagName) : PATTERN_TAG_SUFFIX.test(tagName))) throwError(state, `tag name cannot contain such characters: ${tagName}`);\n\tif (!isVerbatim && tagHandle !== \"!\" && tagHandle !== \"!!\" && !HAS_OWN.call(state.tagHandlers, tagHandle)) throwError(state, `undeclared tag handle \"${tagHandle}\"`);\n\tprops.tagStart = start;\n\tprops.tagEnd = state.position;\n\treturn true;\n}\nfunction readAnchorProperty(state, props) {\n\tif (state.input.charCodeAt(state.position) !== 38) return false;\n\tif (props.anchorStart !== NO_RANGE$1) throwError(state, \"duplication of an anchor property\");\n\tstate.position++;\n\tconst start = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position)) && !isFlowIndicator(state.input.charCodeAt(state.position))) state.position++;\n\tif (state.position === start) throwError(state, \"name of an anchor node must contain at least one character\");\n\tprops.anchorStart = start;\n\tprops.anchorEnd = state.position;\n\treturn true;\n}\nfunction readAlias(state, props) {\n\tif (state.input.charCodeAt(state.position) !== 42) return false;\n\tif (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) throwError(state, \"alias node should not have any properties\");\n\tstate.position++;\n\tconst start = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position)) && !isFlowIndicator(state.input.charCodeAt(state.position))) state.position++;\n\tif (state.position === start) throwError(state, \"name of an alias node must contain at least one character\");\n\taddAliasEvent(state, start, state.position);\n\treturn true;\n}\nfunction readFlowScalarBreak(state, nodeIndent) {\n\tskipSeparationSpace(state, false);\n\tif (state.lineIndent < nodeIndent) throwError(state, \"deficient indentation\");\n}\nfunction readSingleQuotedScalar(state, nodeIndent, props) {\n\tif (state.input.charCodeAt(state.position) !== 39) return false;\n\tstate.position++;\n\tconst start = state.position;\n\tlet simple = true;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst ch = state.input.charCodeAt(state.position);\n\t\tif (ch === 39) {\n\t\t\tif (state.input.charCodeAt(state.position + 1) === 39) {\n\t\t\t\tsimple = false;\n\t\t\t\tstate.position += 2;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst end = state.position;\n\t\t\tstate.position++;\n\t\t\taddScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.SINGLE_QUOTED, CHOMPING_MODE.CLIP, -1, simple);\n\t\t\treturn true;\n\t\t}\n\t\tif (isEol(ch)) {\n\t\t\tsimple = false;\n\t\t\treadFlowScalarBreak(state, nodeIndent);\n\t\t} else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a single quoted scalar\");\n\t\telse if (ch !== 9 && ch < 32) throwError(state, \"expected valid JSON character\");\n\t\telse state.position++;\n\t}\n\tthrowError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state, nodeIndent, props) {\n\tif (state.input.charCodeAt(state.position) !== 34) return false;\n\tstate.position++;\n\tconst start = state.position;\n\tlet simple = true;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst ch = state.input.charCodeAt(state.position);\n\t\tif (ch === 34) {\n\t\t\tconst end = state.position;\n\t\t\tstate.position++;\n\t\t\taddScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.DOUBLE_QUOTED, CHOMPING_MODE.CLIP, -1, simple);\n\t\t\treturn true;\n\t\t}\n\t\tif (ch === 92) {\n\t\t\tsimple = false;\n\t\t\tconst escaped = state.input.charCodeAt(++state.position);\n\t\t\tif (isEol(escaped)) readFlowScalarBreak(state, nodeIndent);\n\t\t\telse if (isSimpleEscape(escaped)) state.position++;\n\t\t\telse {\n\t\t\t\tlet hexLength = escapedHexLen(escaped);\n\t\t\t\tif (hexLength === 0) throwError(state, \"unknown escape sequence\");\n\t\t\t\twhile (hexLength-- > 0) {\n\t\t\t\t\tstate.position++;\n\t\t\t\t\tif (fromHexCode(state.input.charCodeAt(state.position)) < 0) throwError(state, \"expected hexadecimal character\");\n\t\t\t\t}\n\t\t\t\tstate.position++;\n\t\t\t}\n\t\t} else if (isEol(ch)) {\n\t\t\tsimple = false;\n\t\t\treadFlowScalarBreak(state, nodeIndent);\n\t\t} else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a double quoted scalar\");\n\t\telse if (ch !== 9 && ch < 32) throwError(state, \"expected valid JSON character\");\n\t\telse state.position++;\n\t}\n\tthrowError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readBlockScalar(state, parentIndent, props) {\n\tconst ch = state.input.charCodeAt(state.position);\n\tlet chomping = CHOMPING_MODE.CLIP;\n\tlet indent = -1;\n\tlet detectedIndent = false;\n\tif (ch !== 124 && ch !== 62) return false;\n\tconst style = ch === 124 ? SCALAR_STYLE.LITERAL_BLOCK : SCALAR_STYLE.FOLDED_BLOCK;\n\tstate.position++;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst current = state.input.charCodeAt(state.position);\n\t\tconst digit = fromDecimalCode(current);\n\t\tif (current === 43 || current === 45) {\n\t\t\tif (chomping !== CHOMPING_MODE.CLIP) throwError(state, \"repeat of a chomping mode identifier\");\n\t\t\tchomping = current === 43 ? CHOMPING_MODE.KEEP : CHOMPING_MODE.STRIP;\n\t\t\tstate.position++;\n\t\t} else if (digit >= 0) {\n\t\t\tif (digit === 0) throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n\t\t\tif (detectedIndent) throwError(state, \"repeat of an indentation width identifier\");\n\t\t\tindent = parentIndent + digit - 1;\n\t\t\tdetectedIndent = true;\n\t\t\tstate.position++;\n\t\t} else break;\n\t}\n\tlet hadWhitespace = false;\n\twhile (isWhiteSpace(state.input.charCodeAt(state.position))) {\n\t\thadWhitespace = true;\n\t\tstate.position++;\n\t}\n\tif (hadWhitespace && state.input.charCodeAt(state.position) === 35) skipUntilLineEnd(state);\n\tif (isEol(state.input.charCodeAt(state.position))) consumeLineBreak(state);\n\telse if (state.input.charCodeAt(state.position) !== 0) throwError(state, \"a line break is expected\");\n\tlet contentIndent = detectedIndent ? indent : -1;\n\tlet maxLeadingIndent = 0;\n\tconst valueStart = state.position;\n\tlet valueEnd = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst linePosition = state.position;\n\t\tlet column = 0;\n\t\twhile (state.input.charCodeAt(linePosition + column) === 32) column++;\n\t\tconst first = state.input.charCodeAt(linePosition + column);\n\t\tif (first === 0) {\n\t\t\tif (contentIndent >= 0) {\n\t\t\t\tif (column > contentIndent) valueEnd = linePosition + column;\n\t\t\t} else if (column > 0) valueEnd = linePosition + column;\n\t\t\tbreak;\n\t\t}\n\t\tif (testDocumentBoundary(state)) break;\n\t\tif (!detectedIndent && contentIndent === -1 && isEol(first)) maxLeadingIndent = Math.max(maxLeadingIndent, column);\n\t\tif (!detectedIndent && contentIndent === -1 && !isEol(first)) {\n\t\t\tif (first === 9 && column < parentIndent) {\n\t\t\t\tstate.position = linePosition + column;\n\t\t\t\tthrowError(state, \"tab characters must not be used in indentation\");\n\t\t\t}\n\t\t\tif (column < maxLeadingIndent) {\n\t\t\t\tstate.position = linePosition + column;\n\t\t\t\tthrowError(state, \"bad indentation of a mapping entry\");\n\t\t\t}\n\t\t}\n\t\tif (contentIndent === -1 && first !== 0 && !isEol(first) && column < parentIndent) {\n\t\t\tstate.lineIndent = column;\n\t\t\tstate.position = linePosition + column;\n\t\t\tbreak;\n\t\t}\n\t\tif (!detectedIndent && first !== 0 && !isEol(first) && contentIndent === -1) contentIndent = column;\n\t\tconst requiredIndent = contentIndent === -1 ? parentIndent + 1 : contentIndent;\n\t\tif (first !== 0 && !isEol(first) && column < requiredIndent) {\n\t\t\tstate.lineIndent = column;\n\t\t\tstate.position = linePosition + column;\n\t\t\tbreak;\n\t\t}\n\t\tskipUntilLineEnd(state);\n\t\tvalueEnd = state.position;\n\t\tif (isEol(state.input.charCodeAt(state.position))) {\n\t\t\tconsumeLineBreak(state);\n\t\t\tvalueEnd = state.position;\n\t\t}\n\t}\n\tcheckPrintable(state, valueStart, valueEnd);\n\taddScalarEvent(state, valueStart, valueEnd, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, style, chomping, contentIndent);\n\treturn true;\n}\nfunction canStartPlainScalar(state, nodeContext) {\n\tconst ch = state.input.charCodeAt(state.position);\n\tconst inFlow = nodeContext === CONTEXT_FLOW_IN;\n\tif (ch === 0 || isWsOrEol(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96 || inFlow && isFlowIndicator(ch)) return false;\n\tif (ch === 63 || ch === 45) {\n\t\tconst following = state.input.charCodeAt(state.position + 1);\n\t\tif (isWsOrEolOrEnd(following) || inFlow && isFlowIndicator(following)) return false;\n\t}\n\treturn true;\n}\nfunction readPlainScalar(state, nodeIndent, nodeContext, props) {\n\tif (!canStartPlainScalar(state, nodeContext)) return false;\n\tconst start = state.position;\n\tlet end = state.position;\n\tlet ch = state.input.charCodeAt(state.position);\n\tconst inFlow = nodeContext === CONTEXT_FLOW_IN;\n\tlet multiline = false;\n\twhile (ch !== 0) {\n\t\tif (testDocumentBoundary(state)) break;\n\t\tif (ch === 58) {\n\t\t\tconst following = state.input.charCodeAt(state.position + 1);\n\t\t\tif (isWsOrEolOrEnd(following) || inFlow && isFlowIndicator(following)) break;\n\t\t} else if (ch === 35) {\n\t\t\tif (isWsOrEol(state.input.charCodeAt(state.position - 1))) break;\n\t\t} else if (inFlow && isFlowIndicator(ch)) break;\n\t\telse if (isEol(ch)) {\n\t\t\tconst savedPosition = state.position;\n\t\t\tconst savedLine = state.line;\n\t\t\tconst savedLineStart = state.lineStart;\n\t\t\tconst savedLineIndent = state.lineIndent;\n\t\t\tskipSeparationSpace(state, false);\n\t\t\tif (state.lineIndent >= nodeIndent) {\n\t\t\t\tmultiline = true;\n\t\t\t\tch = state.input.charCodeAt(state.position);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tstate.position = savedPosition;\n\t\t\tstate.line = savedLine;\n\t\t\tstate.lineStart = savedLineStart;\n\t\t\tstate.lineIndent = savedLineIndent;\n\t\t\tbreak;\n\t\t}\n\t\tif (!isWhiteSpace(ch)) end = state.position + 1;\n\t\tch = state.input.charCodeAt(++state.position);\n\t}\n\tif (end === start) return false;\n\tcheckPrintable(state, start, end);\n\taddScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.PLAIN, CHOMPING_MODE.CLIP, -1, !multiline);\n\treturn true;\n}\nfunction skipFlowSeparationSpace(state, nodeIndent) {\n\tconst startLine = state.line;\n\tskipSeparationSpace(state, true);\n\tif (state.line > startLine && state.lineIndent < nodeIndent || state.firstTabInLine !== -1 && state.lineIndent < nodeIndent) throwError(state, \"deficient indentation\");\n}\nfunction readFlowCollection(state, nodeIndent, props) {\n\tconst ch = state.input.charCodeAt(state.position);\n\tconst isMapping = ch === 123;\n\tconst start = state.position;\n\tlet readNext = true;\n\tif (ch !== 91 && ch !== 123) return false;\n\tconst terminator = isMapping ? 125 : 93;\n\tif (isMapping) addMappingEvent(state, start, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.FLOW);\n\telse addSequenceEvent(state, start, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.FLOW);\n\tstate.position++;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\tlet ch = state.input.charCodeAt(state.position);\n\t\tif (ch === terminator) {\n\t\t\tstate.position++;\n\t\t\taddPopEvent(state);\n\t\t\treturn true;\n\t\t} else if (!readNext) throwError(state, \"missed comma between flow collection entries\");\n\t\telse if (ch === 44) throwError(state, \"expected the node content, but found ','\");\n\t\tlet isPair = false;\n\t\tlet isExplicitPair = false;\n\t\tif (ch === 63 && isWsOrEol(state.input.charCodeAt(state.position + 1))) {\n\t\t\tisPair = isExplicitPair = true;\n\t\t\tstate.position += 1;\n\t\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\t}\n\t\tconst entryLine = state.line;\n\t\tconst entryStart = snapshotState(state);\n\t\tconst keyWasRead = parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\tch = state.input.charCodeAt(state.position);\n\t\tif ((isMapping || isExplicitPair || state.line === entryLine) && ch === 58) {\n\t\t\tisPair = true;\n\t\t\tstate.position++;\n\t\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\t\tif (!isMapping) {\n\t\t\t\tinsertFlowPairMappingEvent(state, entryStart);\n\t\t\t\tif (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\t} else if (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\tif (!parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true)) addEmptyScalarEvent(state);\n\t\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\t\tif (!isMapping) addPopEvent(state);\n\t\t} else if (isMapping && isPair) {\n\t\t\tif (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\taddEmptyScalarEvent(state);\n\t\t} else if (isMapping) addEmptyScalarEvent(state);\n\t\telse if (isPair) {\n\t\t\tinsertFlowPairMappingEvent(state, entryStart);\n\t\t\tif (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\taddEmptyScalarEvent(state);\n\t\t\taddPopEvent(state);\n\t\t}\n\t\tch = state.input.charCodeAt(state.position);\n\t\tif (ch === 44) {\n\t\t\treadNext = true;\n\t\t\tstate.position++;\n\t\t} else readNext = false;\n\t}\n\tthrowError(state, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockSequence(state, nodeIndent, props) {\n\tif (state.firstTabInLine !== -1 || state.input.charCodeAt(state.position) !== 45 || !isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) return false;\n\taddSequenceEvent(state, state.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.BLOCK);\n\twhile (state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) {\n\t\tif (state.firstTabInLine !== -1) {\n\t\t\tstate.position = state.firstTabInLine;\n\t\t\tthrowError(state, \"tab characters must not be used in indentation\");\n\t\t}\n\t\tconst entryLine = state.line;\n\t\tstate.position++;\n\t\tconst hadBreak = skipSeparationSpace(state, true) > 0;\n\t\tif (state.firstTabInLine !== -1 && state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) throwError(state, \"bad indentation of a sequence entry\");\n\t\tif (hadBreak && state.lineIndent <= nodeIndent) addEmptyScalarEvent(state);\n\t\telse parseNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n\t\tskipSeparationSpace(state, true);\n\t\tif (state.lineIndent < nodeIndent || state.position >= state.length) break;\n\t\tif (state.lineIndent > nodeIndent) throwError(state, \"bad indentation of a sequence entry\");\n\t\tif (state.line === entryLine && state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) throwError(state, \"bad indentation of a sequence entry\");\n\t}\n\taddPopEvent(state);\n\treturn true;\n}\nfunction readBlockMapping(state, nodeIndent, flowIndent, props) {\n\tlet atExplicitKey = false;\n\tlet detected = false;\n\tlet mappingOpened = false;\n\tlet pendingExplicitKey = false;\n\tif (state.firstTabInLine !== -1) return false;\n\tlet ch = state.input.charCodeAt(state.position);\n\twhile (ch !== 0) {\n\t\tif (!atExplicitKey && state.firstTabInLine !== -1) {\n\t\t\tstate.position = state.firstTabInLine;\n\t\t\tthrowError(state, \"tab characters must not be used in indentation\");\n\t\t}\n\t\tconst following = state.input.charCodeAt(state.position + 1);\n\t\tconst entryLine = state.line;\n\t\tif ((ch === 63 || ch === 58) && isWsOrEolOrEnd(following)) {\n\t\t\tif (!mappingOpened) {\n\t\t\t\taddMappingEvent(state, state.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.BLOCK);\n\t\t\t\tmappingOpened = true;\n\t\t\t}\n\t\t\tif (ch === 63) {\n\t\t\t\tif (atExplicitKey) addEmptyScalarEvent(state);\n\t\t\t\tdetected = true;\n\t\t\t\tatExplicitKey = true;\n\t\t\t} else if (atExplicitKey) atExplicitKey = false;\n\t\t\telse {\n\t\t\t\taddEmptyScalarEvent(state);\n\t\t\t\tdetected = true;\n\t\t\t\tatExplicitKey = false;\n\t\t\t}\n\t\t\tstate.position += 1;\n\t\t\tpendingExplicitKey = true;\n\t\t} else {\n\t\t\tif (atExplicitKey) {\n\t\t\t\taddEmptyScalarEvent(state);\n\t\t\t\tatExplicitKey = false;\n\t\t\t}\n\t\t\tconst beforeKey = snapshotState(state);\n\t\t\tif (!parseNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) break;\n\t\t\tif (state.line === entryLine) {\n\t\t\t\tch = state.input.charCodeAt(state.position);\n\t\t\t\twhile (isWhiteSpace(ch)) ch = state.input.charCodeAt(++state.position);\n\t\t\t\tif (ch === 58) {\n\t\t\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t\t\t\tif (!isWsOrEolOrEnd(ch)) throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n\t\t\t\t\tif (!mappingOpened) {\n\t\t\t\t\t\trestoreState(state, beforeKey);\n\t\t\t\t\t\taddMappingEvent(state, beforeKey.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.BLOCK);\n\t\t\t\t\t\tmappingOpened = true;\n\t\t\t\t\t\tparseNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true);\n\t\t\t\t\t\tch = state.input.charCodeAt(state.position);\n\t\t\t\t\t\twhile (isWhiteSpace(ch)) ch = state.input.charCodeAt(++state.position);\n\t\t\t\t\t\tstate.position++;\n\t\t\t\t\t}\n\t\t\t\t\tdetected = true;\n\t\t\t\t\tatExplicitKey = false;\n\t\t\t\t\tpendingExplicitKey = false;\n\t\t\t\t} else if (detected) throwError(state, \"expected ':' after a mapping key\");\n\t\t\t\telse {\n\t\t\t\t\tif (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) {\n\t\t\t\t\t\trestoreState(state, beforeKey);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else if (detected) throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n\t\t\telse {\n\t\t\t\tif (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) {\n\t\t\t\t\trestoreState(state, beforeKey);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tif (parseNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, pendingExplicitKey)) pendingExplicitKey = false;\n\t\tif (!atExplicitKey) {\n\t\t\tif (pendingExplicitKey) {\n\t\t\t\taddEmptyScalarEvent(state);\n\t\t\t\tpendingExplicitKey = false;\n\t\t\t}\n\t\t}\n\t\tskipSeparationSpace(state, true);\n\t\tch = state.input.charCodeAt(state.position);\n\t\tif ((state.line === entryLine || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, \"bad indentation of a mapping entry\");\n\t\telse if (state.lineIndent < nodeIndent) break;\n\t}\n\tif (!detected) return false;\n\tif (atExplicitKey) addEmptyScalarEvent(state);\n\tif (mappingOpened) addPopEvent(state);\n\treturn true;\n}\nfunction parseNode(state, parentIndent, nodeContext, allowToSeek, allowCompact, allowPropertyMapping = true) {\n\tif (state.depth >= state.maxDepth) throwError(state, `nesting exceeded maxDepth (${state.maxDepth})`);\n\tstate.depth++;\n\tlet indentStatus = 1;\n\tlet atNewLine = false;\n\tlet hasContent = false;\n\tlet propertyStart = null;\n\tconst props = emptyProperties();\n\tlet allowBlockScalars = nodeContext === CONTEXT_BLOCK_OUT || nodeContext === CONTEXT_BLOCK_IN;\n\tlet allowBlockCollections = allowBlockScalars;\n\tconst allowBlockStyles = allowBlockScalars;\n\tif (allowToSeek && skipSeparationSpace(state, true)) {\n\t\tatNewLine = true;\n\t\tif (state.lineIndent > parentIndent) indentStatus = 1;\n\t\telse if (state.lineIndent === parentIndent) indentStatus = 0;\n\t\telse indentStatus = -1;\n\t}\n\tif (indentStatus === 1) while (true) {\n\t\tconst ch = state.input.charCodeAt(state.position);\n\t\tconst propertyState = snapshotState(state);\n\t\tif (atNewLine && indentStatus !== 1 && (ch === 33 || ch === 38)) break;\n\t\tif (atNewLine && allowBlockStyles && (props.tagStart !== NO_RANGE$1 || props.anchorStart !== NO_RANGE$1) && (ch === 33 || ch === 38)) {\n\t\t\tconst fallbackState = snapshotState(state);\n\t\t\tconst flowIndent = parentIndent + 1;\n\t\t\tif (readBlockMapping(state, state.position - state.lineStart, flowIndent, props) && state.events[fallbackState.eventsLength]?.type === EVENT_ID.MAPPING) {\n\t\t\t\tstate.depth--;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\trestoreState(state, fallbackState);\n\t\t}\n\t\tif (atNewLine && (ch === 33 && props.tagStart !== NO_RANGE$1 || ch === 38 && props.anchorStart !== NO_RANGE$1)) break;\n\t\tif (!readTagProperty(state, props, nodeContext === CONTEXT_FLOW_IN) && !readAnchorProperty(state, props)) break;\n\t\tif (propertyStart === null) propertyStart = propertyState;\n\t\tif (skipSeparationSpace(state, true)) {\n\t\t\tatNewLine = true;\n\t\t\tallowBlockCollections = allowBlockStyles;\n\t\t\tif (state.lineIndent > parentIndent) indentStatus = 1;\n\t\t\telse if (state.lineIndent === parentIndent) indentStatus = 0;\n\t\t\telse indentStatus = -1;\n\t\t} else allowBlockCollections = false;\n\t}\n\tif (allowBlockCollections) allowBlockCollections = atNewLine || allowCompact;\n\tif (indentStatus === 1 || nodeContext === CONTEXT_BLOCK_OUT) {\n\t\tconst flowIndent = nodeContext === CONTEXT_FLOW_IN || nodeContext === CONTEXT_FLOW_OUT ? parentIndent : parentIndent + 1;\n\t\tconst blockIndent = state.position - state.lineStart;\n\t\tif (indentStatus === 1) if (allowBlockCollections && (readBlockSequence(state, blockIndent, props) || readBlockMapping(state, blockIndent, flowIndent, props)) || readFlowCollection(state, flowIndent, props)) hasContent = true;\n\t\telse {\n\t\t\tconst ch = state.input.charCodeAt(state.position);\n\t\t\tif (propertyStart !== null && allowPropertyMapping && allowBlockStyles && !allowBlockCollections && ch !== 124 && ch !== 62) {\n\t\t\t\tconst fallbackState = snapshotState(state);\n\t\t\t\tconst propertyIndent = propertyStart.position - propertyStart.lineStart;\n\t\t\t\trestoreState(state, propertyStart);\n\t\t\t\tif (readBlockMapping(state, propertyIndent, flowIndent, emptyProperties()) && state.events[fallbackState.eventsLength]?.type === EVENT_ID.MAPPING) hasContent = true;\n\t\t\t\telse restoreState(state, fallbackState);\n\t\t\t}\n\t\t\tif (!hasContent && (allowBlockScalars && readBlockScalar(state, flowIndent, props) || readSingleQuotedScalar(state, flowIndent, props) || readDoubleQuotedScalar(state, flowIndent, props) || readAlias(state, props) || readPlainScalar(state, flowIndent, nodeContext, props))) hasContent = true;\n\t\t}\n\t\telse if (indentStatus === 0) hasContent = allowBlockCollections && readBlockSequence(state, blockIndent, props);\n\t}\n\tallowBlockScalars = allowBlockScalars && !hasContent;\n\tif (!hasContent && (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1 || allowBlockScalars)) {\n\t\taddScalarEvent(state, NO_RANGE$1, NO_RANGE$1, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.PLAIN);\n\t\thasContent = true;\n\t}\n\tstate.depth--;\n\treturn hasContent || props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1;\n}\nfunction readDirective(state) {\n\tif (state.lineIndent > 0 || state.input.charCodeAt(state.position) !== 37) return false;\n\tstate.position++;\n\tconst nameStart = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position))) state.position++;\n\tconst name = state.input.slice(nameStart, state.position);\n\tconst args = [];\n\tif (name.length === 0) throwError(state, \"directive name must not be less than one character in length\");\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isEol(state.input.charCodeAt(state.position))) {\n\t\twhile (isWhiteSpace(state.input.charCodeAt(state.position))) state.position++;\n\t\tif (state.input.charCodeAt(state.position) === 35 || isEol(state.input.charCodeAt(state.position)) || state.input.charCodeAt(state.position) === 0) break;\n\t\tconst start = state.position;\n\t\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position))) state.position++;\n\t\targs.push(state.input.slice(start, state.position));\n\t}\n\tif (isEol(state.input.charCodeAt(state.position))) consumeLineBreak(state);\n\tif (name === \"YAML\") {\n\t\tif (state.directives.some((directive) => directive.kind === \"yaml\")) throwError(state, \"duplication of %YAML directive\");\n\t\tif (args.length !== 1) throwError(state, \"YAML directive accepts exactly one argument\");\n\t\tconst match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\t\tif (match === null) throwError(state, \"ill-formed argument of the YAML directive\");\n\t\tif (parseInt(match[1], 10) !== 1) throwError(state, \"unacceptable YAML version of the document\");\n\t\tstate.directives.push({\n\t\t\tkind: \"yaml\",\n\t\t\tversion: args[0]\n\t\t});\n\t} else if (name === \"TAG\") {\n\t\tif (args.length !== 2) throwError(state, \"TAG directive accepts exactly two arguments\");\n\t\tconst [handle, prefix] = args;\n\t\tif (!PATTERN_TAG_HANDLE.test(handle)) throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n\t\tif (HAS_OWN.call(state.tagHandlers, handle)) throwError(state, `there is a previously declared suffix for \"${handle}\" tag handle`);\n\t\tif (!PATTERN_TAG_PREFIX.test(prefix)) throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n\t\tstate.tagHandlers[handle] = prefix;\n\t\tstate.directives.push({\n\t\t\tkind: \"tag\",\n\t\t\thandle,\n\t\t\tprefix\n\t\t});\n\t}\n\treturn true;\n}\nfunction readDocument(state) {\n\tstate.directives = [];\n\tstate.tagHandlers = Object.create(null);\n\tlet hasDirectives = false;\n\tskipSeparationSpace(state, true);\n\twhile (readDirective(state)) {\n\t\thasDirectives = true;\n\t\tskipSeparationSpace(state, true);\n\t}\n\tlet explicitStart = false;\n\tlet explicitEnd = false;\n\tlet allowCompact = true;\n\tif (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 3))) {\n\t\texplicitStart = true;\n\t\tconst markerLine = state.line;\n\t\tstate.position += 3;\n\t\tskipSeparationSpace(state, true);\n\t\tallowCompact = state.line > markerLine;\n\t} else if (hasDirectives) throwError(state, \"directives end mark is expected\");\n\tconst documentEventIndex = state.events.length;\n\tif (!explicitStart && state.position === state.lineStart && state.input.charCodeAt(state.position) === 46 && testDocumentSeparator(state)) {\n\t\tstate.position += 3;\n\t\tskipSeparationSpace(state, true);\n\t\treturn;\n\t}\n\taddDocumentEvent(state, explicitStart, false);\n\tif (!parseNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, allowCompact, allowCompact)) addEmptyScalarEvent(state);\n\tskipSeparationSpace(state, true);\n\tif (state.position === state.lineStart && testDocumentSeparator(state)) {\n\t\texplicitEnd = state.input.charCodeAt(state.position) === 46;\n\t\tif (explicitEnd) {\n\t\t\tconst markerLine = state.line;\n\t\t\tstate.position += 3;\n\t\t\tskipSeparationSpace(state, true);\n\t\t\tif (state.line === markerLine && state.position < state.length) throwError(state, \"end of the stream or a document separator is expected\");\n\t\t}\n\t}\n\tconst documentEvent = state.events[documentEventIndex];\n\tif (documentEvent?.type === EVENT_ID.DOCUMENT) documentEvent.explicitEnd = explicitEnd;\n\taddPopEvent(state);\n\tif (!explicitEnd && state.position < state.length && !testDocumentBoundary(state)) throwError(state, \"end of the stream or a document separator is expected\");\n}\n/**\n* Parses YAML into a flat event stream referencing source text by offsets.\n*\n* @category Events\n*/\nfunction parseEvents(input, options) {\n\tconst length = input.length;\n\tconst state = {\n\t\t...DEFAULT_PARSER_OPTIONS,\n\t\t...options,\n\t\tinput: `${input}\\0`,\n\t\tlength,\n\t\tposition: 0,\n\t\tline: 0,\n\t\tlineStart: 0,\n\t\tlineIndent: 0,\n\t\tfirstTabInLine: -1,\n\t\tdepth: 0,\n\t\tdirectives: [],\n\t\ttagHandlers: Object.create(null),\n\t\tevents: []\n\t};\n\tconst nullpos = input.indexOf(\"\\0\");\n\tif (nullpos !== -1) YAMLException.throwAt(input, nullpos, \"null byte is not allowed in input\", state.filename);\n\twhile (state.position < state.length) {\n\t\tskipByteOrderMark(state);\n\t\tskipSeparationSpace(state, true);\n\t\tif (state.position >= state.length) break;\n\t\tconst documentStart = state.position;\n\t\treadDocument(state);\n\t\tif (state.position === documentStart)\n /* c8 ignore next */\n\t\tthrowError(state, \"can not read a document\");\n\t}\n\treturn state.events;\n}\n//#endregion\n//#region src/load.ts\nvar DEFAULT_LOAD_OPTIONS = {\n\t...DEFAULT_PARSER_OPTIONS,\n\t...DEFAULT_CONSTRUCTOR_OPTIONS\n};\nfunction loadDocuments(input, options = {}) {\n\tconst opts = {\n\t\t...DEFAULT_LOAD_OPTIONS,\n\t\t...options\n\t};\n\tconst source = String(input);\n\tconst PARSER_OPT_KEYS = Object.keys(DEFAULT_PARSER_OPTIONS);\n\tconst CONSTRUCTOR_OPT_KEYS = Object.keys(DEFAULT_CONSTRUCTOR_OPTIONS);\n\treturn constructFromEvents(parseEvents(source, pick(opts, PARSER_OPT_KEYS)), {\n\t\t...pick(opts, CONSTRUCTOR_OPT_KEYS),\n\t\tsource\n\t});\n}\nfunction loadAll(input, iteratorOrOptions, options) {\n\tlet iterator = null;\n\tif (typeof iteratorOrOptions === \"function\") iterator = iteratorOrOptions;\n\telse if (iteratorOrOptions !== null && typeof iteratorOrOptions === \"object\") options = iteratorOrOptions;\n\tconst documents = loadDocuments(input, options);\n\tif (iterator === null) return documents;\n\tfor (const document of documents) iterator(document);\n}\n/**\n* Parses `string` as a single YAML document. Throws {@link YAMLException} on\n* error. This function does not understand multi-document or empty sources; it\n* throws an exception on those.\n*\n* > [!NOTE]\n* > 1. When processing untrusted input, see the\n* > [security considerations](../docs/safety.md).\n* > 2. All exceptions MUST be caught, not just {@link YAMLException}.\n* > 3. The default {@link CORE_SCHEMA} comes without the `!!merge` tag. You can\n* > easily enable it if needed.\n* > 4. The default {@link mapTag} is `{}`-object based, with known limitations\n* > (see description). For full compatibility use {@link realMapTag}\n* > instead (it uses native JS `Map`).\n*\n* @example\n* Enable {@link mergeTag} and {@link realMapTag}:\n*\n* ```javascript\n* import { load, CORE_SCHEMA, mergeTag, realMapTag } from 'js-yaml'\n*\n* try {\n* load(data, { schema: CORE_SCHEMA.withTags(mergeTag, realMapTag) })\n* } catch (e) {\n* console.error(e)\n* }\n* ```\n*\n* @category Main\n*/\nfunction load(input, options) {\n\tconst documents = loadDocuments(input, options);\n\tif (documents.length === 0) throw new YAMLException(\"expected a document, but the input is empty\");\n\tif (documents.length === 1) return documents[0];\n\tthrow new YAMLException(\"expected a single document in the stream, but found more\");\n}\n//#endregion\n//#region src/ast/from_js.ts\nvar INVALID = Symbol(\"INVALID\");\nfunction buildRepresentTypes(schema) {\n\tconst defaultTags = new Set([\n\t\tschema.defaultScalarTag,\n\t\tschema.defaultSequenceTag,\n\t\tschema.defaultMappingTag\n\t].filter((t) => t !== void 0));\n\tconst implicitScalars = schema.implicitScalarTags;\n\tconst explicitTags = schema.tags.filter((t) => !(t.nodeKind === \"scalar\" && t.implicit) && !defaultTags.has(t));\n\tconst defaultTagsLast = schema.tags.filter((t) => defaultTags.has(t));\n\treturn [\n\t\t...implicitScalars.map((tag) => ({\n\t\t\ttag,\n\t\t\timplicitTag: true\n\t\t})),\n\t\t...explicitTags.map((tag) => ({\n\t\t\ttag,\n\t\t\timplicitTag: false\n\t\t})),\n\t\t...defaultTagsLast.map((tag) => ({\n\t\t\ttag,\n\t\t\timplicitTag: true\n\t\t}))\n\t];\n}\nfunction matchTag(state, object) {\n\tfor (let index = 0, length = state.representTypes.length; index < length; index += 1) {\n\t\tconst { tag, implicitTag } = state.representTypes[index];\n\t\tif (tag.identify(object)) {\n\t\t\tlet tagName;\n\t\t\tif (tag.matchByTagPrefix) tagName = tag.representTagName(object);\n\t\t\telse tagName = tag.tagName;\n\t\t\treturn {\n\t\t\t\ttag,\n\t\t\t\ttagName,\n\t\t\t\timplicitTag\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n}\nfunction build(state, object) {\n\tif (!state.noRefs && object !== null && typeof object === \"object\") {\n\t\tconst existing = state.refs.get(object);\n\t\tif (existing) {\n\t\t\tif (existing.anchor === void 0) existing.anchor = `ref_${state.refCounter++}`;\n\t\t\treturn {\n\t\t\t\tkind: \"alias\",\n\t\t\t\tanchor: existing.anchor\n\t\t\t};\n\t\t}\n\t}\n\tconst matched = matchTag(state, object);\n\tif (!matched) {\n\t\tif (object === void 0) return INVALID;\n\t\tif (state.skipInvalid) return INVALID;\n\t\tthrow new YAMLException(`unacceptable kind of an object to dump ${Object.prototype.toString.call(object)}`);\n\t}\n\tconst { tag, tagName, implicitTag } = matched;\n\tconst nodeTagName = implicitTag ? tagName : tagNameShort(tagName);\n\tif (tag.nodeKind === \"scalar\") return {\n\t\tkind: \"scalar\",\n\t\ttag: nodeTagName,\n\t\ttagged: !implicitTag,\n\t\tstyle: SCALAR_STYLE.PLAIN,\n\t\tvalue: tag.represent(object)\n\t};\n\tif (tag.nodeKind === \"sequence\") {\n\t\tconst container = tag.represent(object);\n\t\tconst node = {\n\t\t\tkind: \"sequence\",\n\t\t\ttag: nodeTagName,\n\t\t\ttagged: !implicitTag,\n\t\t\tstyle: COLLECTION_STYLE.BLOCK,\n\t\t\titems: []\n\t\t};\n\t\tif (!state.noRefs) state.refs.set(object, node);\n\t\tfor (let index = 0, length = container.length; index < length; index += 1) {\n\t\t\tlet item = build(state, container[index]);\n\t\t\tif (item === INVALID && container[index] === void 0) item = build(state, null);\n\t\t\tif (item === INVALID) continue;\n\t\t\tnode.items.push(item);\n\t\t}\n\t\treturn node;\n\t}\n\tconst map = tag.represent(object);\n\tconst node = {\n\t\tkind: \"mapping\",\n\t\ttag: nodeTagName,\n\t\ttagged: !implicitTag,\n\t\tstyle: COLLECTION_STYLE.BLOCK,\n\t\titems: []\n\t};\n\tif (!state.noRefs) state.refs.set(object, node);\n\tfor (const [objectKey, objectValue] of map) {\n\t\tconst key = build(state, objectKey);\n\t\tif (key === INVALID) continue;\n\t\tconst value = build(state, objectValue);\n\t\tif (value === INVALID) continue;\n\t\tnode.items.push({\n\t\t\tkey,\n\t\t\tvalue\n\t\t});\n\t}\n\treturn node;\n}\n/**\n* Convert JS object to AST. A JS value is one YAML document. An unrepresentable\n* root becomes an empty document, which the presenter renders as an empty\n* string.\n*\n* @category AST\n*/\nfunction jsToAst(input, schema, options = {}) {\n\tconst root = build({\n\t\trepresentTypes: buildRepresentTypes(schema),\n\t\tnoRefs: options.noRefs ?? false,\n\t\tskipInvalid: options.skipInvalid ?? false,\n\t\trefs: /* @__PURE__ */ new Map(),\n\t\trefCounter: 0\n\t}, input);\n\treturn [{\n\t\tcontents: root === INVALID ? null : root,\n\t\tdirectives: []\n\t}];\n}\n//#endregion\n//#region src/ast/visit.ts\n/**\n* Return from a visitor to stop the whole traversal.\n*\n* @category AST\n*/\nvar VISIT_BREAK = Symbol(\"visit:break\");\n/**\n* Return from a visitor to skip the current node's children.\n*\n* @category AST\n*/\nvar VISIT_SKIP = Symbol(\"visit:skip\");\nfunction visitNode(node, visitor, ctx) {\n\tconst control = visitor(node, ctx);\n\tif (control === VISIT_BREAK) return true;\n\tif (control === VISIT_SKIP) return false;\n\tconst depth = ctx.depth + 1;\n\tswitch (node.kind) {\n\t\tcase \"sequence\":\n\t\t\tfor (const item of node.items) if (visitNode(item, visitor, {\n\t\t\t\tdepth,\n\t\t\t\tparent: node,\n\t\t\t\tisKey: false\n\t\t\t})) return true;\n\t\t\tbreak;\n\t\tcase \"mapping\":\n\t\t\tfor (const { key, value } of node.items) {\n\t\t\t\tif (visitNode(key, visitor, {\n\t\t\t\t\tdepth,\n\t\t\t\t\tparent: node,\n\t\t\t\t\tisKey: true\n\t\t\t\t})) return true;\n\t\t\t\tif (visitNode(value, visitor, {\n\t\t\t\t\tdepth,\n\t\t\t\t\tparent: node,\n\t\t\t\t\tisKey: false\n\t\t\t\t})) return true;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn false;\n}\n/**\n* Walk every node in the documents, calling {@link Visitor} once per\n* node (pre-order).\n*\n* @category AST\n*/\nfunction visit(documents, visitor) {\n\tfor (const doc of documents) if (doc.contents && visitNode(doc.contents, visitor, {\n\t\tdepth: 0,\n\t\tparent: null,\n\t\tisKey: false\n\t})) return;\n}\n//#endregion\n//#region src/ast/styler_defaults.ts\nfunction hasBit(mask, bit) {\n\treturn (mask & 1 << bit) !== 0;\n}\n/**\n* Default scalar styling rules in application order.\n* See [Scalar styling](../../docs/scalar_styling.md) for usage details.\n*\n* @category AST\n*/\nvar DEFAULT_SCALAR_STYLE_RULES = {\n\tapplyQuoteFlowKeysOption,\n\tdoubleQuoteForInvisibles,\n\tdoubleQuoteWhitespaceOnly,\n\tapplyForceQuotesOption,\n\ttryLongOrMultilineAsBlock,\n\tquoteInvalidPlain,\n\tfallbackToDoubleQuoted\n};\nfunction _preferredQuotedStyle(layout) {\n\tif (layout.presenterOptions.quoteStyle === \"single\" && hasBit(layout.allowedStylesMask, SCALAR_STYLE.SINGLE_QUOTED)) return SCALAR_STYLE.SINGLE_QUOTED;\n\treturn SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction applyQuoteFlowKeysOption(layout) {\n\tif (!layout.presenterOptions.quoteFlowKeys) return;\n\tif (!layout.isKey || !layout.flowOnly || layout.style !== SCALAR_STYLE.PLAIN) return;\n\tlayout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction doubleQuoteForInvisibles(layout) {\n\tif (layout.style === SCALAR_STYLE.PLAIN && /[\\t\\x7F-\\xA0\\u2028\\u2029\\uFEFF\\uFFFE\\uFFFF]/.test(layout.node.value)) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction doubleQuoteWhitespaceOnly(layout) {\n\tif (layout.style === SCALAR_STYLE.PLAIN && /^\\s+$/.test(layout.node.value)) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction applyForceQuotesOption(layout) {\n\tif (!layout.presenterOptions.forceQuotes) return;\n\tif (layout.isKey || layout.style !== SCALAR_STYLE.PLAIN) return;\n\tlayout.style = layout.node.value.includes(\"\\n\") ? SCALAR_STYLE.DOUBLE_QUOTED : _preferredQuotedStyle(layout);\n}\nfunction tryLongOrMultilineAsBlock(layout) {\n\tif (layout.style !== SCALAR_STYLE.PLAIN || layout.isKey) return;\n\tconst value = layout.node.value;\n\tconst multiline = value.indexOf(\"\\n\") !== -1;\n\tif (!hasBit(layout.allowedStylesMask, SCALAR_STYLE.LITERAL_BLOCK)) {\n\t\tif (multiline) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n\t\treturn;\n\t}\n\tconst w = layout.presenterOptions.lineWidth;\n\tif (w === -1) {\n\t\tif (multiline) layout.style = SCALAR_STYLE.LITERAL_BLOCK;\n\t\treturn;\n\t}\n\tconst availableWidth = Math.max(Math.min(w, 40), w - layout.shiftOfContent);\n\tlet position = 0;\n\tlet shouldFold = false;\n\twhile (position <= value.length) {\n\t\tlet lineEnd = value.length;\n\t\tconst nextLineBreak = value.indexOf(\"\\n\", position);\n\t\tif (nextLineBreak !== -1) lineEnd = nextLineBreak;\n\t\tconst line = value.slice(position, lineEnd);\n\t\tif (line.length > availableWidth && line[0] !== \" \" && / [^ \\t]/.test(line)) shouldFold = true;\n\t\tif (nextLineBreak === -1) break;\n\t\tposition = nextLineBreak + 1;\n\t}\n\tif (shouldFold) layout.style = SCALAR_STYLE.FOLDED_BLOCK;\n\telse if (multiline) layout.style = SCALAR_STYLE.LITERAL_BLOCK;\n}\nfunction quoteInvalidPlain(layout) {\n\tif (layout.style === SCALAR_STYLE.PLAIN && !hasBit(layout.allowedStylesMask, SCALAR_STYLE.PLAIN)) layout.style = _preferredQuotedStyle(layout);\n}\nfunction fallbackToDoubleQuoted(layout) {\n\tif (!hasBit(layout.allowedStylesMask, layout.style)) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\n//#endregion\n//#region src/ast/scalar_styler.ts\nfunction setBit(mask, bit) {\n\treturn mask | 1 << bit;\n}\nvar SRC_C_PRINTABLE = \"[\\\\x09\\\\x0A\\\\x0D\\\\x20-\\\\x7E\\\\x85\\\\xA0-\\\\uD7FF\\\\uE000-\\\\uFFFD\\\\u{10000}-\\\\u{10FFFF}]\";\nvar SRC_B_CHAR = \"[\\\\n\\\\r]\";\nvar SRC_C_BYTE_ORDER_MARK = \"\\\\uFEFF\";\nvar SRC_S_WHITE = \"[ \\\\t]\";\nvar SRC_NB_CHAR = `(?:(?!(?:${SRC_B_CHAR}|${SRC_C_BYTE_ORDER_MARK}))${SRC_C_PRINTABLE})`;\nvar SRC_NS_CHAR = `(?:(?!${SRC_S_WHITE})${SRC_NB_CHAR})`;\nvar SRC_NB_JSON = \"[\\\\x09\\\\x20-\\\\uD7FF\\\\uE000-\\\\uFFFF\\\\u{10000}-\\\\u{10FFFF}]\";\nvar SRC_C_INDICATOR = \"[-?:,\\\\[\\\\]{}#&*!|>'\\\"%@`]\";\nvar SRC_C_FLOW_INDICATOR = \"[,\\\\[\\\\]{}]\";\nvar SRC_NS_PLAIN_SAFE_FLOW_OUT = SRC_NS_CHAR;\nvar SRC_NS_PLAIN_SAFE_FLOW_IN = `(?:(?!${SRC_C_FLOW_INDICATOR})${SRC_NS_CHAR})`;\nvar SRC_NS_PLAIN_FIRST_FLOW_OUT = `(?:(?:(?!${SRC_C_INDICATOR})${SRC_NS_CHAR})|[?:-](?=${SRC_NS_PLAIN_SAFE_FLOW_OUT}))`;\nvar SRC_NS_PLAIN_FIRST_FLOW_IN = `(?:(?:(?!${SRC_C_INDICATOR})${SRC_NS_CHAR})|[?:-](?=${SRC_NS_PLAIN_SAFE_FLOW_IN}))`;\nvar SRC_NS_PLAIN_CHAR_FLOW_OUT = `(?:(?:(?![:#])${SRC_NS_PLAIN_SAFE_FLOW_OUT})|:(?=${SRC_NS_PLAIN_SAFE_FLOW_OUT}))#*`;\nvar SRC_NS_PLAIN_CHAR_FLOW_IN = `(?:(?:(?![:#])${SRC_NS_PLAIN_SAFE_FLOW_IN})|:(?=${SRC_NS_PLAIN_SAFE_FLOW_IN}))#*`;\nvar SRC_NB_NS_PLAIN_IN_LINE_FLOW_OUT = `(?:${SRC_S_WHITE}*${SRC_NS_PLAIN_CHAR_FLOW_OUT})*`;\nvar SRC_NB_NS_PLAIN_IN_LINE_FLOW_IN = `(?:${SRC_S_WHITE}*${SRC_NS_PLAIN_CHAR_FLOW_IN})*`;\nvar SRC_NS_PLAIN_ONE_LINE_FLOW_OUT = `${SRC_NS_PLAIN_FIRST_FLOW_OUT}#*${SRC_NB_NS_PLAIN_IN_LINE_FLOW_OUT}`;\nvar SRC_NS_PLAIN_ONE_LINE_FLOW_IN = `${SRC_NS_PLAIN_FIRST_FLOW_IN}#*${SRC_NB_NS_PLAIN_IN_LINE_FLOW_IN}`;\nvar SRC_NS_PLAIN_ONE_LINE_BLOCK_KEY = SRC_NS_PLAIN_ONE_LINE_FLOW_OUT;\nvar SRC_NS_PLAIN_ONE_LINE_FLOW_KEY = SRC_NS_PLAIN_ONE_LINE_FLOW_IN;\nvar SRC_S_NS_PLAIN_NEXT_LINE_FLOW_OUT = `\\\\n+${SRC_NS_PLAIN_CHAR_FLOW_OUT}${SRC_NB_NS_PLAIN_IN_LINE_FLOW_OUT}`;\nvar SRC_S_NS_PLAIN_NEXT_LINE_FLOW_IN = `\\\\n+${SRC_NS_PLAIN_CHAR_FLOW_IN}${SRC_NB_NS_PLAIN_IN_LINE_FLOW_IN}`;\nvar SRC_NS_PLAIN_MULTI_LINE_FLOW_OUT = `${SRC_NS_PLAIN_ONE_LINE_FLOW_OUT}(?:${SRC_S_NS_PLAIN_NEXT_LINE_FLOW_OUT})*`;\nvar SRC_NS_PLAIN_MULTI_LINE_FLOW_IN = `${SRC_NS_PLAIN_ONE_LINE_FLOW_IN}(?:${SRC_S_NS_PLAIN_NEXT_LINE_FLOW_IN})*`;\nvar NS_PLAIN_FLOW_OUT = new RegExp(`^(?:${SRC_NS_PLAIN_MULTI_LINE_FLOW_OUT})$`, \"u\");\nvar NS_PLAIN_FLOW_IN = new RegExp(`^(?:${SRC_NS_PLAIN_MULTI_LINE_FLOW_IN})$`, \"u\");\nvar NS_PLAIN_BLOCK_KEY = new RegExp(`^(?:${SRC_NS_PLAIN_ONE_LINE_BLOCK_KEY})$`, \"u\");\nvar NS_PLAIN_FLOW_KEY = new RegExp(`^(?:${SRC_NS_PLAIN_ONE_LINE_FLOW_KEY})$`, \"u\");\nvar NB_SINGLE_ONE_LINE = new RegExp(`^(?:${SRC_NB_JSON})*$`, \"u\");\nvar NB_SINGLE_MULTI_LINE = new RegExp(`^(?:${SRC_NB_JSON}|\\\\n)*$`, \"u\");\nvar BLOCK_SCALAR_CONTENT = new RegExp(`^(?:${SRC_NB_CHAR}|\\\\n)*$`, \"u\");\nvar C_FORBIDDEN_FIRST_LINE = /^(?:---|\\.\\.\\.)(?=$|[ \\t\\n\\r])/;\nvar C_FORBIDDEN_CONTENT = /^(?:---|\\.\\.\\.)(?=$|[ \\t\\n\\r])/m;\nfunction canUsePlain(layout) {\n\tconst str = layout.node.value;\n\tif (str !== \"\") {\n\t\tif (!(layout.isKey ? layout.flowOnly ? NS_PLAIN_FLOW_KEY : NS_PLAIN_BLOCK_KEY : layout.flowOnly ? NS_PLAIN_FLOW_IN : NS_PLAIN_FLOW_OUT).test(str)) return false;\n\t\tif (layout.shiftOfFirstLine === 0 && C_FORBIDDEN_FIRST_LINE.test(str)) return false;\n\t\tif (layout.shiftOfContent === 0) {\n\t\t\tconst firstLineBreak = str.indexOf(\"\\n\");\n\t\t\tif (firstLineBreak !== -1) {\n\t\t\t\tconst content = str.slice(firstLineBreak + 1);\n\t\t\t\tif (C_FORBIDDEN_CONTENT.test(content)) return false;\n\t\t\t}\n\t\t}\n\t}\n\tconst resolvedTag = layout.presenterOptions.schema.resolveImplicitScalarTag(str).tag.tagName;\n\tif (!layout.node.tagged && resolvedTag !== layout.node.tag) return false;\n\tif (!layout.node.tagged && str === \"=\" && resolvedTag === layout.presenterOptions.schema.defaultScalarTag.tagName) return false;\n\treturn true;\n}\nfunction canUseSingleQuoted(layout) {\n\tconst str = layout.node.value;\n\tif (!(layout.isKey ? NB_SINGLE_ONE_LINE : NB_SINGLE_MULTI_LINE).test(str)) return false;\n\tif (/[ \\t]\\n|\\n[ \\t]/.test(str)) return false;\n\tif (!layout.isKey && layout.shiftOfContent === 0) {\n\t\tconst firstLineBreak = str.indexOf(\"\\n\");\n\t\tif (firstLineBreak !== -1 && C_FORBIDDEN_CONTENT.test(str.slice(firstLineBreak + 1))) return false;\n\t}\n\treturn true;\n}\nfunction canUseBlock(layout) {\n\tif (layout.flowOnly || !BLOCK_SCALAR_CONTENT.test(layout.node.value)) return false;\n\tconst contentIndent = layout.shiftOfContent - layout.shiftOfParent;\n\tif (contentIndent < 1) return false;\n\tif (contentIndent > 9 && /^\\n* /.test(layout.node.value)) return false;\n\tif (layout.shiftOfContent === 0 && C_FORBIDDEN_CONTENT.test(layout.node.value)) return false;\n\treturn true;\n}\nfunction detectAllowedStyles(layout) {\n\tlet mask = setBit(0, SCALAR_STYLE.DOUBLE_QUOTED);\n\tif (canUsePlain(layout)) mask = setBit(mask, SCALAR_STYLE.PLAIN);\n\tif (canUseSingleQuoted(layout)) mask = setBit(mask, SCALAR_STYLE.SINGLE_QUOTED);\n\tif (canUseBlock(layout)) mask = setBit(setBit(mask, SCALAR_STYLE.LITERAL_BLOCK), SCALAR_STYLE.FOLDED_BLOCK);\n\tlayout.allowedStylesMask = mask;\n}\nfunction renderScalar(layout) {\n\tswitch (layout.style) {\n\t\tcase SCALAR_STYLE.PLAIN: return renderPlain(layout);\n\t\tcase SCALAR_STYLE.SINGLE_QUOTED: return renderSingleQuoted(layout);\n\t\tcase SCALAR_STYLE.LITERAL_BLOCK: return renderLiteralBlock(layout);\n\t\tcase SCALAR_STYLE.FOLDED_BLOCK: return renderFoldedBlock(layout);\n\t\tcase SCALAR_STYLE.DOUBLE_QUOTED: return renderDoubleQuoted(layout);\n\t}\n}\nfunction renderPlain(layout) {\n\treturn encodeFlowBreaks(layout.node.value, layout.shiftOfContent);\n}\nfunction renderSingleQuoted(layout) {\n\treturn `'${encodeFlowBreaks(layout.node.value, layout.shiftOfContent).replace(/'/g, \"''\")}'`;\n}\nfunction renderLiteralBlock(layout) {\n\tconst value = layout.node.value;\n\treturn \"|\" + blockHeader(value, layout.shiftOfParent, layout.shiftOfContent) + dropEndingNewline(indentString(value, layout.shiftOfContent));\n}\nfunction renderFoldedBlock(layout) {\n\tconst value = layout.node.value;\n\tconst w = layout.presenterOptions.lineWidth;\n\tlet availableWidth = Infinity;\n\tif (w !== -1) availableWidth = Math.max(Math.min(w, 40), w - layout.shiftOfContent);\n\treturn \">\" + blockHeader(value, layout.shiftOfParent, layout.shiftOfContent) + dropEndingNewline(indentString(foldBlockScalar(value, availableWidth), layout.shiftOfContent));\n}\nfunction renderDoubleQuoted(layout) {\n\treturn `\"${escapeString(layout.node.value)}\"`;\n}\nfunction encodeFlowBreaks(string, shiftOfContent) {\n\tlet nextLF = string.indexOf(\"\\n\");\n\tif (nextLF === -1) return string;\n\tconst pad = \" \".repeat(shiftOfContent);\n\tlet result = string.slice(0, nextLF);\n\tconst lineRe = /(\\n+)([^\\n]*)/g;\n\tlineRe.lastIndex = nextLF;\n\tlet match;\n\twhile (match = lineRe.exec(string)) {\n\t\tconst breaks = match[1].length;\n\t\tconst line = match[2];\n\t\tresult += \"\\n\".repeat(breaks + 1) + pad + line;\n\t}\n\treturn result;\n}\nfunction indentString(string, spaces) {\n\tconst indent = \" \".repeat(spaces);\n\tlet position = 0;\n\tlet result = \"\";\n\tconst length = string.length;\n\twhile (position < length) {\n\t\tlet line;\n\t\tconst next = string.indexOf(\"\\n\", position);\n\t\tif (next === -1) {\n\t\t\tline = string.slice(position);\n\t\t\tposition = length;\n\t\t} else {\n\t\t\tline = string.slice(position, next + 1);\n\t\t\tposition = next + 1;\n\t\t}\n\t\tif (line.length && line !== \"\\n\") result += indent;\n\t\tresult += line;\n\t}\n\treturn result;\n}\nfunction needIndentIndicator(string) {\n\treturn /^\\n* /.test(string);\n}\nfunction blockHeader(string, shiftOfParent, shiftOfContent) {\n\tconst indentIndicator = needIndentIndicator(string) ? String(shiftOfContent - shiftOfParent) : \"\";\n\tconst clip = string[string.length - 1] === \"\\n\";\n\treturn `${indentIndicator}${clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\") ? \"+\" : clip ? \"\" : \"-\"}\\n`;\n}\nfunction dropEndingNewline(string) {\n\treturn string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\nfunction isMoreIndented(char) {\n\treturn char === \" \" || char === \"\t\";\n}\nfunction foldLine(line, width) {\n\tif (line === \"\" || isMoreIndented(line[0])) return line;\n\tconst breakRe = / [^ \\t]/g;\n\tlet match;\n\tlet start = 0;\n\tlet end;\n\tlet curr = 0;\n\tlet next = 0;\n\tlet result = \"\";\n\twhile (match = breakRe.exec(line)) {\n\t\tnext = match.index;\n\t\tif (next - start > width) {\n\t\t\tend = curr > start ? curr : next;\n\t\t\tresult += `\\n${line.slice(start, end)}`;\n\t\t\tstart = end + 1;\n\t\t}\n\t\tcurr = next;\n\t}\n\tresult += \"\\n\";\n\tif (line.length - start > width && curr > start) result += `${line.slice(start, curr)}\\n${line.slice(curr + 1)}`;\n\telse result += line.slice(start);\n\treturn result.slice(1);\n}\nfunction foldBlockScalar(string, width) {\n\tconst lineRe = /(\\n+)([^\\n]*)/g;\n\tlet nextLF = string.indexOf(\"\\n\");\n\tif (nextLF === -1) nextLF = string.length;\n\tlineRe.lastIndex = nextLF;\n\tlet result = foldLine(string.slice(0, nextLF), width);\n\tlet prevMoreIndented = string[0] === \"\\n\" || isMoreIndented(string[0]);\n\tlet moreIndented;\n\tlet match;\n\twhile (match = lineRe.exec(string)) {\n\t\tconst prefix = match[1];\n\t\tconst line = match[2];\n\t\tmoreIndented = line !== \"\" && isMoreIndented(line[0]);\n\t\tresult += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n\t\tprevMoreIndented = moreIndented;\n\t}\n\treturn result;\n}\nvar CHARACTERS_TO_ESCAPE = /[\"\\\\\\x00-\\x1F\\x7F-\\xA0\\u2028\\u2029\\uD800-\\uDFFF\\uFEFF\\uFFFE\\uFFFF]/gu;\nfunction escapeCharacter(character) {\n\tswitch (character) {\n\t\tcase \"\\0\": return \"\\\\0\";\n\t\tcase \"\\x07\": return \"\\\\a\";\n\t\tcase \"\\b\": return \"\\\\b\";\n\t\tcase \"\t\": return \"\\\\t\";\n\t\tcase \"\\n\": return \"\\\\n\";\n\t\tcase \"\\v\": return \"\\\\v\";\n\t\tcase \"\\f\": return \"\\\\f\";\n\t\tcase \"\\r\": return \"\\\\r\";\n\t\tcase \"\\x1B\": return \"\\\\e\";\n\t\tcase \"\\\"\": return \"\\\\\\\"\";\n\t\tcase \"\\\\\": return \"\\\\\\\\\";\n\t\tcase \"
\": return \"\\\\N\";\n\t\tcase \"\\xA0\": return \"\\\\_\";\n\t\tcase \"\\u2028\": return \"\\\\L\";\n\t\tcase \"\\u2029\": return \"\\\\P\";\n\t}\n\tconst code = character.charCodeAt(0);\n\tconst hex = code.toString(16).toUpperCase();\n\tif (code <= 255) return `\\\\x${\"0\".repeat(2 - hex.length)}${hex}`;\n\treturn `\\\\u${\"0\".repeat(4 - hex.length)}${hex}`;\n}\nfunction escapeString(string) {\n\treturn string.replace(CHARACTERS_TO_ESCAPE, escapeCharacter);\n}\n//#endregion\n//#region src/ast/presenter.ts\nvar CHAR_LINE_FEED = 10;\nvar DEFAULT_PRESENTER_OPTIONS = {\n\tindent: 2,\n\tseqNoIndent: false,\n\tseqInlineFirst: true,\n\tlineWidth: 80,\n\tflowBracketPadding: false,\n\tflowSkipCommaSpace: false,\n\tflowSkipColonSpace: false,\n\tquoteFlowKeys: false,\n\tquoteStyle: \"single\",\n\tforceQuotes: false,\n\tscalarStyleRules: Object.keys(DEFAULT_SCALAR_STYLE_RULES).map((name) => Reflect.get(DEFAULT_SCALAR_STYLE_RULES, name)),\n\ttagBeforeAnchor: false\n};\nfunction nodeTagShort(node) {\n\treturn node.tagged ? node.tag : tagNameShort(node.tag);\n}\nfunction createPresenterState(options) {\n\tconst opts = {\n\t\t...DEFAULT_PRESENTER_OPTIONS,\n\t\t...options\n\t};\n\tif (opts.flowSkipColonSpace) opts.quoteFlowKeys = true;\n\treturn {\n\t\t...opts,\n\t\tdefaultScalarTagName: opts.schema.defaultScalarTag.tagName,\n\t\topenEnded: false\n\t};\n}\nfunction generateNextLine(state, level) {\n\treturn `\\n${\" \".repeat(state.indent * level)}`;\n}\nfunction scalarLayout(state, node, parent, level, isKey, flowOnly) {\n\treturn {\n\t\tnode,\n\t\tparent,\n\t\tlevel,\n\t\tisKey,\n\t\tflowOnly,\n\t\tshiftOfParent: level === 0 ? -1 : state.indent * (level - 1),\n\t\tshiftOfContent: state.indent * Math.max(1, level),\n\t\tshiftOfFirstLine: level === 0 ? 0 : state.indent * level,\n\t\tpresenterOptions: state,\n\t\tallowedStylesMask: 0,\n\t\tstyle: node.style\n\t};\n}\nfunction writeFlowSequence(state, level, node) {\n\tlet result = \"\";\n\tfor (let index = 0, length = node.items.length; index < length; index += 1) {\n\t\tconst item = writeNode(state, level, node.items[index], node, {}).text;\n\t\tif (index > 0) result += `,${!state.flowSkipCommaSpace ? \" \" : \"\"}`;\n\t\tresult += item;\n\t}\n\tconst pad = state.flowBracketPadding && node.items.length > 0 ? \" \" : \"\";\n\treturn `[${pad}${result}${pad}]`;\n}\nfunction writeBlockSequence(state, level, node, compact) {\n\tlet result = \"\";\n\tfor (let index = 0, length = node.items.length; index < length; index += 1) {\n\t\tconst item = writeNode(state, level + 1, node.items[index], node, {\n\t\t\tblock: true,\n\t\t\tcompact: state.seqInlineFirst,\n\t\t\tisblockseq: true\n\t\t}).text;\n\t\tif (!compact || result !== \"\") result += generateNextLine(state, level);\n\t\tif (item === \"\" || CHAR_LINE_FEED === item.charCodeAt(0)) result += \"-\";\n\t\telse result += \"- \";\n\t\tresult += item;\n\t}\n\treturn result;\n}\nfunction writeFlowMapping(state, level, node) {\n\tlet result = \"\";\n\tfor (const { key, value } of node.items) {\n\t\tlet pairBuffer = \"\";\n\t\tif (result !== \"\") pairBuffer += `,${!state.flowSkipCommaSpace ? \" \" : \"\"}`;\n\t\tconst keyRender = writeNode(state, level, key, node, { iskey: true });\n\t\tconst keyText = keyRender.text;\n\t\tconst valueText = writeNode(state, level, value, node, {}).text;\n\t\tconst sep = state.flowSkipColonSpace || valueText === \"\" ? \"\" : \" \";\n\t\tconst keyIsBareProps = key.kind === \"scalar\" && keyRender.noBody && (key.tagged || key.anchor !== void 0);\n\t\tconst keyColonSep = key.kind === \"alias\" || keyIsBareProps ? \" \" : \"\";\n\t\tpairBuffer += `${keyText}${keyColonSep}:${sep}${valueText}`;\n\t\tresult += pairBuffer;\n\t}\n\tconst pad = state.flowBracketPadding && result !== \"\" ? \" \" : \"\";\n\treturn `{${pad}${result}${pad}}`;\n}\nfunction writeBlockMapping(state, level, node, compact) {\n\tlet result = \"\";\n\tfor (let index = 0, length = node.items.length; index < length; index += 1) {\n\t\tlet pairBuffer = \"\";\n\t\tif (!compact || result !== \"\") pairBuffer += generateNextLine(state, level);\n\t\tconst { key, value } = node.items[index];\n\t\tconst keyIsBlock = (key.kind === \"mapping\" || key.kind === \"sequence\") && key.style === COLLECTION_STYLE.BLOCK && key.items.length !== 0 || key.kind === \"scalar\" && (key.style === SCALAR_STYLE.LITERAL_BLOCK || key.style === SCALAR_STYLE.FOLDED_BLOCK);\n\t\tconst keyRender = keyIsBlock ? writeNode(state, level + 1, key, node, {\n\t\t\tblock: true,\n\t\t\tcompact: true,\n\t\t\tisblockseq: !cannotBeCompact(state, key, level + 1)\n\t\t}) : writeNode(state, level + 1, key, node, {\n\t\t\tblock: true,\n\t\t\tcompact: true,\n\t\t\tiskey: true\n\t\t});\n\t\tconst keyText = keyRender.text;\n\t\tconst keyHasLineBreak = key.kind === \"scalar\" && key.value.indexOf(\"\\n\") !== -1;\n\t\tconst keyIsTooLong = keyText.length > 1024 && /^[\\s\\S]{1025}/u.test(keyText);\n\t\tconst explicitPair = keyIsBlock || keyHasLineBreak || keyIsTooLong;\n\t\tif (explicitPair) if (keyText && CHAR_LINE_FEED === keyText.charCodeAt(0)) pairBuffer += \"?\";\n\t\telse pairBuffer += \"? \";\n\t\tpairBuffer += keyText;\n\t\tif (explicitPair) pairBuffer += generateNextLine(state, level);\n\t\tconst valueText = writeNode(state, level + 1, value, node, {\n\t\t\tblock: true,\n\t\t\tcompact: explicitPair,\n\t\t\tisblockseq: explicitPair && !cannotBeCompact(state, value, level + 1)\n\t\t}).text;\n\t\tconst keyIsBareProps = key.kind === \"scalar\" && keyRender.noBody && (key.tagged || key.anchor !== void 0);\n\t\tconst keyColonSep = !explicitPair && (key.kind === \"alias\" || keyIsBareProps) ? \" \" : \"\";\n\t\tif (valueText === \"\" || CHAR_LINE_FEED === valueText.charCodeAt(0)) pairBuffer += `${keyColonSep}:`;\n\t\telse pairBuffer += `${keyColonSep}: `;\n\t\tpairBuffer += valueText;\n\t\tresult += pairBuffer;\n\t}\n\treturn result;\n}\nfunction cannotBeCompact(state, node, level) {\n\tif (node.kind === \"alias\") return true;\n\treturn node.tagged || node.anchor !== void 0 || state.indent < 2 && level > 0;\n}\nfunction writeNode(state, level, node, parent, ctx) {\n\tif (node.kind === \"alias\") {\n\t\tstate.openEnded = false;\n\t\treturn {\n\t\t\ttext: `*${node.anchor}`,\n\t\t\tnoBody: false\n\t\t};\n\t}\n\tconst { block = false, iskey = false, isblockseq = false } = ctx;\n\tlet compact = ctx.compact ?? false;\n\tconst hasAnchor = node.anchor !== void 0;\n\tif (cannotBeCompact(state, node, level)) compact = false;\n\tlet body;\n\tlet shouldPrintTag = node.tagged;\n\tconst useBlockCollection = block && (node.kind === \"mapping\" || node.kind === \"sequence\") && node.style === COLLECTION_STYLE.BLOCK && node.items.length !== 0;\n\tif (node.kind === \"mapping\") if (useBlockCollection) body = writeBlockMapping(state, level, node, compact);\n\telse body = writeFlowMapping(state, level, node);\n\telse if (node.kind === \"sequence\") if (useBlockCollection) if (state.seqNoIndent && !isblockseq && level > 0) body = writeBlockSequence(state, level - 1, node, compact);\n\telse body = writeBlockSequence(state, level, node, compact);\n\telse body = writeFlowSequence(state, level, node);\n\telse {\n\t\tconst layout = scalarLayout(state, node, parent, level, iskey, !block);\n\t\tdetectAllowedStyles(layout);\n\t\tfor (const rule of state.scalarStyleRules) rule(layout);\n\t\tbody = renderScalar(layout);\n\t\tstate.openEnded = (layout.style === SCALAR_STYLE.LITERAL_BLOCK || layout.style === SCALAR_STYLE.FOLDED_BLOCK) && (node.value === \"\\n\" || node.value.endsWith(\"\\n\\n\"));\n\t\tshouldPrintTag = node.tagged || body === \"\" && layout.flowOnly && parent?.kind === \"sequence\" && !hasAnchor || layout.style !== SCALAR_STYLE.PLAIN && node.tag !== state.defaultScalarTagName;\n\t}\n\tif ((node.kind === \"mapping\" || node.kind === \"sequence\") && !useBlockCollection) state.openEnded = false;\n\tif (useBlockCollection && compact && level > 0 && state.indent > 2) body = `${\" \".repeat(state.indent - 2)}${body}`;\n\tconst noBody = body === \"\";\n\tlet text = body;\n\tif (shouldPrintTag || hasAnchor) {\n\t\tconst props = [];\n\t\tconst tag = shouldPrintTag ? nodeTagShort(node) : null;\n\t\tconst anchor = hasAnchor ? `&${node.anchor}` : null;\n\t\tif (state.tagBeforeAnchor) {\n\t\t\tif (tag !== null) props.push(tag);\n\t\t\tif (anchor !== null) props.push(anchor);\n\t\t} else {\n\t\t\tif (anchor !== null) props.push(anchor);\n\t\t\tif (tag !== null) props.push(tag);\n\t\t}\n\t\tconst sep = body === \"\" || body.charCodeAt(0) === CHAR_LINE_FEED ? \"\" : \" \";\n\t\ttext = `${props.join(\" \")}${sep}${body}`;\n\t}\n\treturn {\n\t\ttext,\n\t\tnoBody\n\t};\n}\nfunction rootStartsOwnLine(node) {\n\treturn (node.kind === \"sequence\" || node.kind === \"mapping\") && node.style === COLLECTION_STYLE.BLOCK && node.items.length !== 0 && !node.tagged && node.anchor === void 0;\n}\nfunction writeDocumentDirectives(doc) {\n\tlet result = \"\";\n\tfor (const directive of doc.directives) {\n\t\tif (directive.kind === \"yaml\") {\n\t\t\tresult += `%YAML ${directive.version}\\n`;\n\t\t\tcontinue;\n\t\t}\n\t\tconst { handle, prefix } = directive;\n\t\tresult += `%TAG ${handle} ${prefix}\\n`;\n\t}\n\treturn result;\n}\n/**\n* Build YAML from AST.\n*\n* @category AST\n*/\nfunction present(documents, options) {\n\tconst state = createPresenterState(options);\n\tlet result = \"\";\n\tlet previousEnded = false;\n\tfor (let index = 0; index < documents.length; index += 1) {\n\t\tconst doc = documents[index];\n\t\tstate.openEnded = false;\n\t\tconst directives = writeDocumentDirectives(doc);\n\t\tconst hasDirectives = directives !== \"\";\n\t\tconst marker = doc.explicitStart || hasDirectives || index > 0 && !previousEnded;\n\t\tresult += directives;\n\t\tif (doc.contents === null) {\n\t\t\tif (marker) result += \"---\\n\";\n\t\t} else if (marker) {\n\t\t\tconst body = writeNode(state, 0, doc.contents, null, {\n\t\t\t\tblock: true,\n\t\t\t\tcompact: true\n\t\t\t}).text;\n\t\t\tconst sep = body === \"\" ? \"\" : hasDirectives || rootStartsOwnLine(doc.contents) ? \"\\n\" : \" \";\n\t\t\tresult += `---${sep}${body}\\n`;\n\t\t} else result += writeNode(state, 0, doc.contents, null, {\n\t\t\tblock: true,\n\t\t\tcompact: true\n\t\t}).text + \"\\n\";\n\t\tpreviousEnded = doc.explicitEnd || state.openEnded;\n\t\tif (previousEnded) result += \"...\\n\";\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/dump.ts\nvar DEFAULT_DUMP_OPTIONS = {\n\t...DEFAULT_PRESENTER_OPTIONS,\n\tschema: DUMP_SCHEMA,\n\tskipInvalid: false,\n\tnoRefs: false,\n\tflowLevel: -1,\n\tsortKeys: false,\n\ttransform: () => {}\n};\nfunction defaultCompareFn(a, b) {\n\tconst x = String(a);\n\tconst y = String(b);\n\tif (x < y) return -1;\n\tif (x > y) return 1;\n\treturn 0;\n}\n/**\n* Serializes JS object as a YAML document. By default it can dump every\n* supported YAML type, so it throws an exception if you try to dump regexps or\n* functions. However, you can disable exceptions by setting the\n* {@link DumpOptions.skipInvalid} option to `true`.\n*\n* @category Main\n*/\nfunction dump(input, options = {}) {\n\tconst opts = {\n\t\t...DEFAULT_DUMP_OPTIONS,\n\t\t...options\n\t};\n\tconst documents = jsToAst(input, opts.schema, {\n\t\tnoRefs: opts.noRefs,\n\t\tskipInvalid: opts.skipInvalid\n\t});\n\tif (opts.flowLevel >= 0) visit(documents, (node, ctx) => {\n\t\tif (ctx.depth < opts.flowLevel) return;\n\t\tif (node.kind === \"sequence\" || node.kind === \"mapping\") node.style = COLLECTION_STYLE.FLOW;\n\t\treturn VISIT_SKIP;\n\t});\n\tif (opts.sortKeys) {\n\t\tconst compareFn = opts.sortKeys === true ? defaultCompareFn : opts.sortKeys;\n\t\tvisit(documents, (node) => {\n\t\t\tif (node.kind !== \"mapping\") return;\n\t\t\tnode.items.sort((a, b) => compareFn(a.key.kind === \"scalar\" ? a.key.value : \"\", b.key.kind === \"scalar\" ? b.key.value : \"\"));\n\t\t});\n\t}\n\topts.transform(documents);\n\treturn present(documents, {\n\t\t...pick(opts, Object.keys(DEFAULT_PRESENTER_OPTIONS)),\n\t\tschema: opts.schema\n\t});\n}\n//#endregion\n//#region src/ast/from_events.ts\nvar NO_RANGE = -1;\nfunction eventPosition(event) {\n\tif (\"tagStart\" in event && event.tagStart !== NO_RANGE) return event.tagStart;\n\tif (\"anchorStart\" in event && event.anchorStart !== NO_RANGE) return event.anchorStart;\n\tif (\"valueStart\" in event && event.valueStart !== NO_RANGE) return event.valueStart;\n\tif (\"start\" in event) return event.start;\n\treturn 0;\n}\nfunction rawTag(state, event) {\n\treturn event.tagStart === NO_RANGE ? \"\" : state.source.slice(event.tagStart, event.tagEnd);\n}\nfunction anchorName(state, event) {\n\treturn event.anchorStart === NO_RANGE ? void 0 : state.source.slice(event.anchorStart, event.anchorEnd);\n}\nfunction buildScalar(state, event) {\n\tconst value = getScalarValue(state.source, event);\n\tconst raw = rawTag(state, event);\n\tlet tag;\n\tlet tagged = false;\n\tif (raw !== \"\") {\n\t\ttagged = true;\n\t\ttag = raw;\n\t} else if (event.style === SCALAR_STYLE.PLAIN) tag = state.schema.resolveImplicitScalarTag(value).tag.tagName;\n\telse tag = state.schema.defaultScalarTag.tagName;\n\treturn {\n\t\tkind: \"scalar\",\n\t\ttag,\n\t\ttagged,\n\t\tstyle: event.style,\n\t\tanchor: anchorName(state, event),\n\t\tvalue\n\t};\n}\nfunction buildCollection(state, event, defaultTagName) {\n\tconst raw = rawTag(state, event);\n\tlet tag;\n\tlet tagged = false;\n\tif (raw === \"\") tag = defaultTagName;\n\telse {\n\t\ttag = raw;\n\t\ttagged = true;\n\t}\n\treturn {\n\t\ttag,\n\t\ttagged,\n\t\tstyle: event.style,\n\t\tanchor: anchorName(state, event)\n\t};\n}\nfunction addNode(state, node) {\n\tconst frame = state.frames[state.frames.length - 1];\n\tif (frame.kind === \"document\") frame.doc.contents = node;\n\telse if (frame.kind === \"sequence\") frame.node.items.push(node);\n\telse if (frame.key) {\n\t\tframe.node.items.push({\n\t\t\tkey: frame.key,\n\t\t\tvalue: node\n\t\t});\n\t\tframe.key = null;\n\t} else frame.key = node;\n}\n/**\n* Builds an AST from parser events\n*\n* @category AST\n*/\nfunction eventsToAst(events, options) {\n\tconst state = {\n\t\tsource: options.source,\n\t\tschema: options.schema,\n\t\teventIndex: 0,\n\t\tposition: 0,\n\t\tframes: [],\n\t\tdocuments: []\n\t};\n\twhile (state.eventIndex < events.length) {\n\t\tconst event = events[state.eventIndex++];\n\t\tstate.position = eventPosition(event);\n\t\tswitch (event.type) {\n\t\t\tcase EVENT_ID.DOCUMENT: {\n\t\t\t\tconst doc = {\n\t\t\t\t\tcontents: null,\n\t\t\t\t\texplicitStart: event.explicitStart,\n\t\t\t\t\texplicitEnd: event.explicitEnd,\n\t\t\t\t\tdirectives: event.directives\n\t\t\t\t};\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"document\",\n\t\t\t\t\tdoc\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.SCALAR:\n\t\t\t\taddNode(state, buildScalar(state, event));\n\t\t\t\tbreak;\n\t\t\tcase EVENT_ID.SEQUENCE: {\n\t\t\t\tconst { tag, tagged, style, anchor } = buildCollection(state, event, \"tag:yaml.org,2002:seq\");\n\t\t\t\tconst node = {\n\t\t\t\t\tkind: \"sequence\",\n\t\t\t\t\ttag,\n\t\t\t\t\ttagged,\n\t\t\t\t\tstyle,\n\t\t\t\t\tanchor,\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"sequence\",\n\t\t\t\t\tnode\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.MAPPING: {\n\t\t\t\tconst { tag, tagged, style, anchor } = buildCollection(state, event, \"tag:yaml.org,2002:map\");\n\t\t\t\tconst node = {\n\t\t\t\t\tkind: \"mapping\",\n\t\t\t\t\ttag,\n\t\t\t\t\ttagged,\n\t\t\t\t\tstyle,\n\t\t\t\t\tanchor,\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"mapping\",\n\t\t\t\t\tnode,\n\t\t\t\t\tkey: null\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.ALIAS:\n\t\t\t\taddNode(state, {\n\t\t\t\t\tkind: \"alias\",\n\t\t\t\t\tanchor: state.source.slice(event.anchorStart, event.anchorEnd)\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase EVENT_ID.POP: {\n\t\t\t\tconst frame = state.frames.pop();\n\t\t\t\tif (frame.kind === \"mapping\" && frame.key) throw new Error(\"incomplete mapping pair in event stream\");\n\t\t\t\tif (frame.kind === \"document\") state.documents.push(frame.doc);\n\t\t\t\telse addNode(state, frame.node);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn state.documents;\n}\n//#endregion\n//#region src/index.ts\n/** @deprecated Use `EVENT_ID.DOCUMENT` instead. @internal */\nvar EVENT_DOCUMENT = EVENT_ID.DOCUMENT;\n/** @deprecated Use `EVENT_ID.SEQUENCE` instead. @internal */\nvar EVENT_SEQUENCE = EVENT_ID.SEQUENCE;\n/** @deprecated Use `EVENT_ID.MAPPING` instead. @internal */\nvar EVENT_MAPPING = EVENT_ID.MAPPING;\n/** @deprecated Use `EVENT_ID.SCALAR` instead. @internal */\nvar EVENT_SCALAR = EVENT_ID.SCALAR;\n/** @deprecated Use `EVENT_ID.ALIAS` instead. @internal */\nvar EVENT_ALIAS = EVENT_ID.ALIAS;\n/** @deprecated Use `EVENT_ID.POP` instead. @internal */\nvar EVENT_POP = EVENT_ID.POP;\n/** @deprecated Use `SCALAR_STYLE.PLAIN` instead. @internal */\nvar SCALAR_STYLE_PLAIN = SCALAR_STYLE.PLAIN;\n/** @deprecated Use `SCALAR_STYLE.SINGLE_QUOTED` instead. @internal */\nvar SCALAR_STYLE_SINGLE_QUOTED = SCALAR_STYLE.SINGLE_QUOTED;\n/** @deprecated Use `SCALAR_STYLE.DOUBLE_QUOTED` instead. @internal */\nvar SCALAR_STYLE_DOUBLE_QUOTED = SCALAR_STYLE.DOUBLE_QUOTED;\n/** @deprecated Use `SCALAR_STYLE.LITERAL_BLOCK` instead. @internal */\nvar SCALAR_STYLE_LITERAL_BLOCK = SCALAR_STYLE.LITERAL_BLOCK;\n/** @deprecated Use `SCALAR_STYLE.FOLDED_BLOCK` instead. @internal */\nvar SCALAR_STYLE_FOLDED_BLOCK = SCALAR_STYLE.FOLDED_BLOCK;\n/** @deprecated Use `COLLECTION_STYLE.BLOCK` instead. @internal */\nvar COLLECTION_STYLE_BLOCK = COLLECTION_STYLE.BLOCK;\n/** @deprecated Use `COLLECTION_STYLE.FLOW` instead. @internal */\nvar COLLECTION_STYLE_FLOW = COLLECTION_STYLE.FLOW;\n/** @deprecated Use `CHOMPING_MODE.CLIP` instead. @internal */\nvar CHOMPING_CLIP = CHOMPING_MODE.CLIP;\n/** @deprecated Use `CHOMPING_MODE.STRIP` instead. @internal */\nvar CHOMPING_STRIP = CHOMPING_MODE.STRIP;\n/** @deprecated Use `CHOMPING_MODE.KEEP` instead. @internal */\nvar CHOMPING_KEEP = CHOMPING_MODE.KEEP;\n//#endregion\nexport { CHOMPING_CLIP, CHOMPING_KEEP, CHOMPING_MODE, CHOMPING_STRIP, COLLECTION_STYLE, COLLECTION_STYLE_BLOCK, COLLECTION_STYLE_FLOW, CORE_SCHEMA, DEFAULT_SCALAR_STYLE_RULES, DUMP_SCHEMA, EVENT_ALIAS, EVENT_DOCUMENT, EVENT_ID, EVENT_MAPPING, EVENT_POP, EVENT_SCALAR, EVENT_SEQUENCE, FAILSAFE_SCHEMA, JSON_SCHEMA, NOT_RESOLVED, SCALAR_STYLE, SCALAR_STYLE_DOUBLE_QUOTED, SCALAR_STYLE_FOLDED_BLOCK, SCALAR_STYLE_LITERAL_BLOCK, SCALAR_STYLE_PLAIN, SCALAR_STYLE_SINGLE_QUOTED, Schema, VISIT_BREAK, VISIT_SKIP, YAML11_SCHEMA, YAMLException, binaryTag, boolCoreTag, boolJsonTag, boolYaml11Tag, constructFromEvents, defineMappingTag, defineScalarTag, defineSequenceTag, dump, eventsToAst, floatCoreTag, floatJsonTag, floatYaml11Tag, getScalarValue, intCoreTag, intJsonTag, intYaml11Tag, jsToAst, legacyMapTag, load, loadAll, mapTag, mergeTag, nullCoreTag, nullJsonTag, nullYaml11Tag, omapTag, pairsTag, parseEvents, present, realMapTag, seqTag, setTag, strTag, timestampTag, visit };\n\n//# sourceMappingURL=js-yaml.mjs.map","import { load as yamlLoad, dump as yamlDump } from 'js-yaml';\r\nimport fs from 'fs/promises';\r\nimport path from 'path';\r\n\r\n/**\r\n * \r\n * @param {string} dir \r\n */\r\nexport const ensurePathExists = async (dir) => {\r\n try {\r\n await fs.access(dir);\r\n } catch (err) {\r\n await fs.mkdir(dir, { recursive: true });\r\n }\r\n}\r\n\r\n/**\r\n * Checks if a file exists.\r\n * \r\n * @param {string} filePath \r\n * @returns {Promise<boolean>} True if the file exists, false otherwise\r\n */\r\nexport const fileExists = async (filePath) => {\r\n try {\r\n await fs.access(filePath);\r\n return true;\r\n } catch (err) {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Writes a JavaScript object to a YAML file.\r\n * \r\n * @param {string} filePath \r\n * @param {Object} data \r\n */\r\nexport const writeYamlFile = async (filePath, data) => {\r\n const yamlString = yamlDump(data);\r\n await ensurePathExists(path.dirname(filePath));\r\n await fs.writeFile(filePath, yamlString);\r\n}\r\n\r\n/**\r\n * Writes a JavaScript object to a JSON file.\r\n * \r\n * @param {string} filePath \r\n * @param {Object} data \r\n */\r\nexport const writeJsonFile = async (filePath, data) => {\r\n const jsonString = JSON.stringify(data, null, 2);\r\n await ensurePathExists(path.dirname(filePath));\r\n await fs.writeFile(filePath, jsonString);\r\n}\r\n\r\n/**\r\n * Read a Yaml file and parse its content into a JavaScript object.\r\n * \r\n * @param {string} filePath\r\n * @returns {Promise<Object|null>} The parsed Yaml object\r\n */\r\nexport const readYamlFile = async (filePath) => {\r\n if (!await fileExists(filePath)) {\r\n return null;\r\n }\r\n const yamlString = await fs.readFile(filePath, 'utf8');\r\n return /** @type {Object} */ (yamlLoad(yamlString));\r\n}\r\n \r\n\r\n/**\r\n * Reads a JSON file and parses its content into a JavaScript object.\r\n * \r\n * @param {string} filePath \r\n * @returns {Promise<Object|null>} The parsed JSON object\r\n */\r\nexport const readJsonFile = async (filePath) => {\r\n if (!await fileExists(filePath)) {\r\n return null;\r\n }\r\n const jsonString = await fs.readFile(filePath, 'utf8');\r\n return JSON.parse(jsonString);\r\n}\r\n","import { fileExists, readJsonFile, readYamlFile } from \"./utils/io.js\";\n\n/**\n * @typedef {import(\"@gdacm/base-types\").Info} Info\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\n * @typedef {import(\"@gdacm/base-types\").GenericOptions} GenericOptions\n */\n\n/**\n * @template {GenericOptions} T\n * @typedef {import(\"@gdacm/base-types\").MetaOptions<T>} MetaOptions\n */\n\n/**\n * Get info from environment variables.\n * - GDM_TEST_NAME: String (-> info.testName)\n * - GDM_API_URL: String (-> info.apiUrl)\n * - GDM_API_TOKEN: String (-> info.apiToken)\n * - GDM_WRITE_ON_DISK: Boolean (-> info.writeOnDisk)\n * - GDM_CREATE_ON_GRAFANA: Boolean (-> info.createOnGrafana)\n * - GDM_INCLUDE_*: String (-> info.includes)\n * @type {Array<{\n * name: String, \n * prefix?: String,\n * key: String, \n * type: Function, \n * subtype?: Function,\n * }>}\n */\nconst envvars = [\n {\n name: 'GDM_TEST_NAME',\n key: 'testName',\n type: String,\n },\n {\n name: 'GDM_API_URL',\n key: 'apiUrl',\n type: String,\n },\n {\n name: 'GDM_API_TOKEN',\n key: 'apiToken',\n type: String,\n },\n {\n name: 'GDM_WRITE_ON_DISK',\n key: 'writeOnDisk',\n type: Boolean,\n },\n {\n name: 'GDM_CREATE_ON_GRAFANA',\n key: 'createOnGrafana',\n type: Boolean,\n },\n {\n name: 'GDM_INCLUDE',\n prefix: 'GDM_INCLUDE_',\n key: 'includes',\n type: Array,\n subtype: String,\n }\n]\n\n\n/**\n * @param {...(Info|undefined)} infos \n * @returns {Info}\n */\nexport const mergeInfos = (...infos) => {\n /** @type{Info} */\n let result = {};\n for (const info of infos) {\n result = {\n ...result,\n ...info,\n includes: [\n ...(result?.includes ?? []),\n ...(info?.includes ?? []),\n ]\n };\n }\n return result;\n};\n\n\n/**\n * @returns {Info}\n */\nexport const getEnvVarsInfo = () => {\n /**\n * @type {Record<String, String|Number|Boolean|Array<String|Number|Boolean>>}\n */\n const info = {};\n envvars.forEach(\n (envvar) => {\n const stringValue = process.env[envvar.name];\n if (stringValue !== undefined) {\n if (envvar.type === Number) {\n info[envvar.key] = Number(stringValue);\n } else if (envvar.type === Boolean) {\n info[envvar.key] = (stringValue === 'true') || (stringValue === '1');\n } else if (envvar.type === String) {\n info[envvar.key] = stringValue;\n } else if (envvar.type === Array) {\n if (!info[envvar.key]) {\n info[envvar.key] = [];\n }\n /** @type{Array<String|Number|Boolean>} */\n // @ts-ignore\n const array = info[envvar.key];\n if (envvar.subtype === String) {\n array.push(stringValue);\n } else if (envvar.subtype === Number) {\n array.push(Number(stringValue));\n } else if (envvar.subtype === Boolean) {\n array.push((stringValue === 'true') || (stringValue === '1'));\n }\n }\n }\n if (envvar.prefix) {\n const prefix = envvar.prefix;\n const envsThatStartWith = Object.keys(process.env).filter(key => key.startsWith(prefix)).sort();\n\n if (envvar.type === Array && envsThatStartWith.length > 0) {\n for (const envName of envsThatStartWith) {\n const stringValue = process.env[envName];\n if (stringValue !== undefined) {\n if (!info[envvar.key]) {\n info[envvar.key] = [];\n }\n /** @type{Array<String|Number|Boolean>} */\n // @ts-ignore\n const array = info[envvar.key];\n if (envvar.subtype === String) {\n array.push(stringValue);\n } else if (envvar.subtype === Number) {\n array.push(Number(stringValue));\n } else if (envvar.subtype === Boolean) {\n array.push((stringValue === 'true') || (stringValue === '1'));\n }\n }\n }\n }\n }\n }\n );\n return info;\n};\n\n/**\n * @param {String} folderPath\n * @param {String} infoPath \n * @returns {Promise<Info[]|undefined>}\n */\nconst getInfoFromFolderAndPath = async (folderPath, infoPath) => {\n const infoFilePath = `${folderPath}/${infoPath}`;\n const result = []\n for (const { ext, readFunc } of [\n {\n ext: 'json',\n readFunc: readJsonFile,\n },\n {\n ext: 'yaml',\n readFunc: readYamlFile,\n\n },\n {\n ext: 'yml',\n readFunc: readYamlFile,\n },\n ]) {\n const filePath = `${infoFilePath}.${ext}`;\n if (await fileExists(filePath)) {\n const info = await readFunc(filePath);\n if (info) {\n result.push(info);\n }\n }\n }\n return result.length > 0 ? result : undefined;\n};\n\n/**\n * @param {String|String[]} folderPaths \n * @param {String} infoPath \n * @returns {Promise<Info[]>}\n */\nconst getInfosFromFoldersAndPaths = async (folderPaths, infoPath) => {\n const paths = Array.isArray(folderPaths) ? folderPaths : [folderPaths];\n const infos = [];\n for (const path of paths) {\n const infosFromPath = await getInfoFromFolderAndPath(path, infoPath);\n if (infosFromPath) {\n infos.push(...infosFromPath);\n }\n }\n return infos;\n}\n\n/**\n * @param {String|String[]} folderPaths \n * @returns {Promise<Info>}\n */\nconst getInfoFromFolders = async (folderPaths) => {\n let infoResult = {};\n for (const info of await getInfosFromFoldersAndPaths(folderPaths, 'info')) {\n infoResult = mergeInfos(infoResult, info);\n }\n return infoResult;\n}\n\n\n/**\n * @template T\n * @param {String} key \n * @param {GenericMetaOptions} metaOptions\n * @param {T} [defaultValue]\n * @returns {T}\n */\nexport const getFromOptionsOrInfo = (key, metaOptions, defaultValue) => {\n const value = metaOptions?.[key] ?? metaOptions?.info?.[key] ?? defaultValue;\n return value;\n};\n\n/**\n * @template {GenericOptions} T\n * @param {...GenericOptions|undefined} metaOptionsList \n * @returns {MetaOptions<T>}\n */\nexport const mergeOptions = (...metaOptionsList) => {\n let mergedMetaOptions = /** @type {MetaOptions<T>} */ ({});\n metaOptionsList.forEach(metaOptions => {\n if (metaOptions) {\n mergedMetaOptions = { ...mergedMetaOptions, ...metaOptions, info: mergeInfos(mergedMetaOptions?.info, metaOptions?.info) };\n }\n });\n return mergedMetaOptions;\n};\n\n/**\n * @param {Info|Info[]|undefined} infoCode\n * @param {String|String[]} localFolderPaths \n */\nexport const getInfo = async (infoCode, localFolderPaths) => {\n const infoLocal = await getInfoFromFolders(localFolderPaths);\n const infoEnvVars = getEnvVarsInfo();\n const infosCode = Array.isArray(infoCode) ? infoCode : (infoCode ? [infoCode] : []);\n let infoIntermediate = mergeInfos(...infosCode, infoLocal, infoEnvVars);\n /** @type{Set<String>} */\n const included = new Set()\n const includes = infoIntermediate.includes;\n if (includes) {\n let hasNewIncludes = true;\n while (hasNewIncludes) {\n hasNewIncludes = false;\n for (const include of includes) {\n if (!included.has(include)) {\n const infosFromIncludes = await getInfosFromFoldersAndPaths(localFolderPaths, include);\n for (const infoFromInclude of infosFromIncludes) {\n infoIntermediate = mergeInfos(infoIntermediate, infoFromInclude);\n hasNewIncludes = true;\n }\n included.add(include);\n }\n }\n }\n }\n return infoIntermediate;\n}","export class FolderInfo {\r\n constructor() {\r\n /** @type {string|undefined} */\r\n this._vid = undefined;\r\n /** @type {string|undefined} */\r\n this._sid = undefined;\r\n /** @type {string|undefined} */\r\n this._name = undefined;\r\n /** @type {string|undefined} */\r\n this._emoji = undefined;\r\n /** @type {string|undefined} */\r\n this._parentVid = undefined;\r\n /** @type {boolean} */\r\n this._fromServer = false;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get vid() {\r\n return this._vid;\r\n }\r\n\r\n /**\r\n * @param {string} vid\r\n * @returns {FolderInfo}\r\n */\r\n setVid(vid) {\r\n this._vid = vid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get sid() {\r\n return this._sid;\r\n }\r\n /**\r\n * @param {string} sid\r\n * @returns {FolderInfo}\r\n */\r\n setSid(sid) {\r\n this._sid = sid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n /**\r\n * @param {string} name\r\n * @returns {FolderInfo}\r\n */\r\n setName(name) {\r\n this._name = name;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get emoji() {\r\n return this._emoji;\r\n }\r\n\r\n /**\r\n * @param {string} emoji\r\n * @returns {FolderInfo}\r\n */\r\n setEmoji(emoji) {\r\n this._emoji = emoji;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get parentVid() {\r\n return this._parentVid;\r\n }\r\n\r\n /**\r\n * @param {string} parentVid\r\n * @returns {FolderInfo}\r\n */\r\n setParentVid(parentVid) {\r\n this._parentVid = parentVid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n get fromServer() {\r\n return this._fromServer;\r\n }\r\n\r\n /**\r\n * @param {boolean} fromServer\r\n * @returns {FolderInfo}\r\n */\r\n setFromServer(fromServer) {\r\n this._fromServer = fromServer;\r\n return this;\r\n }\r\n}","import { GrafanaItem } from \"@gdacm/grafana-items\";\r\nimport { FolderInfo } from \"./FolderInfo.js\";\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\r\n * @typedef {import(\"@gdacm/base-types\").DashboardMetaOptions} DashboardMetaOptions\r\n */\r\n\r\n/**\r\n * @typedef {FolderInfo|String} FolderInfoDefinition\r\n */\r\n\r\n\r\nexport class DashboardInfo {\r\n constructor() {\r\n /** @type {string|undefined} */\r\n this._sid = undefined;\r\n /** @type {string|undefined} */\r\n this._vid = undefined;\r\n /** @type {string|undefined} */\r\n this._grafanaId = undefined;\r\n /** @type {string|undefined} */\r\n this._title = undefined;\r\n /** @type {string|undefined} */\r\n this._emoji = undefined;\r\n /** @type {FolderInfoDefinition[]} */\r\n this._path = [];\r\n /** @type {string[]} */\r\n this._tags = [];\r\n /**\r\n * @type {GenericMetaOptions} \r\n */\r\n this._metaOptions = {};\r\n /** @type {((uid: string, metaOptions: DashboardMetaOptions) => Promise<GrafanaItem>)|undefined} */\r\n this._dashboardGenerator = undefined;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get sid() {\r\n return this._sid;\r\n }\r\n\r\n /**\r\n * @param {string} sid\r\n * @returns {this}\r\n */\r\n setSid(sid) {\r\n this._sid = sid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get vid() {\r\n return this._vid;\r\n }\r\n\r\n /**\r\n * @param {string} vid\r\n * @returns {this}\r\n **/\r\n setVid(vid) {\r\n this._vid = vid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get grafanaId() {\r\n return this._grafanaId;\r\n }\r\n\r\n /**\r\n * @param {string} grafanaId\r\n * @returns {this}\r\n */\r\n setGrafanaId(grafanaId) {\r\n this._grafanaId = grafanaId;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get title() {\r\n return this._title;\r\n }\r\n\r\n /**\r\n * @param {string} title\r\n * @returns {this}\r\n */\r\n setTitle(title) {\r\n this._title = title;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get emoji() {\r\n return this._emoji;\r\n }\r\n\r\n /**\r\n * @param {string} emoji\r\n * @returns {this}\r\n */\r\n setEmoji(emoji) {\r\n this._emoji = emoji;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {FolderInfoDefinition[]}\r\n */\r\n get path() {\r\n return [...this._path];\r\n }\r\n\r\n /**\r\n * @param {FolderInfoDefinition[]} path\r\n * @returns {this}\r\n */\r\n setPath(path) {\r\n this._path = [...path];\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {FolderInfoDefinition[]} path\r\n * @returns {this}\r\n */\r\n injectIntoPath(path) {\r\n this._path = [...path, ...this._path];\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string[]}\r\n */\r\n get tags() {\r\n return this._tags;\r\n }\r\n\r\n /**\r\n * @param {string[]} tags\r\n * @returns {this}\r\n */\r\n setTags(tags) {\r\n this._tags = tags;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {GenericMetaOptions}\r\n */\r\n get metaOptions() {\r\n return this._metaOptions;\r\n }\r\n\r\n /**\r\n * @param {string} key\r\n * @param {any} value \r\n * @returns {this}\r\n */\r\n addMetaOption(key, value) {\r\n this._metaOptions[key] = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {((uid: string, metaOptions: DashboardMetaOptions) => Promise<GrafanaItem>)|undefined}\r\n */\r\n get getDashboard() {\r\n return this._dashboardGenerator;\r\n }\r\n\r\n /**\r\n * @param {((uid: string, metaOptions: DashboardMetaOptions) => Promise<GrafanaItem>)|undefined} dashboardGenerator\r\n * @returns {this}\r\n */\r\n setDashboardGenerator(dashboardGenerator) {\r\n this._dashboardGenerator = dashboardGenerator;\r\n return this;\r\n }\r\n}\r\n","import { DashboardInfo } from \"./DashboardInfo.js\";\r\nimport { FolderInfo } from \"./index.js\";\r\n\r\n/**\r\n * @typedef {(DashboardInfo|DashboardsInfo|DashboardInfo[]|DashboardsInfo[]|((info: Object) => DashboardInfo)|((info: Object) => DashboardsInfo)|((info: Object) => DashboardInfo[])|((info: Object) => DashboardsInfo[]))} DashboardsInfoItem\r\n */\r\n\r\nexport class DashboardsInfo {\r\n /**\r\n * @param {DashboardsInfoItem[]} items\r\n */\r\n constructor(...items) {\r\n /** @type {DashboardsInfoItem[]} */\r\n this._items = [];\r\n items.forEach((item) => this._items.push(item));\r\n /**\r\n * @type {((dashboardInfo: DashboardInfo, info: Object) => DashboardInfo)[]} \r\n */\r\n this._onDashboard = []\r\n }\r\n\r\n /**\r\n * @param {Object} info\r\n * @param {((dashboardInfo: DashboardInfo, info: Object) => DashboardInfo)[]} onDashboards\r\n * @returns {DashboardInfo[]}\r\n */\r\n getItems(info, onDashboards = []) {\r\n /** @type {DashboardInfo[]} */\r\n const result = [];\r\n for (const item of this._items) {\r\n if (item instanceof DashboardInfo) {\r\n result.push(item);\r\n } else if (item instanceof DashboardsInfo) {\r\n for (const subItem of item.getItems(info)) {\r\n result.push(subItem);\r\n }\r\n } else if (Array.isArray(item)) {\r\n for (const subItem of item) {\r\n if (subItem instanceof DashboardInfo) {\r\n result.push(subItem);\r\n } else if (subItem instanceof DashboardsInfo) {\r\n for (const subSubItem of subItem.getItems(info)) {\r\n result.push(subSubItem);\r\n }\r\n }\r\n }\r\n } else if (typeof item === 'function') {\r\n const itemResult = item(info);\r\n if (itemResult instanceof DashboardInfo) {\r\n result.push(itemResult);\r\n } else if (itemResult instanceof DashboardsInfo) {\r\n for (const subItem of itemResult.getItems(info)) {\r\n result.push(subItem);\r\n }\r\n } else if (Array.isArray(itemResult)) {\r\n for (const subItem of itemResult) {\r\n if (subItem instanceof DashboardInfo) {\r\n result.push(subItem);\r\n } else if (subItem instanceof DashboardsInfo) {\r\n for (const subSubItem of subItem.getItems(info)) {\r\n result.push(subSubItem);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const allOnDashboards = [...this._onDashboard, ...onDashboards];\r\n return result.map(dashboardInfo => {\r\n let dashboardInfoResult = dashboardInfo;\r\n for (const onDashboard of allOnDashboards) {\r\n dashboardInfoResult=onDashboard(dashboardInfo, info);\r\n }\r\n return dashboardInfoResult;\r\n });\r\n }\r\n\r\n /**\r\n * @param {((dashboardInfo: DashboardInfo, info: Object) => DashboardInfo)} callback\r\n * @returns {DashboardsInfo}\r\n **/\r\n forEachDashboard(callback) {\r\n this._onDashboard.push(callback);\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {FolderInfo[]} path \r\n * @returns {DashboardsInfo}\r\n */\r\n setPath(path) {\r\n return this.forEachDashboard((dashboardInfo) => dashboardInfo.setPath(path));\r\n }\r\n}","import { DashboardInfo } from \"./DashboardInfo.js\";\r\nimport { DashboardsInfo } from \"./DashboardsInfo.js\";\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\r\n */\r\n\r\n/**\r\n * @typedef {{\r\n * rootVid: String|undefined,\r\n * rootGrafanaFolder: String|undefined,\r\n * vidPrefix: String|undefined,\r\n * metaOptions: GenericMetaOptions\r\n * }} DashboardProjectProperties\r\n */\r\n\r\nexport class DashboardProject {\r\n /**\r\n * @param {String} name\r\n */\r\n constructor(name) {\r\n this._name = name;\r\n /**\r\n * @type {DashboardProjectProperties}\r\n */\r\n this._properties = {\r\n rootVid: undefined,\r\n rootGrafanaFolder: undefined,\r\n vidPrefix: undefined,\r\n metaOptions: {},\r\n };\r\n /**\r\n * @type {{[sid: String]: DashboardInfo}}\r\n */\r\n this._dashboards = {};\r\n\r\n /**\r\n * @type {DashboardsInfo[]}\r\n */\r\n this._dashboardsCollection = [];\r\n }\r\n\r\n /**\r\n * @param {DashboardInfo} dashboardInfo \r\n */\r\n addDashboardInfo(dashboardInfo) {\r\n if (dashboardInfo.sid) {\r\n this._dashboards[dashboardInfo.sid] = dashboardInfo;\r\n }\r\n }\r\n\r\n /**\r\n * @param {DashboardsInfo} dashboardsInfo\r\n */\r\n addDashboardsInfo(dashboardsInfo) {\r\n this._dashboardsCollection.push(dashboardsInfo);\r\n }\r\n\r\n /**\r\n * @param {String} vid \r\n */\r\n setRootVid(vid) {\r\n this._properties.rootVid = vid;\r\n }\r\n\r\n /**\r\n * @param {String} folder\r\n */\r\n setRootGrafanaFolder(folder) {\r\n this._properties.rootGrafanaFolder = folder;\r\n }\r\n\r\n /**\r\n * @param {String} prefix\r\n */\r\n setVidPrefix(prefix) {\r\n this._properties.vidPrefix = prefix;\r\n }\r\n\r\n /**\r\n * @param {GenericMetaOptions} metaOptions\r\n */\r\n setMetaOptions(metaOptions) {\r\n this._properties.metaOptions = metaOptions;\r\n }\r\n\r\n get dashboards() {\r\n return { ...this._dashboards };\r\n }\r\n\r\n /**\r\n * @param {Record<String, String|Number|Boolean|*>} info \r\n * @returns {DashboardInfo[]}\r\n */\r\n getDashboards(info) {\r\n /** @type {DashboardInfo[]} */\r\n const result = [];\r\n for (const sid in this._dashboards) {\r\n const dashboardInfo = this._dashboards[sid];\r\n result.push(dashboardInfo);\r\n }\r\n for (const dashboardsInfo of this._dashboardsCollection) {\r\n for (const dashboardInfo of dashboardsInfo.getItems(info)) {\r\n result.push(dashboardInfo);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n get properties() {\r\n return { ...this._properties };\r\n }\r\n\r\n get rootVid() {\r\n return this._properties.rootVid;\r\n }\r\n\r\n get rootGrafanaFolder() {\r\n return this._properties.rootGrafanaFolder;\r\n }\r\n\r\n get vidPrefix() {\r\n return this._properties.vidPrefix;\r\n }\r\n\r\n get metaOptions() {\r\n return this._properties.metaOptions;\r\n }\r\n}","import crypto from 'crypto';\r\n\r\n/**\r\n * \r\n * @param {string} input \r\n * @returns {string}\r\n */\r\nconst getHash = (input) => {\r\n return crypto.createHash('sha256').update(input).digest('hex');\r\n}\r\n\r\n/**\r\n * \r\n * @param {string|undefined} vid\r\n * @returns {string|undefined} The Grafana ID (40 characters) or undefined if vid is undefined\r\n */\r\nconst getGrafanaId = (vid) => {\r\n if (!vid) {\r\n return undefined\r\n }\r\n if (vid.length <= 40) {\r\n return vid;\r\n }\r\n return getHash(vid).substring(0, 40);\r\n}\r\n\r\n/**\r\n * @param {String} str \r\n * @returns {String} The string without diacritics\r\n */\r\nconst removeDiacritics = (str) => {\r\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n}\r\n\r\n/**\r\n * @param {string} input\r\n * @returns {string} The slugified version of the input\r\n */\r\nconst getSlug = (input) => {\r\n return removeDiacritics(input).toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)+/g, '');\r\n}\r\n\r\nconst segmentString = new Intl.Segmenter(\"fr\", {\r\n granularity: \"grapheme\",\r\n});\r\n\r\n/**\r\n * @param {String} str\r\n * @returns {String}\r\n */\r\nconst getFirstEmoji = (str) => {\r\n const emojis = [...segmentString.segment(str)].filter(({ segment }) => /\\p{Extended_Pictographic}/u.test(segment));\r\n return emojis[0]?.segment;\r\n}\r\n\r\n/**\r\n * @param {string} str \r\n * @param {string} newEmoji \r\n * @returns {string} The string with the first emoji replaced by the new emoji\r\n */\r\nconst replaceFirstEmojiWithOtherEmoji = (str, newEmoji) => {\r\n const firstEmoji = getFirstEmoji(str);\r\n if (firstEmoji) {\r\n return str.replace(firstEmoji, newEmoji);\r\n }\r\n return str;\r\n}\r\n\r\n/**\r\n * @param {String} str \r\n * @param {String} newEmoji \r\n * @returns {String}\r\n */\r\nconst replaceFirstEmojiWithOtherEmojiOrAddOne = (str, newEmoji) => {\r\n const x = getFirstEmoji(str)\r\n if (x) {\r\n return str.replace(x, newEmoji);\r\n } else {\r\n return `${newEmoji} ${str}`;\r\n }\r\n}\r\n\r\n/**\r\n * @param {String} str \r\n * @param {String} newEmoji \r\n * @returns {String}\r\n */\r\nconst addEmojiIfNoEmojiPresent = (str, newEmoji) => {\r\n const x = getFirstEmoji(str)\r\n if (x) {\r\n return str;\r\n } else {\r\n return `${newEmoji} ${str}`;\r\n }\r\n}\r\n\r\nexport { getGrafanaId, getSlug, replaceFirstEmojiWithOtherEmoji, replaceFirstEmojiWithOtherEmojiOrAddOne, addEmojiIfNoEmojiPresent, getFirstEmoji };","/**\r\n * \r\n * @param {{[header: String]: String}} headers\r\n * @param {Object} [options] \r\n * @param {String} [options.token] - The API token for authentication\r\n * @param {String} [options.login] - The login for basic authentication (not supported)\r\n * @param {String} [options.password] - The password for basic authentication (not supported)\r\n */\r\nconst ensureAuthentication = (headers, options) => {\r\n if (options?.token) {\r\n headers['Authorization'] = `Bearer ${options.token}`;\r\n }\r\n if (options?.login !== undefined || options?.password !== undefined) {\r\n throw new Error('Basic authentication is not supported (yet?). Please use a token instead as it\\'s a more secure method.');\r\n }\r\n}\r\n\r\n/**\r\n * @param {Response} response \r\n */\r\nconst ensureResponseOk = (response) => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param {String} url \r\n * @param {Object|null|undefined} data \r\n * @param {{[header: String]: String}} headers \r\n * @param {String} method \r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst processQuery = async (url, data, headers, method, options) => {\r\n ensureAuthentication(headers, options);\r\n const extra = data ? { body: JSON.stringify(data) } : {};\r\n const response = await fetch(url, {\r\n method: method,\r\n headers: headers,\r\n ...extra,\r\n });\r\n ensureResponseOk(response);\r\n return response.json();\r\n}\r\n\r\n/**\r\n * @param {String} url \r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst getJson = async (url, options) => {\r\n return processQuery(url, null, {}, 'GET', options);\r\n}\r\n\r\n/**\r\n * @param {String} url \r\n * @param {Object|null|undefined} [data]\r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst postJson = async (url, data, options) => {\r\n return processQuery(url, data, { 'Content-Type': 'application/json' }, 'POST', options);\r\n}\r\n\r\n\r\n/**\r\n * @param {String} url \r\n * @param {Object|null|undefined} [data]\r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst putJson = async (url, data, options) => {\r\n return processQuery(url, data, { 'Content-Type': 'application/json' }, 'PUT', options);\r\n}\r\n\r\nexport { getJson, postJson, putJson };","import { getGrafanaId } from \"../utils/id.js\";\r\nimport { getJson, postJson, putJson } from \"./httpClient/index.js\";\r\n\r\nexport class GrafanaApi {\r\n /**\r\n * @param {Object} [options]\r\n * @param {String} [options.apiUrl] - The base URL of the Grafana API\r\n * @param {String} [options.apiToken] - The API token for authentication\r\n */\r\n constructor(options) {\r\n if (options?.apiUrl) {\r\n this.rootUrl = options.apiUrl;\r\n }\r\n if (options?.apiToken) {\r\n this.token = options.apiToken;\r\n }\r\n }\r\n\r\n /**\r\n * @returns {{token: String, rootUrl: String}} - The parameters for the Grafana API\r\n */\r\n get _parameters() {\r\n if (!this.token || !this.rootUrl) {\r\n throw new Error(\"GrafanaApi: Missing required parameters. Please provide both 'apiUrl' and 'apiToken'.\");\r\n }\r\n return {\r\n token: this.token,\r\n rootUrl: this.rootUrl,\r\n }\r\n }\r\n\r\n /**\r\n * @param {String} folderVid\r\n * @returns {Promise<Object>} - The response from the Grafana API for the folder information as a json object\r\n */\r\n async getFolder(folderVid) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const { token, rootUrl } = this._parameters;\r\n \r\n const response = await getJson(`${rootUrl}/api/folders/${folderUid}`, { token });\r\n return response;\r\n }\r\n\r\n /**\r\n * @param {String} folderName \r\n * @param {String} folderVid \r\n * @param {String|undefined} parentVid \r\n * @returns {Promise<Object>} The response from the Grafana API\r\n */\r\n async createFolder(folderName, folderVid, parentVid) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const parentUid = getGrafanaId(parentVid);\r\n const { token, rootUrl } = this._parameters;\r\n const response = await postJson(\r\n `${rootUrl}/api/folders`,\r\n {\r\n uid: folderUid,\r\n title: folderName,\r\n parentUid: parentUid,\r\n },\r\n { token }\r\n )\r\n return response;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param {String} folderVid \r\n * @param {String} newFolderName \r\n * @param {String|undefined} parentVid \r\n * @param {Number} version \r\n */\r\n async renameFolder(folderVid, newFolderName, parentVid, version) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const parentUid = getGrafanaId(parentVid);\r\n const { token, rootUrl } = this._parameters;\r\n const response = await putJson(\r\n `${rootUrl}/api/folders/${folderUid}`,\r\n {\r\n uid: folderUid,\r\n title: newFolderName,\r\n parentUid: parentUid,\r\n version: version,\r\n },\r\n { token }\r\n )\r\n return response;\r\n }\r\n\r\n /**\r\n * @param {Object} dashboardStruct \r\n * @param {String} folderVid \r\n * @param {String} message \r\n * @returns {Promise<Object>} The response from the Grafana API\r\n */\r\n async createDashboard(dashboardStruct, folderVid, message) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const { token, rootUrl } = this._parameters;\r\n const response = await postJson(\r\n `${rootUrl}/api/dashboards/db`,\r\n {\r\n dashboard: dashboardStruct,\r\n folderUid: folderUid,\r\n message: message,\r\n overwrite: true,\r\n },\r\n { token }\r\n )\r\n return response;\r\n }\r\n}","import { ensurePathExists, writeJsonFile } from './utils/io.js';\r\nimport { DashboardProject } from './DashboardProject.js';\r\nimport { getGrafanaId, getSlug } from './utils/id.js';\r\nimport { GrafanaApi } from './api/GrafanaApi.js';\r\nimport { FolderInfo } from './FolderInfo.js';\r\nimport { getFromOptionsOrInfo, mergeOptions } from './info.js';\r\nimport { DashboardsInfo } from './DashboardsInfo.js';\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\r\n * @typedef {import(\"@gdacm/base-types\").DashboardMetaOptions} DashboardMetaOptions\r\n * @typedef {import(\"@gdacm/base-types\").DashboardOptions} DashboardOptions\r\n */\r\n\r\n/**\r\n * @typedef {(uid: String, option: Object) => Promise<Object>} DashboardGenerator\r\n */\r\n\r\nexport class DashboardManager {\r\n constructor() {\r\n /**\r\n * @type {{[projectName: string]: DashboardProject}}\r\n */\r\n this.dashboards = {};\r\n }\r\n\r\n /**\r\n * Log information to the console.\r\n * @param {...any} args - The arguments to log\r\n */\r\n #log(...args) {\r\n console.log(...args);\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @returns {DashboardProject} The project object\r\n */\r\n _ensureProjectExists(projectName) {\r\n if (!this.dashboards[projectName]) {\r\n this.dashboards[projectName] = new DashboardProject(projectName);\r\n }\r\n return this.dashboards[projectName];\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @param {DashboardsInfo} dashboardsInfo\r\n * @returns {this}\r\n */\r\n registerDashboards(projectName, dashboardsInfo) {\r\n const project = this._ensureProjectExists(projectName);\r\n project.addDashboardsInfo(dashboardsInfo);\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @param {string|undefined} rootVid \r\n * @param {string} rootGrafanaFolder \r\n * @param {string} vidPrefix\r\n * @param {GenericMetaOptions} metaOptions \r\n * @returns {this}\r\n */\r\n setupProject(projectName, rootVid, rootGrafanaFolder, vidPrefix, metaOptions) {\r\n const project = this._ensureProjectExists(projectName);\r\n if (rootVid) {\r\n project.setRootVid(rootVid);\r\n }\r\n project.setRootGrafanaFolder(rootGrafanaFolder);\r\n project.setVidPrefix(vidPrefix);\r\n project.setMetaOptions(metaOptions);\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @param {string} rootFolderPath \r\n * @param {GenericMetaOptions} [metaOptions] - Optional parameters for generating dashboards\r\n * @returns {Promise<this>}\r\n */\r\n async generateDashboards(projectName, rootFolderPath, metaOptions) {\r\n const projectDashboards = this._ensureProjectExists(projectName);\r\n const localProjectMetaOptions = /** @type {GenericMetaOptions} */ (mergeOptions(projectDashboards.metaOptions, metaOptions));\r\n\r\n /** @type {Boolean|undefined} */\r\n const writeOnDisk = getFromOptionsOrInfo('writeOnDisk', localProjectMetaOptions, true);\r\n /** @type {Boolean|undefined} */\r\n const createOnGrafana = getFromOptionsOrInfo('createOnGrafana', localProjectMetaOptions, true);\r\n /** @type {String|undefined} */\r\n const testName = getFromOptionsOrInfo('testName', localProjectMetaOptions, undefined);\r\n\r\n this.#log(`🔨📊 Generating dashboards for project: ${projectName} in folder: ${rootFolderPath} ${testName ? `with test name: ${testName}` : ''}`);\r\n if (!projectDashboards) {\r\n throw new Error(`No dashboards registered for project: ${projectName}`);\r\n }\r\n /**\r\n * @type {Object.<string, {sid: string, vid: string, name: string, parentVid: string|undefined, folderPath: string}>}\r\n */\r\n const foldersToCreate = {};\r\n const dashboardsToCreate = [];\r\n const { apiToken, apiUrl } = localProjectMetaOptions.info || {};\r\n const projectRootVid = projectDashboards.rootVid;\r\n let projectVidPrefix = projectDashboards.vidPrefix\r\n if (!projectVidPrefix) {\r\n throw new Error(`No vidPrefix defined for project: ${projectName}`);\r\n }\r\n let projectRootGrafanaFolder = projectDashboards.rootGrafanaFolder;\r\n if (!projectRootGrafanaFolder) {\r\n projectRootGrafanaFolder = projectName;\r\n }\r\n let projectFolderPath = rootFolderPath;\r\n\r\n foldersToCreate[projectVidPrefix] = {\r\n folderPath: projectFolderPath,\r\n name: projectRootGrafanaFolder,\r\n parentVid: projectRootVid,\r\n sid: getSlug(projectRootGrafanaFolder),\r\n vid: projectVidPrefix,\r\n }\r\n\r\n if (testName) {\r\n const testVid = `${projectVidPrefix}-t`;\r\n const testFolderPath = `${projectFolderPath}/__test__`;\r\n if (!foldersToCreate[testVid]) {\r\n foldersToCreate[testVid] = {\r\n sid: `t`,\r\n vid: testVid,\r\n name: \"🧪 __test__\",\r\n parentVid: projectVidPrefix,\r\n folderPath: testFolderPath,\r\n }\r\n }\r\n projectFolderPath = testFolderPath;\r\n projectVidPrefix = testVid;\r\n const testNameVid = `${projectVidPrefix}-${getSlug(testName)}`;\r\n const testNameFolderPath = `${projectFolderPath}/${getSlug(testName)}`;\r\n if (!foldersToCreate[testNameVid]) {\r\n foldersToCreate[testNameVid] = {\r\n sid: getSlug(testName),\r\n vid: testNameVid,\r\n name: `🧪 ${testName}`,\r\n parentVid: projectVidPrefix,\r\n folderPath: testNameFolderPath,\r\n }\r\n }\r\n projectFolderPath = testNameFolderPath;\r\n projectVidPrefix = testNameVid;\r\n }\r\n\r\n for (const dashboardInfo of projectDashboards.getDashboards(localProjectMetaOptions.info || {})) {\r\n const sid = dashboardInfo.sid;\r\n this.#log(`📊 Generating dashboard: ${sid}`);\r\n\r\n const localDashboardMetaOptions = mergeOptions(localProjectMetaOptions, dashboardInfo.metaOptions)\r\n\r\n /** @type {String[]} */\r\n const tagsPublished = getFromOptionsOrInfo('tagsPublished', localDashboardMetaOptions, ['published']);\r\n\r\n /** @type {String[]} */\r\n const tagsPreview = getFromOptionsOrInfo('tagsPreview', localDashboardMetaOptions, ['preview']);\r\n\r\n const vid = `${projectVidPrefix}-${sid}`;\r\n const uid = getGrafanaId(vid) || '';\r\n\r\n let title = dashboardInfo.title || 'Untitled Dashboard';\r\n let emoji = testName ? \"🧪\" : (dashboardInfo.emoji || \"📈\");\r\n if (emoji && emoji !== '') {\r\n title = `${emoji} ${title}`;\r\n }\r\n\r\n /**\r\n * @type{DashboardOptions}\r\n */\r\n const additionnalOptions = {\r\n title,\r\n tags: [],\r\n };\r\n\r\n if (testName) {\r\n additionnalOptions.testName = testName;\r\n additionnalOptions.tags.push(...tagsPreview);\r\n } else {\r\n additionnalOptions.tags.push(...tagsPublished);\r\n }\r\n additionnalOptions.tags.push(...dashboardInfo.tags);\r\n\r\n const dashboardStruct = await dashboardInfo.getDashboard?.(\r\n uid,\r\n mergeOptions(localDashboardMetaOptions, additionnalOptions)\r\n );\r\n if (dashboardStruct) {\r\n this.#log(`📊 Creating dashboard for sid: ${dashboardInfo.sid} (${title})`);\r\n const path = dashboardInfo.path || [];\r\n const newPath = [];\r\n /** @type {String} */\r\n let folderPath = projectFolderPath;\r\n /** @type {String} */\r\n let folderVid = projectVidPrefix;\r\n for (const pathItem of path) {\r\n /** @type {String} */\r\n let sid = '';\r\n /** @type {String} */\r\n let name = '';\r\n let emoji = '';\r\n if (pathItem instanceof FolderInfo) {\r\n sid = pathItem.sid || '';\r\n name = pathItem.name || '';\r\n emoji = pathItem.emoji || '';\r\n } else if (typeof pathItem === 'string') {\r\n sid = getSlug(pathItem);\r\n name = pathItem;\r\n emoji = '';\r\n } else {\r\n throw new Error(`Invalid path item: ${pathItem}`);\r\n }\r\n if (testName) {\r\n emoji = \"🧪\";\r\n }\r\n if (!testName && (!emoji || emoji === '')) {\r\n emoji = '📚';\r\n }\r\n\r\n if (emoji && emoji !== '') {\r\n name = `${emoji} ${name}`;\r\n }\r\n newPath.push({ sid, name });\r\n folderPath = `${folderPath}/${sid}`;\r\n const parentVid = folderVid;\r\n folderVid = `${parentVid}-${sid}`;\r\n if (!foldersToCreate[folderVid]) {\r\n foldersToCreate[folderVid] = {\r\n sid,\r\n vid: folderVid,\r\n name,\r\n parentVid,\r\n folderPath,\r\n }\r\n }\r\n }\r\n dashboardsToCreate.push({\r\n uid,\r\n vid,\r\n sid,\r\n title,\r\n\r\n content: dashboardStruct.asJson(),\r\n folderVid,\r\n folderPath,\r\n message: `📊 Autogenerated dashboard for project: ${projectName}, dashboard: ${title}`,\r\n });\r\n }\r\n }\r\n if (writeOnDisk) {\r\n for (const folderInfo of Object.values(foldersToCreate)) {\r\n await ensurePathExists(folderInfo.folderPath);\r\n }\r\n for (const dashboardToCreate of dashboardsToCreate) {\r\n const { sid, content, folderPath } = dashboardToCreate;\r\n const filePath = `${folderPath}/${sid}.json`;\r\n this.#log(`📝 Writing dashboard to file: ${filePath}`);\r\n await writeJsonFile(filePath, content);\r\n }\r\n }\r\n if (createOnGrafana) {\r\n const grafanaApi = new GrafanaApi({ apiUrl, apiToken });\r\n this.#log(`🖥️ Creating dashboards on Grafana ${apiUrl} for project \"${projectName}\"`);\r\n for (const folderInfo of Object.values(foldersToCreate)) {\r\n try {\r\n const response = await grafanaApi.getFolder(folderInfo.vid);\r\n // @ts-ignore\r\n const { title, version, parentUid } = response;\r\n const nameHasChanged = folderInfo.name && folderInfo.name.trim() !== '' && folderInfo.name !== title;\r\n const parentVidHasChanged = folderInfo.parentVid !== undefined && getGrafanaId(folderInfo.parentVid) !== parentUid;\r\n if (nameHasChanged || parentVidHasChanged) {\r\n this.#log(`📂 Folder with vid: ${folderInfo.vid} has a different name on Grafana: ${title}, renaming to: ${folderInfo.name}`);\r\n await grafanaApi.renameFolder(folderInfo.vid, folderInfo.name, folderInfo.parentVid, version);\r\n }\r\n } catch (error) {\r\n this.#log(`📁 Folder not found (or name mismatch) on Grafana, creating folder: ${folderInfo.name} with vid: ${folderInfo.vid}`);\r\n await grafanaApi.createFolder(folderInfo.name, folderInfo.vid, folderInfo.parentVid);\r\n }\r\n }\r\n const updatedDashboardUrls = [];\r\n for (const dashboardToCreate of dashboardsToCreate) {\r\n const { content, title, folderVid } = dashboardToCreate;\r\n {\r\n this.#log(`📊 Creating dashboard on Grafana: ${title} in folder vid: ${folderVid}`);\r\n const response = await grafanaApi.createDashboard(\r\n content,\r\n folderVid,\r\n `Autogenerated dashboard for project: ${projectName}, dashboard: ${title}`\r\n );\r\n this.#log(`👌 Dashboard created: ${JSON.stringify(response)}`);\r\n updatedDashboardUrls.push(`${apiUrl}/d/${dashboardToCreate.uid}`);\r\n }\r\n }\r\n if (updatedDashboardUrls.length > 0) {\r\n this.#log(`📝 Updated dashboard URLs:`);\r\n for (const url of updatedDashboardUrls) {\r\n this.#log(` 🔀 ${url}`);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n}\r\n","import { DashboardManager, DashboardsInfo } from \"./index.js\";\r\nimport { getInfo } from \"./info.js\";\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").Info} Info\r\n */\r\n\r\n/**\r\n * @param {string[]} localFolders \r\n * @param {string} outDir\r\n * @param {Info|Info[]} infosCode\r\n * @param {DashboardsInfo} dashboardsInfos\r\n * @returns {Promise<void>}\r\n */\r\nexport const createDashboards = async (localFolders, outDir, infosCode, dashboardsInfos) => {\r\n const info = await getInfo(infosCode, localFolders);\r\n let { projectName, projectRootVid, projectRootGrafanaFolder, projectVidPrefix } = info;\r\n const dashboardManager = new DashboardManager();\r\n if (!projectRootGrafanaFolder || !projectVidPrefix) {\r\n throw new Error(`Missing projectRootGrafanaFolder or projectVidPrefix in info`);\r\n }\r\n if (!projectName) {\r\n projectName = projectVidPrefix;\r\n }\r\n dashboardManager.setupProject(projectName, projectRootVid, projectRootGrafanaFolder, projectVidPrefix, { info });\r\n dashboardManager.registerDashboards(\r\n projectName,\r\n new DashboardsInfo(\r\n dashboardsInfos\r\n )\r\n );\r\n\r\n await dashboardManager.generateDashboards(projectName, `${outDir}/${projectVidPrefix}`);\r\n}\r\n"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["yamlDump","yamlLoad"],"sources":["../../../node_modules/js-yaml/dist/js-yaml.mjs","../src/utils/io.js","../src/info.js","../src/FolderInfo.js","../src/DashboardInfo.js","../src/DashboardsInfo.js","../src/DashboardProject.js","../src/utils/id.js","../src/api/httpClient/index.js","../src/api/GrafanaApi.js","../src/DashboardManager.js","../src/dashboards.js"],"sourcesContent":["/*! js-yaml 5.4.1 https://github.com/nodeca/js-yaml @license MIT */\n//#region src/tag.ts\n/**\n* Returned by a scalar resolver when the source does not match its tag.\n*\n* @category Tags\n*/\nvar NOT_RESOLVED = Symbol(\"NOT_RESOLVED\");\n/**\n* Create a normalized scalar tag definition.\n*\n* @category Tags\n*/\nfunction defineScalarTag(tagName, options) {\n\treturn {\n\t\ttagName,\n\t\tnodeKind: \"scalar\",\n\t\timplicit: options.implicit ?? false,\n\t\tmatchByTagPrefix: options.matchByTagPrefix ?? false,\n\t\timplicitFirstChars: options.implicitFirstChars ?? null,\n\t\tresolve: options.resolve,\n\t\tidentify: options.identify,\n\t\trepresent: options.represent ?? ((data) => String(data)),\n\t\trepresentTagName: options.representTagName ?? (() => tagName)\n\t};\n}\n/**\n* Create a normalized sequence tag definition.\n*\n* @category Tags\n*/\nfunction defineSequenceTag(tagName, options) {\n\tconst carrierIsResult = options.finalize === void 0;\n\treturn {\n\t\ttagName,\n\t\tnodeKind: \"sequence\",\n\t\timplicit: false,\n\t\tmatchByTagPrefix: options.matchByTagPrefix ?? false,\n\t\tcreate: options.create,\n\t\taddItem: options.addItem,\n\t\tfinalize: options.finalize ?? ((carrier) => carrier),\n\t\tcarrierIsResult,\n\t\tidentify: options.identify,\n\t\trepresent: options.represent ?? ((data) => data),\n\t\trepresentTagName: options.representTagName ?? (() => tagName)\n\t};\n}\n/**\n* Create a normalized mapping tag definition.\n*\n* @category Tags\n*/\nfunction defineMappingTag(tagName, options) {\n\tconst carrierIsResult = options.finalize === void 0;\n\treturn {\n\t\ttagName,\n\t\tnodeKind: \"mapping\",\n\t\timplicit: false,\n\t\tmatchByTagPrefix: options.matchByTagPrefix ?? false,\n\t\tcreate: options.create,\n\t\taddPair: options.addPair,\n\t\thas: options.has,\n\t\tkeys: options.keys,\n\t\tget: options.get,\n\t\tfinalize: options.finalize ?? ((carrier) => carrier),\n\t\tcarrierIsResult,\n\t\tidentify: options.identify,\n\t\trepresent: options.represent ?? ((data) => data),\n\t\trepresentTagName: options.representTagName ?? (() => tagName)\n\t};\n}\n//#endregion\n//#region src/tag/scalar/str.ts\n/** @category Tags */\nvar strTag = defineScalarTag(\"tag:yaml.org,2002:str\", {\n\tresolve: (source) => source,\n\tidentify: (data) => typeof data === \"string\"\n});\n//#endregion\n//#region src/tag/scalar/null_core.ts\nvar NULL_VALUES$1 = [\n\t\"\",\n\t\"~\",\n\t\"null\",\n\t\"Null\",\n\t\"NULL\"\n];\n/** @category Tags */\nvar nullCoreTag = defineScalarTag(\"tag:yaml.org,2002:null\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"\",\n\t\t\"~\",\n\t\t\"n\",\n\t\t\"N\"\n\t],\n\tresolve: (source) => {\n\t\tif (NULL_VALUES$1.indexOf(source) !== -1) return null;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => object === null,\n\trepresent: () => \"null\"\n});\n//#endregion\n//#region src/tag/scalar/null_json.ts\n/** @category Tags */\nvar nullJsonTag = defineScalarTag(\"tag:yaml.org,2002:null\", {\n\timplicit: true,\n\timplicitFirstChars: [\"n\"],\n\tresolve: (source, isExplicit) => {\n\t\tif (source === \"null\" || isExplicit && source === \"\") return null;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => object === null,\n\trepresent: () => \"null\"\n});\n//#endregion\n//#region src/tag/scalar/null_yaml11.ts\nvar NULL_VALUES = [\n\t\"\",\n\t\"~\",\n\t\"null\",\n\t\"Null\",\n\t\"NULL\"\n];\n/** @category Tags */\nvar nullYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:null\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"\",\n\t\t\"~\",\n\t\t\"n\",\n\t\t\"N\"\n\t],\n\tresolve: (source) => {\n\t\tif (NULL_VALUES.indexOf(source) !== -1) return null;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => object === null,\n\trepresent: () => \"null\"\n});\n//#endregion\n//#region src/tag/scalar/bool_core.ts\nvar TRUE_VALUES$2 = [\n\t\"true\",\n\t\"True\",\n\t\"TRUE\"\n];\nvar FALSE_VALUES$2 = [\n\t\"false\",\n\t\"False\",\n\t\"FALSE\"\n];\n/** @category Tags */\nvar boolCoreTag = defineScalarTag(\"tag:yaml.org,2002:bool\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"t\",\n\t\t\"T\",\n\t\t\"f\",\n\t\t\"F\"\n\t],\n\tresolve: (source) => {\n\t\tif (TRUE_VALUES$2.indexOf(source) !== -1) return true;\n\t\tif (FALSE_VALUES$2.indexOf(source) !== -1) return false;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Boolean]\",\n\trepresent: (object) => object ? \"true\" : \"false\"\n});\n//#endregion\n//#region src/tag/scalar/bool_json.ts\nvar TRUE_VALUES$1 = [\"true\"];\nvar FALSE_VALUES$1 = [\"false\"];\n/** @category Tags */\nvar boolJsonTag = defineScalarTag(\"tag:yaml.org,2002:bool\", {\n\timplicit: true,\n\timplicitFirstChars: [\"t\", \"f\"],\n\tresolve: (source) => {\n\t\tif (TRUE_VALUES$1.indexOf(source) !== -1) return true;\n\t\tif (FALSE_VALUES$1.indexOf(source) !== -1) return false;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Boolean]\",\n\trepresent: (object) => object ? \"true\" : \"false\"\n});\n//#endregion\n//#region src/tag/scalar/bool_yaml11.ts\nvar TRUE_VALUES = [\n\t\"true\",\n\t\"True\",\n\t\"TRUE\",\n\t\"y\",\n\t\"Y\",\n\t\"yes\",\n\t\"Yes\",\n\t\"YES\",\n\t\"on\",\n\t\"On\",\n\t\"ON\"\n];\nvar FALSE_VALUES = [\n\t\"false\",\n\t\"False\",\n\t\"FALSE\",\n\t\"n\",\n\t\"N\",\n\t\"no\",\n\t\"No\",\n\t\"NO\",\n\t\"off\",\n\t\"Off\",\n\t\"OFF\"\n];\n/** @category Tags */\nvar boolYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:bool\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"y\",\n\t\t\"Y\",\n\t\t\"n\",\n\t\t\"N\",\n\t\t\"t\",\n\t\t\"T\",\n\t\t\"f\",\n\t\t\"F\",\n\t\t\"o\",\n\t\t\"O\"\n\t],\n\tresolve: (source) => {\n\t\tif (TRUE_VALUES.indexOf(source) !== -1) return true;\n\t\tif (FALSE_VALUES.indexOf(source) !== -1) return false;\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Boolean]\",\n\trepresent: (object) => object ? \"true\" : \"false\"\n});\n//#endregion\n//#region src/tag/scalar/int_core.ts\nvar YAML_INTEGER_IMPLICIT_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:0o[0-7]+|0x[0-9a-fA-F]+|[-+]?[0-9]+)$\");\nvar YAML_INTEGER_EXPLICIT_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$\");\nfunction parseYamlInteger$2(source) {\n\tlet value = source;\n\tlet sign = 1;\n\tif (value[0] === \"-\" || value[0] === \"+\") {\n\t\tif (value[0] === \"-\") sign = -1;\n\t\tvalue = value.slice(1);\n\t}\n\tif (value.startsWith(\"0b\")) return sign * parseInt(value.slice(2), 2);\n\tif (value.startsWith(\"0o\")) return sign * parseInt(value.slice(2), 8);\n\tif (value.startsWith(\"0x\")) return sign * parseInt(value.slice(2), 16);\n\treturn sign * parseInt(value, 10);\n}\nfunction resolveYamlInteger$2(source, isExplicit) {\n\tif (isExplicit) {\n\t\tif (!YAML_INTEGER_EXPLICIT_PATTERN$1.test(source)) return NOT_RESOLVED;\n\t} else if (!YAML_INTEGER_IMPLICIT_PATTERN$1.test(source)) return NOT_RESOLVED;\n\tconst result = parseYamlInteger$2(source);\n\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n}\n/** @category Tags */\nvar intCoreTag = defineScalarTag(\"tag:yaml.org,2002:int\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlInteger$2,\n\tidentify: (object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf(\"e\") < 0,\n\trepresent: (object) => object.toString(10)\n});\n//#endregion\n//#region src/tag/scalar/int_json.ts\nvar YAML_INTEGER_IMPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^-?(?:0|[1-9][0-9]*)$\");\nvar YAML_INTEGER_EXPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?0b[0-1]+|[-+]?0o[0-7]+|[-+]?0x[0-9a-fA-F]+|[-+]?[0-9]+)$\");\nfunction parseYamlInteger$1(source) {\n\tlet value = source;\n\tlet sign = 1;\n\tif (value[0] === \"-\" || value[0] === \"+\") {\n\t\tif (value[0] === \"-\") sign = -1;\n\t\tvalue = value.slice(1);\n\t}\n\tif (value.startsWith(\"0b\")) return sign * parseInt(value.slice(2), 2);\n\tif (value.startsWith(\"0o\")) return sign * parseInt(value.slice(2), 8);\n\tif (value.startsWith(\"0x\")) return sign * parseInt(value.slice(2), 16);\n\treturn sign * parseInt(value, 10);\n}\nfunction resolveYamlInteger$1(source, isExplicit) {\n\tif (isExplicit) {\n\t\tif (!YAML_INTEGER_EXPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\t} else if (!YAML_INTEGER_IMPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\tconst result = parseYamlInteger$1(source);\n\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n}\n/** @category Tags */\nvar intJsonTag = defineScalarTag(\"tag:yaml.org,2002:int\", {\n\timplicit: true,\n\timplicitFirstChars: [\"-\", ...\"0123456789\"],\n\tresolve: resolveYamlInteger$1,\n\tidentify: (object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf(\"e\") < 0,\n\trepresent: (object) => object.toString(10)\n});\n//#endregion\n//#region src/tag/scalar/int_yaml11.ts\nvar YAML_INTEGER_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?0b[0-1_]+|[-+]?0[0-7_]+|[-+]?0x[0-9a-fA-F_]+|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+|[-+]?(?:0|[1-9][0-9_]*))$\");\nfunction parseYamlInteger(source) {\n\tlet value = source.replace(/_/g, \"\");\n\tlet sign = 1;\n\tif (value[0] === \"-\" || value[0] === \"+\") {\n\t\tif (value[0] === \"-\") sign = -1;\n\t\tvalue = value.slice(1);\n\t}\n\tif (value.startsWith(\"0b\")) return sign * parseInt(value.slice(2), 2);\n\tif (value.startsWith(\"0x\")) return sign * parseInt(value.slice(2), 16);\n\tif (value.includes(\":\")) {\n\t\tlet result = 0;\n\t\tfor (const part of value.split(\":\")) result = result * 60 + Number(part);\n\t\treturn sign * result;\n\t}\n\tif (value !== \"0\" && value[0] === \"0\") return sign * parseInt(value, 8);\n\treturn sign * parseInt(value, 10);\n}\nfunction resolveYamlInteger(source) {\n\tif (!YAML_INTEGER_PATTERN.test(source)) return NOT_RESOLVED;\n\tconst result = parseYamlInteger(source);\n\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n}\n/** @category Tags */\nvar intYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:int\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlInteger,\n\tidentify: (object) => Number.isInteger(object) && !Object.is(object, -0) && object.toString(10).indexOf(\"e\") < 0,\n\trepresent: (object) => object.toString(10)\n});\n//#endregion\n//#region src/tag/scalar/float_core.ts\nvar YAML_FLOAT_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:[-+]?[0-9]+(?:\\\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nvar YAML_FLOAT_SPECIAL_PATTERN$1 = /* @__PURE__ */ new RegExp(\"^(?:[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat$2(source) {\n\tif (!YAML_FLOAT_PATTERN$1.test(source)) return NOT_RESOLVED;\n\tlet value = source.toLowerCase();\n\tconst sign = value[0] === \"-\" ? -1 : 1;\n\tif (\"+-\".includes(value[0])) value = value.slice(1);\n\tif (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\tif (value === \".nan\") return NaN;\n\tconst result = sign * parseFloat(value);\n\tif (Number.isFinite(result) || YAML_FLOAT_SPECIAL_PATTERN$1.test(source)) return result;\n\treturn NOT_RESOLVED;\n}\nfunction representYamlFloat$2(object) {\n\tif (isNaN(object)) return \".nan\";\n\tif (object === Number.POSITIVE_INFINITY) return \".inf\";\n\tif (object === Number.NEGATIVE_INFINITY) return \"-.inf\";\n\tif (Object.is(object, -0)) return \"-0.0\";\n\tconst result = object.toString(10);\n\treturn /^[-+]?[0-9]+e/.test(result) ? result.replace(\"e\", \".e\") : result;\n}\n/** @category Tags */\nvar floatCoreTag = defineScalarTag(\"tag:yaml.org,2002:float\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t\".\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlFloat$2,\n\tidentify: (object) => typeof object === \"number\" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf(\"e\") >= 0),\n\trepresent: representYamlFloat$2\n});\n//#endregion\n//#region src/tag/scalar/float_json.ts\nvar YAML_FLOAT_IMPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^-?(?:0|[1-9][0-9]*)(?:\\\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$\");\nvar YAML_FLOAT_EXPLICIT_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?[0-9]+(?:\\\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.[0-9]+(?:[eE][-+]?[0-9]+)?|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat$1(source, isExplicit) {\n\tif (isExplicit) {\n\t\tif (!YAML_FLOAT_EXPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\t\tlet value = source.toLowerCase();\n\t\tconst sign = value[0] === \"-\" ? -1 : 1;\n\t\tif (\"+-\".includes(value[0])) value = value.slice(1);\n\t\tif (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\t\tif (value === \".nan\") return NaN;\n\t\tconst result = sign * parseFloat(value);\n\t\treturn Number.isFinite(result) ? result : NOT_RESOLVED;\n\t}\n\tif (!YAML_FLOAT_IMPLICIT_PATTERN.test(source)) return NOT_RESOLVED;\n\tconst result = Number(source);\n\tif (Number.isFinite(result)) return result;\n\treturn NOT_RESOLVED;\n}\nfunction representYamlFloat$1(object) {\n\tif (isNaN(object)) return \".nan\";\n\tif (object === Number.POSITIVE_INFINITY) return \".inf\";\n\tif (object === Number.NEGATIVE_INFINITY) return \"-.inf\";\n\tif (Object.is(object, -0)) return \"-0.0\";\n\tconst result = object.toString(10);\n\treturn /^[-+]?[0-9]+e/.test(result) ? result.replace(\"e\", \".e\") : result;\n}\n/** @category Tags */\nvar floatJsonTag = defineScalarTag(\"tag:yaml.org,2002:float\", {\n\timplicit: true,\n\timplicitFirstChars: [\"-\", ...\"0123456789\"],\n\tresolve: resolveYamlFloat$1,\n\tidentify: (object) => typeof object === \"number\" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf(\"e\") >= 0),\n\trepresent: representYamlFloat$1\n});\n//#endregion\n//#region src/tag/scalar/float_yaml11.ts\nvar YAML_FLOAT_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?(?:(?:[0-9][0-9_]*)?\\\\.[0-9_]*)(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nvar YAML_FLOAT_SPECIAL_PATTERN = /* @__PURE__ */ new RegExp(\"^(?:[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))$\");\nfunction resolveYamlFloat(source) {\n\tif (!YAML_FLOAT_PATTERN.test(source)) return NOT_RESOLVED;\n\tlet value = source.toLowerCase().replace(/_/g, \"\");\n\tconst sign = value[0] === \"-\" ? -1 : 1;\n\tif (\"+-\".includes(value[0])) value = value.slice(1);\n\tif (value === \".inf\") return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\tif (value === \".nan\") return NaN;\n\tlet result = 0;\n\tif (value.includes(\":\")) {\n\t\tfor (const part of value.split(\":\")) result = result * 60 + Number(part);\n\t\tresult *= sign;\n\t} else result = sign * parseFloat(value);\n\tif (Number.isFinite(result) || YAML_FLOAT_SPECIAL_PATTERN.test(source)) return result;\n\treturn NOT_RESOLVED;\n}\nfunction representYamlFloat(object) {\n\tif (isNaN(object)) return \".nan\";\n\tif (object === Number.POSITIVE_INFINITY) return \".inf\";\n\tif (object === Number.NEGATIVE_INFINITY) return \"-.inf\";\n\tif (Object.is(object, -0)) return \"-0.0\";\n\tconst result = object.toString(10);\n\treturn /^[-+]?[0-9]+e/.test(result) ? result.replace(\"e\", \".e\") : result;\n}\n/** @category Tags */\nvar floatYaml11Tag = defineScalarTag(\"tag:yaml.org,2002:float\", {\n\timplicit: true,\n\timplicitFirstChars: [\n\t\t\"-\",\n\t\t\"+\",\n\t\t\".\",\n\t\t...\"0123456789\"\n\t],\n\tresolve: resolveYamlFloat,\n\tidentify: (object) => typeof object === \"number\" && (!Number.isInteger(object) || Object.is(object, -0) || object.toString(10).indexOf(\"e\") >= 0),\n\trepresent: representYamlFloat\n});\n//#endregion\n//#region src/tag/scalar/merge.ts\n/**\n* Enables merge keys in {@link CORE_SCHEMA} when added with\n* {@link Schema.withTags}.\n*\n* @category Tags\n*/\nvar mergeTag = defineScalarTag(\"tag:yaml.org,2002:merge\", {\n\timplicit: true,\n\timplicitFirstChars: [\"<\"],\n\tresolve: (source, isExplicit) => {\n\t\tif (source === \"<<\" || isExplicit && source === \"\") return \"<<\";\n\t\treturn NOT_RESOLVED;\n\t},\n\tidentify: () => false\n});\n//#endregion\n//#region src/tag/scalar/binary.ts\nvar BASE64_PATTERN = /^[A-Za-z0-9+/]*={0,2}$/;\nfunction resolveYamlBinary(source) {\n\tconst input = source.replace(/\\s/g, \"\");\n\tif (input.length % 4 !== 0 || !BASE64_PATTERN.test(input)) return NOT_RESOLVED;\n\tconst binary = atob(input);\n\tconst result = new Uint8Array(binary.length);\n\tfor (let index = 0; index < binary.length; index++) result[index] = binary.charCodeAt(index);\n\treturn result;\n}\nfunction representYamlBinary(object) {\n\tlet binary = \"\";\n\tfor (let index = 0; index < object.length; index++) binary += String.fromCharCode(object[index]);\n\treturn btoa(binary);\n}\n/**\n* The `!!binary` tag, represented as a `Uint8Array`.\n*\n* @category Tags\n*/\nvar binaryTag = defineScalarTag(\"tag:yaml.org,2002:binary\", {\n\tresolve: resolveYamlBinary,\n\tidentify: (object) => Object.prototype.toString.call(object) === \"[object Uint8Array]\",\n\trepresent: representYamlBinary\n});\n//#endregion\n//#region src/tag/scalar/timestamp.ts\nvar YAML_DATE_REGEXP = /* @__PURE__ */ new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$\");\nvar YAML_TIMESTAMP_REGEXP = /* @__PURE__ */ new RegExp(\"^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\\\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\\\.([0-9]*))?(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$\");\nfunction makeUtcDate(year, month, day, hour = 0, minute = 0, second = 0, fraction = 0) {\n\tconst date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\tdate.setUTCFullYear(year, month, day);\n\treturn date;\n}\nfunction resolveYamlTimestamp(source) {\n\tlet match = YAML_DATE_REGEXP.exec(source);\n\tif (match === null) match = YAML_TIMESTAMP_REGEXP.exec(source);\n\tif (match === null) return NOT_RESOLVED;\n\tconst year = +match[1];\n\tconst month = +match[2] - 1;\n\tconst day = +match[3];\n\tif (!match[4]) {\n\t\tconst date = makeUtcDate(year, month, day);\n\t\tif (date.getUTCFullYear() !== year || date.getUTCMonth() !== month || date.getUTCDate() !== day) return NOT_RESOLVED;\n\t\treturn date;\n\t}\n\tconst hour = +match[4];\n\tconst minute = +match[5];\n\tconst second = +match[6];\n\tlet fraction = 0;\n\tif (hour > 23 || minute > 59 || second > 59) return NOT_RESOLVED;\n\tif (match[7]) {\n\t\tlet value = match[7].slice(0, 3);\n\t\twhile (value.length < 3) value += \"0\";\n\t\tfraction = +value;\n\t}\n\tconst date = makeUtcDate(year, month, day, hour, minute, second, fraction);\n\tif (date.getUTCFullYear() !== year || date.getUTCMonth() !== month || date.getUTCDate() !== day) return NOT_RESOLVED;\n\tif (match[9]) {\n\t\tconst offsetHour = +match[10];\n\t\tconst offsetMinute = +(match[11] || 0);\n\t\tif (offsetHour > 23 || offsetMinute > 59) return NOT_RESOLVED;\n\t\tconst offset = (offsetHour * 60 + offsetMinute) * 6e4;\n\t\tdate.setTime(date.getTime() - (match[9] === \"-\" ? -offset : offset));\n\t}\n\treturn date;\n}\n/**\n* The YAML 1.1 `!!timestamp` tag, represented as a JavaScript `Date`.\n*\n* @category Tags\n*/\nvar timestampTag = defineScalarTag(\"tag:yaml.org,2002:timestamp\", {\n\timplicit: true,\n\timplicitFirstChars: [...\"0123456789\"],\n\tresolve: resolveYamlTimestamp,\n\tidentify: (object) => object instanceof Date,\n\trepresent: (object) => object.toISOString()\n});\n//#endregion\n//#region src/tag/sequence/seq.ts\n/** @category Tags */\nvar seqTag = defineSequenceTag(\"tag:yaml.org,2002:seq\", {\n\tcreate: () => [],\n\taddItem: (container, item) => {\n\t\tcontainer.push(item);\n\t},\n\tidentify: Array.isArray\n});\n//#endregion\n//#region src/common/object.ts\nfunction isPlainObject(data) {\n\tif (data === null || typeof data !== \"object\" || Array.isArray(data)) return false;\n\tconst prototype = Object.getPrototypeOf(data);\n\treturn prototype === null || prototype === Object.prototype;\n}\nfunction pick(object, keys) {\n\tconst result = {};\n\tfor (const key of keys) if (object[key] !== void 0) result[key] = object[key];\n\treturn result;\n}\n//#endregion\n//#region src/tag/sequence/omap.ts\n/**\n* Provided only for YAML 1.1 compatibility and supported by the loader only.\n* JavaScript has no dedicated class to represent this type, so it cannot be\n* identified and dumped.\n*\n* ```yaml\n* !!omap\n* - one: 1\n* - two: 2\n* ```\n*\n* is loaded as\n*\n* ```javascript\n* [\n* { one: 1 },\n* { two: 2 }\n* ]\n* ```\n*\n* @category Tags\n*/\nvar omapTag = defineSequenceTag(\"tag:yaml.org,2002:omap\", {\n\tcreate: () => ({\n\t\tlist: [],\n\t\tseen: /* @__PURE__ */ new Set()\n\t}),\n\taddItem: (carrier, item) => {\n\t\tlet key;\n\t\tif (item instanceof Map) {\n\t\t\tif (item.size !== 1) return \"cannot resolve an ordered map item\";\n\t\t\tkey = item.keys().next().value;\n\t\t} else if (isPlainObject(item)) {\n\t\t\tconst itemKeys = Object.keys(item);\n\t\t\tif (itemKeys.length !== 1) return \"cannot resolve an ordered map item\";\n\t\t\tkey = itemKeys[0];\n\t\t} else return \"cannot resolve an ordered map item\";\n\t\tif (carrier.seen.has(key)) return \"duplicate key in ordered map\";\n\t\tcarrier.seen.add(key);\n\t\tcarrier.list.push(item);\n\t\treturn \"\";\n\t},\n\tfinalize: (carrier) => carrier.list,\n\tidentify: () => false\n});\n//#endregion\n//#region src/tag/sequence/pairs.ts\n/**\n* Provided only for YAML 1.1 compatibility and supported by the loader only.\n* JavaScript has no dedicated class to represent this type, so it cannot be\n* identified and dumped.\n*\n* ```yaml\n* !!pairs\n* - one: 1\n* - two: 2\n* ```\n*\n* is loaded as\n*\n* ```javascript\n* [\n* ['one', 1],\n* ['two', 2]\n* ]\n* ```\n*\n* @category Tags\n*/\nvar pairsTag = defineSequenceTag(\"tag:yaml.org,2002:pairs\", {\n\tcreate: () => [],\n\taddItem: (container, item) => {\n\t\tif (item instanceof Map) {\n\t\t\tif (item.size !== 1) return \"cannot resolve a pairs item\";\n\t\t\tcontainer.push(item.entries().next().value);\n\t\t\treturn \"\";\n\t\t}\n\t\tif (Object.prototype.toString.call(item) !== \"[object Object]\") return \"cannot resolve a pairs item\";\n\t\tconst object = item;\n\t\tconst keys = Object.keys(object);\n\t\tif (keys.length !== 1) return \"cannot resolve a pairs item\";\n\t\tcontainer.push([keys[0], object[keys[0]]]);\n\t\treturn \"\";\n\t},\n\tidentify: () => false\n});\n//#endregion\n//#region src/tag/mapping/map.ts\n/**\n* This is the default mapping implementation. It uses `{}` objects and has only\n* partial functionality due to language limitations. This choice was made\n* because users expect to get JavaScript objects, and it was left unchanged to\n* avoid too many breaking changes in the v5 release.\n*\n* Side effects:\n*\n* - `Object.hasOwn()` checks or `for...of` loops are required for safe use (to\n* avoid falling through to prototypes).\n* - Only scalar string keys are supported properly.\n* - Other scalar keys, such as `null` and numbers, are converted to strings.\n* This is historical behaviour, and it can cause side effects such as\n* problems with `!!merge`.\n*\n* Note that non-string scalar keys may be deprecated in future versions.\n*\n* Ideally, use {@link realMapTag} instead.\n*\n* @category Tags\n*/\nvar mapTag = defineMappingTag(\"tag:yaml.org,2002:map\", {\n\tcreate: () => ({}),\n\tidentify: isPlainObject,\n\trepresent: (o) => {\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const key of Object.keys(o)) map.set(key, o[key]);\n\t\treturn map;\n\t},\n\taddPair: (container, key, value) => {\n\t\tif (key !== null && typeof key === \"object\") return \"object-based map does not support complex keys\";\n\t\tconst normalizedKey = String(key);\n\t\tif (normalizedKey === \"__proto__\") Object.defineProperty(container, normalizedKey, {\n\t\t\tvalue,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\telse container[normalizedKey] = value;\n\t\treturn \"\";\n\t},\n\thas: (container, key) => {\n\t\tif (key !== null && typeof key === \"object\") return false;\n\t\treturn Object.prototype.hasOwnProperty.call(container, String(key));\n\t},\n\tkeys: (container) => Object.keys(container),\n\tget: (container, key) => {\n\t\tconst normalizedKey = String(key);\n\t\tif (!Object.prototype.hasOwnProperty.call(container, normalizedKey)) return null;\n\t\treturn container[normalizedKey];\n\t}\n});\n//#endregion\n//#region src/tag/mapping/set.ts\n/**\n* The YAML 1.1 `!!set` tag, represented as a JavaScript `Set`.\n*\n* @category Tags\n*/\nvar setTag = defineMappingTag(\"tag:yaml.org,2002:set\", {\n\tcreate: () => /* @__PURE__ */ new Set(),\n\tidentify: (data) => data instanceof Set,\n\trepresent: (data) => {\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const key of data) map.set(key, null);\n\t\treturn map;\n\t},\n\taddPair: (container, key, value) => {\n\t\tif (value !== null) return \"cannot resolve a set item\";\n\t\tcontainer.add(key);\n\t\treturn \"\";\n\t},\n\thas: (container, key) => container.has(key),\n\tkeys: (container) => container.keys(),\n\tget: () => null\n});\n//#endregion\n//#region src/schema.ts\nfunction createTagDefinitionMap() {\n\treturn {\n\t\tscalar: Object.create(null),\n\t\tsequence: Object.create(null),\n\t\tmapping: Object.create(null)\n\t};\n}\nfunction createTagDefinitionListMap() {\n\treturn {\n\t\tscalar: [],\n\t\tsequence: [],\n\t\tmapping: []\n\t};\n}\nfunction compileTags(tags) {\n\tconst result = [];\n\tfor (const tag of tags) {\n\t\tlet index = result.length;\n\t\tfor (let previousIndex = 0; previousIndex < result.length; previousIndex++) {\n\t\t\tconst previous = result[previousIndex];\n\t\t\tif (previous.nodeKind === tag.nodeKind && previous.tagName === tag.tagName && previous.matchByTagPrefix === tag.matchByTagPrefix) {\n\t\t\t\tindex = previousIndex;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tresult[index] = tag;\n\t}\n\treturn result;\n}\n/**\n* Controls tag resolution when loading and type selection when dumping.\n*\n* @category Schemas\n*/\nvar Schema = class Schema {\n\ttags;\n\t/** @internal */\n\timplicitScalarTags;\n\t/**\n\t* Dispatch implicit scalar resolvers by `source.charAt(0)`. Each bucket holds\n\t* the resolvers that may match that key, in schema order; a key absent from\n\t* the map uses\n\t* {@link Schema.implicitScalarAnyFirstChar}\n\t* (resolvers that declared no first-char constraint, so they apply to any\n\t* first character).\n\t*/\n\timplicitScalarByFirstChar;\n\timplicitScalarAnyFirstChar;\n\t/**\n\t* The default scalar tag (`!!str`), resolved once so the composer's fallback\n\t* for unresolved plain scalars avoids a keyed lookup per scalar.\n\t*\n\t* @internal\n\t*/\n\tdefaultScalarTag;\n\t/**\n\t* The default container tags (`!!seq` / `!!map`), used by the dumper: when a\n\t* value is identified by its default tag, the tag is implicit and not\n\t* printed. Undefined if the schema does not define them (then such values\n\t* can't be dumped).\n\t*\n\t* @internal\n\t*/\n\tdefaultSequenceTag;\n\t/** @internal */\n\tdefaultMappingTag;\n\texact;\n\tprefix;\n\tconstructor(tags) {\n\t\tconst compiledTags = compileTags(tags);\n\t\tconst implicitScalarTags = [];\n\t\tconst exact = createTagDefinitionMap();\n\t\tconst prefix = createTagDefinitionListMap();\n\t\tfor (const tag of compiledTags) {\n\t\t\tif (tag.nodeKind === \"scalar\" && tag.implicit) {\n\t\t\t\tif (tag.matchByTagPrefix) throw new Error(\"Implicit scalar tags cannot match by tag prefix\");\n\t\t\t\timplicitScalarTags.push(tag);\n\t\t\t}\n\t\t\tswitch (tag.nodeKind) {\n\t\t\t\tcase \"scalar\":\n\t\t\t\t\tif (tag.matchByTagPrefix) prefix.scalar.push(tag);\n\t\t\t\t\telse exact.scalar[tag.tagName] = tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"sequence\":\n\t\t\t\t\tif (tag.matchByTagPrefix) prefix.sequence.push(tag);\n\t\t\t\t\telse exact.sequence[tag.tagName] = tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"mapping\":\n\t\t\t\t\tif (tag.matchByTagPrefix) prefix.mapping.push(tag);\n\t\t\t\t\telse exact.mapping[tag.tagName] = tag;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst implicitScalarAnyFirstChar = implicitScalarTags.filter((tag) => tag.implicitFirstChars === null);\n\t\tconst keys = /* @__PURE__ */ new Set();\n\t\tfor (const tag of implicitScalarTags) if (tag.implicitFirstChars !== null) for (const key of tag.implicitFirstChars) keys.add(key);\n\t\tconst implicitScalarByFirstChar = /* @__PURE__ */ new Map();\n\t\tfor (const key of keys) implicitScalarByFirstChar.set(key, implicitScalarTags.filter((tag) => tag.implicitFirstChars === null || tag.implicitFirstChars.indexOf(key) !== -1));\n\t\tconst defaultScalarTag = exact.scalar[\"tag:yaml.org,2002:str\"];\n\t\tif (!defaultScalarTag) throw new Error(\"schema does not define the default scalar tag (tag:yaml.org,2002:str)\");\n\t\tthis.tags = compiledTags;\n\t\tthis.implicitScalarTags = implicitScalarTags;\n\t\tthis.implicitScalarByFirstChar = implicitScalarByFirstChar;\n\t\tthis.implicitScalarAnyFirstChar = implicitScalarAnyFirstChar;\n\t\tthis.defaultScalarTag = defaultScalarTag;\n\t\tthis.defaultSequenceTag = exact.sequence[\"tag:yaml.org,2002:seq\"];\n\t\tthis.defaultMappingTag = exact.mapping[\"tag:yaml.org,2002:map\"];\n\t\tthis.exact = exact;\n\t\tthis.prefix = prefix;\n\t}\n\t/** @internal */\n\tlookupScalarTag(tagName) {\n\t\tconst exactTag = this.exact.scalar[tagName];\n\t\tif (exactTag) return exactTag;\n\t\tfor (const tag of this.prefix.scalar) if (tagName.startsWith(tag.tagName)) return tag;\n\t}\n\t/** @internal */\n\tlookupSequenceTag(tagName) {\n\t\tconst exactTag = this.exact.sequence[tagName];\n\t\tif (exactTag) return exactTag;\n\t\tfor (const tag of this.prefix.sequence) if (tagName.startsWith(tag.tagName)) return tag;\n\t}\n\t/** @internal */\n\tlookupMappingTag(tagName) {\n\t\tconst exactTag = this.exact.mapping[tagName];\n\t\tif (exactTag) return exactTag;\n\t\tfor (const tag of this.prefix.mapping) if (tagName.startsWith(tag.tagName)) return tag;\n\t}\n\t/** @internal */\n\tresolveImplicitScalarTag(source) {\n\t\tconst candidates = this.implicitScalarByFirstChar.get(source.charAt(0)) ?? this.implicitScalarAnyFirstChar;\n\t\tfor (const tag of candidates) {\n\t\t\tconst value = tag.resolve(source, false, tag.tagName);\n\t\t\tif (value !== NOT_RESOLVED) return {\n\t\t\t\tvalue,\n\t\t\t\ttag\n\t\t\t};\n\t\t}\n\t\tconst tag = this.defaultScalarTag;\n\t\treturn {\n\t\t\tvalue: tag.resolve(source, false, tag.tagName),\n\t\t\ttag\n\t\t};\n\t}\n\t/**\n\t* Creates a new schema with the specified tags added. If a tag already\n\t* exists, it is replaced by the specified tag.\n\t*\n\t* @example\n\t*\n\t* ```javascript\n\t* import { CORE_SCHEMA, mergeTag, realMapTag } from 'js-yaml'\n\t*\n\t* const schema = CORE_SCHEMA.withTags(mergeTag, realMapTag)\n\t* ```\n\t*/\n\twithTags(...tags) {\n\t\tlet flatTags = [];\n\t\tfor (const tag of tags) flatTags = flatTags.concat(tag);\n\t\treturn new Schema([...this.tags, ...flatTags]);\n\t}\n};\n/**\n* The YAML 1.2 Failsafe Schema: strings, sequences, and mappings.\n*\n* @category Schemas\n*/\nvar FAILSAFE_SCHEMA = new Schema([\n\tstrTag,\n\tseqTag,\n\tmapTag\n]);\n/**\n* The YAML 1.2 JSON Schema. It uses JSON scalar forms while retaining YAML\n* collection syntax.\n*\n* @category Schemas\n*/\nvar JSON_SCHEMA = new Schema([\n\t...FAILSAFE_SCHEMA.tags,\n\tnullJsonTag,\n\tboolJsonTag,\n\tintJsonTag,\n\tfloatJsonTag\n]);\n/**\n* The default schema for the loaders. Note, {@link CORE_SCHEMA} comes\n* without the `!!merge` tag. You can easily enable it if needed.\n*\n* @example\n* Enable {@link mergeTag}:\n*\n* ```javascript\n* import { load, CORE_SCHEMA, mergeTag } from 'js-yaml'\n*\n* try {\n* load(data, { schema: CORE_SCHEMA.withTags(mergeTag) })\n* } catch (e) {\n* console.error(e)\n* }\n* ```\n*\n* @category Schemas\n*/\nvar CORE_SCHEMA = new Schema([\n\t...FAILSAFE_SCHEMA.tags,\n\tnullCoreTag,\n\tboolCoreTag,\n\tintCoreTag,\n\tfloatCoreTag\n]);\n/**\n* YAML 1.1-compatible schema.\n*\n* @category Schemas\n*/\nvar YAML11_SCHEMA = new Schema([\n\t...FAILSAFE_SCHEMA.tags,\n\tnullYaml11Tag,\n\tboolYaml11Tag,\n\tintYaml11Tag,\n\tfloatYaml11Tag,\n\ttimestampTag,\n\tmergeTag,\n\tbinaryTag,\n\tomapTag,\n\tpairsTag,\n\tsetTag\n]);\n/**\n* The dumper schema for maximum compatibility. It combines all supported type\n* variants from YAML 1.1 and YAML 1.2 so strings matching any of them are\n* quoted. This makes the generated YAML more compatible with other parsers.\n*\n* The schema is based on YAML 1.1, but extends `!!int` and `!!float` to accept\n* both YAML 1.1 and Core Schema forms, since Core Schema supports some forms\n* that YAML 1.1 does not.\n*\n* @category Schemas\n*/\nvar DUMP_SCHEMA = YAML11_SCHEMA.withTags({\n\t...intYaml11Tag,\n\tresolve: (source, isExplicit, tagName) => {\n\t\tconst result = intYaml11Tag.resolve(source, isExplicit, tagName);\n\t\treturn result === NOT_RESOLVED ? intCoreTag.resolve(source, isExplicit, tagName) : result;\n\t}\n}, {\n\t...floatYaml11Tag,\n\tresolve: (source, isExplicit, tagName) => {\n\t\tconst result = floatYaml11Tag.resolve(source, isExplicit, tagName);\n\t\treturn result === NOT_RESOLVED ? floatCoreTag.resolve(source, isExplicit, tagName) : result;\n\t}\n});\n//#endregion\n//#region src/tag/mapping/real_map.ts\n/**\n* Recommended when non-string keys are actually needed. It uses native\n* JavaScript `Map` objects, so keys keep their constructed types instead of\n* being converted to strings.\n*\n* It is not the default to avoid widespread breaking changes in existing\n* projects. `Map` has a different access API and does not pass deep equality\n* checks against `{}`-based fixtures. Alongside the other changes in v5,\n* making it the default was considered too disruptive.\n*\n* If these differences are acceptable for your project, we recommend using\n* {@link realMapTag} to guarantee the absence of problems and side effects.\n*\n* @example\n* Enable {@link realMapTag}:\n*\n* ```javascript\n* import { load, CORE_SCHEMA, realMapTag } from 'js-yaml'\n*\n* try {\n* load(data, { schema: CORE_SCHEMA.withTags(realMapTag) })\n* } catch (e) {\n* console.error(e)\n* }\n* ```\n*\n* @category Tags\n*/\nvar realMapTag = defineMappingTag(\"tag:yaml.org,2002:map\", {\n\tcreate: () => /* @__PURE__ */ new Map(),\n\taddPair: (container, key, value) => {\n\t\tcontainer.set(key, value);\n\t\treturn \"\";\n\t},\n\thas: (container, key) => container.has(key),\n\tkeys: (container) => container.keys(),\n\tget: (container, key) => container.get(key),\n\tidentify: (data) => data instanceof Map || isPlainObject(data),\n\trepresent: (data) => {\n\t\tif (data instanceof Map) return data;\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tconst obj = data;\n\t\tfor (const key of Object.keys(obj)) map.set(key, obj[key]);\n\t\treturn map;\n\t}\n});\n//#endregion\n//#region src/tag/mapping/legacy_map.ts\nfunction normalizeKey(key) {\n\tif (Array.isArray(key)) {\n\t\tconst array = Array.prototype.slice.call(key);\n\t\tfor (let index = 0; index < array.length; index++) {\n\t\t\tif (Array.isArray(array[index])) return null;\n\t\t\tif (typeof array[index] === \"object\" && Object.prototype.toString.call(array[index]) === \"[object Object]\") array[index] = \"[object Object]\";\n\t\t}\n\t\treturn String(array);\n\t}\n\tif (typeof key === \"object\" && Object.prototype.toString.call(key) === \"[object Object]\") return \"[object Object]\";\n\treturn String(key);\n}\n/**\n* This implementation exists solely to reproduce v4 behavior exactly. Its use\n* is strongly discouraged. If complex or non-string keys are needed, use\n* {@link realMapTag} instead.\n*\n* @category Tags\n*/\nvar legacyMapTag = defineMappingTag(\"tag:yaml.org,2002:map\", {\n\tcreate: () => ({}),\n\tidentify: isPlainObject,\n\trepresent: (o) => {\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const key of Object.keys(o)) map.set(key, o[key]);\n\t\treturn map;\n\t},\n\taddPair: (container, key, value) => {\n\t\tconst normalizedKey = normalizeKey(key);\n\t\tif (normalizedKey === null) return \"nested arrays are not supported inside keys\";\n\t\tif (normalizedKey === \"__proto__\") Object.defineProperty(container, normalizedKey, {\n\t\t\tvalue,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\telse container[normalizedKey] = value;\n\t\treturn \"\";\n\t},\n\thas: (container, key) => {\n\t\tconst normalizedKey = normalizeKey(key);\n\t\treturn normalizedKey !== null && Object.prototype.hasOwnProperty.call(container, normalizedKey);\n\t},\n\tkeys: (container) => Object.keys(container),\n\tget: (container, key) => {\n\t\tconst normalizedKey = String(key);\n\t\tif (!Object.prototype.hasOwnProperty.call(container, normalizedKey)) return null;\n\t\treturn container[normalizedKey];\n\t}\n});\n//#endregion\n//#region src/common/snippet.ts\nvar DEFAULT_SNIPPET_OPTIONS = {\n\tmaxLength: 79,\n\tindent: 1,\n\tlinesBefore: 3,\n\tlinesAfter: 2\n};\nfunction getLine(buffer, lineStart, lineEnd, position, maxLineLength) {\n\tlet head = \"\";\n\tlet tail = \"\";\n\tconst maxHalfLength = Math.floor(maxLineLength / 2) - 1;\n\tif (position - lineStart > maxHalfLength) {\n\t\thead = \" ... \";\n\t\tlineStart = position - maxHalfLength + head.length;\n\t}\n\tif (lineEnd - position > maxHalfLength) {\n\t\ttail = \" ...\";\n\t\tlineEnd = position + maxHalfLength - tail.length;\n\t}\n\treturn {\n\t\tstr: head + buffer.slice(lineStart, lineEnd).replace(/\\t/g, \"→\") + tail,\n\t\tpos: position - lineStart + head.length\n\t};\n}\nfunction padStart(string, max) {\n\treturn \" \".repeat(Math.max(max - string.length, 0)) + string;\n}\nfunction makeSnippet(mark, options) {\n\tif (!mark.buffer) return null;\n\tconst opts = {\n\t\t...DEFAULT_SNIPPET_OPTIONS,\n\t\t...options\n\t};\n\tconst re = /\\r?\\n|\\r|\\0/g;\n\tconst lineStarts = [0];\n\tconst lineEnds = [];\n\tlet match;\n\tlet foundLineNo = -1;\n\twhile (match = re.exec(mark.buffer)) {\n\t\tlineEnds.push(match.index);\n\t\tlineStarts.push(match.index + match[0].length);\n\t\tif (mark.position <= match.index && foundLineNo < 0) foundLineNo = lineStarts.length - 2;\n\t}\n\tif (foundLineNo < 0) foundLineNo = lineStarts.length - 1;\n\tlet result = \"\";\n\tconst lineNoLength = Math.min(mark.line + opts.linesAfter, lineEnds.length).toString().length;\n\tconst maxLineLength = opts.maxLength - (opts.indent + lineNoLength + 3);\n\tfor (let i = 1; i <= opts.linesBefore; i++) {\n\t\tif (foundLineNo - i < 0) break;\n\t\tconst line = getLine(mark.buffer, lineStarts[foundLineNo - i], lineEnds[foundLineNo - i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), maxLineLength);\n\t\tresult = `${\" \".repeat(opts.indent)}${padStart((mark.line - i + 1).toString(), lineNoLength)} | ${line.str}\\n${result}`;\n\t}\n\tconst line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);\n\tresult += `${\" \".repeat(opts.indent)}${padStart((mark.line + 1).toString(), lineNoLength)} | ${line.str}\\n`;\n\tresult += `${\"-\".repeat(opts.indent + lineNoLength + 3 + line.pos)}^\\n`;\n\tfor (let i = 1; i <= opts.linesAfter; i++) {\n\t\tif (foundLineNo + i >= lineEnds.length) break;\n\t\tconst line = getLine(mark.buffer, lineStarts[foundLineNo + i], lineEnds[foundLineNo + i], mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), maxLineLength);\n\t\tresult += `${\" \".repeat(opts.indent)}${padStart((mark.line + i + 1).toString(), lineNoLength)} | ${line.str}\\n`;\n\t}\n\treturn result.replace(/\\n$/, \"\");\n}\n//#endregion\n//#region src/common/exception.ts\nfunction formatError(exception, compact) {\n\tlet where = \"\";\n\tif (!exception.mark) return exception.reason;\n\tif (exception.mark.name) where += `in \"${exception.mark.name}\" `;\n\twhere += `(${exception.mark.line + 1}:${exception.mark.column + 1})`;\n\tif (!compact && exception.mark.snippet) where += `\\n\\n${exception.mark.snippet}`;\n\treturn `${exception.reason} ${where}`;\n}\n/**\n* A YAML error. Unlike an ordinary `Error`, it adds a source snippet showing\n* the location of the problem to the error message, when available.\n*\n* @category Main\n*/\nvar YAMLException = class YAMLException extends Error {\n\treason;\n\tmark;\n\t/**\n\t* Optional `mark` contains source snippet data. Usually, use\n\t* {@link YAMLException.throwAt} instead of passing it directly.\n\t*/\n\tconstructor(reason, mark) {\n\t\tsuper();\n\t\tthis.name = \"YAMLException\";\n\t\tthis.reason = reason;\n\t\tthis.mark = mark;\n\t\tthis.message = formatError(this, false);\n\t\tif (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor);\n\t}\n\t/**\n\t* Returns the formatted error, omitting the source snippet in compact mode.\n\t*/\n\ttoString(compact) {\n\t\treturn `${this.name}: ${formatError(this, compact)}`;\n\t}\n\t/**\n\t* Builds a YAMLException with a source snippet and throws it. `source` is\n\t* the raw input text; `position` is an offset into it.\n\t*/\n\tstatic throwAt(source, position, message, filename = \"\") {\n\t\tlet line = 0;\n\t\tlet lineStart = 0;\n\t\tfor (let index = 0; index < position; index++) {\n\t\t\tconst ch = source.charCodeAt(index);\n\t\t\tif (ch === 10) {\n\t\t\t\tline++;\n\t\t\t\tlineStart = index + 1;\n\t\t\t} else if (ch === 13) {\n\t\t\t\tline++;\n\t\t\t\tif (source.charCodeAt(index + 1) === 10) index++;\n\t\t\t\tlineStart = index + 1;\n\t\t\t}\n\t\t}\n\t\tconst mark = {\n\t\t\tname: filename,\n\t\t\tbuffer: source,\n\t\t\tposition,\n\t\t\tline,\n\t\t\tcolumn: position - lineStart\n\t\t};\n\t\tmark.snippet = makeSnippet(mark);\n\t\tthrow new YAMLException(message, mark);\n\t}\n};\n//#endregion\n//#region src/parser/events.ts\n/** @category Events */\nvar EVENT_ID = {\n\tDOCUMENT: 1,\n\tSEQUENCE: 2,\n\tMAPPING: 3,\n\tSCALAR: 4,\n\tALIAS: 5,\n\tPOP: 6\n};\n/** @category Nodes */\nvar SCALAR_STYLE = {\n\tPLAIN: 1,\n\tSINGLE_QUOTED: 2,\n\tDOUBLE_QUOTED: 3,\n\tLITERAL_BLOCK: 4,\n\tFOLDED_BLOCK: 5\n};\n/** @category Nodes */\nvar COLLECTION_STYLE = {\n\tBLOCK: 1,\n\tFLOW: 2\n};\n/** @category Nodes */\nvar CHOMPING_MODE = {\n\tCLIP: 1,\n\tSTRIP: 2,\n\tKEEP: 3\n};\n//#endregion\n//#region src/parser/parser_scalar.ts\nvar NO_RANGE$3 = -1;\nfunction simpleEscapeSequence(c) {\n\tswitch (c) {\n\t\tcase 48: return \"\\0\";\n\t\tcase 97: return \"\\x07\";\n\t\tcase 98: return \"\\b\";\n\t\tcase 116: return \"\t\";\n\t\tcase 9: return \"\t\";\n\t\tcase 110: return \"\\n\";\n\t\tcase 118: return \"\\v\";\n\t\tcase 102: return \"\\f\";\n\t\tcase 114: return \"\\r\";\n\t\tcase 101: return \"\\x1B\";\n\t\tcase 32: return \" \";\n\t\tcase 34: return \"\\\"\";\n\t\tcase 47: return \"/\";\n\t\tcase 92: return \"\\\\\";\n\t\tcase 78: return \"
\";\n\t\tcase 95: return \"\\xA0\";\n\t\tcase 76: return \"\\u2028\";\n\t\tcase 80: return \"\\u2029\";\n\t\tdefault: return \"\";\n\t}\n}\nvar simpleEscapeCheck = new Array(256);\nvar simpleEscapeMap = new Array(256);\nfor (let i = 0; i < 256; i++) {\n\tsimpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n\tsimpleEscapeMap[i] = simpleEscapeSequence(i);\n}\nfunction charFromCodepoint(c) {\n\tif (c <= 65535) return String.fromCharCode(c);\n\treturn String.fromCharCode((c - 65536 >> 10) + 55296, (c - 65536 & 1023) + 56320);\n}\nfunction fromHexCode$1(c) {\n\tif (c >= 48 && c <= 57) return c - 48;\n\treturn (c | 32) - 97 + 10;\n}\nfunction escapedHexLen$1(c) {\n\tif (c === 120) return 2;\n\tif (c === 117) return 4;\n\treturn 8;\n}\nfunction skipFoldedBreaks(input, position, end) {\n\tlet breaks = 0;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 10) {\n\t\t\tbreaks++;\n\t\t\tposition++;\n\t\t} else if (ch === 13) {\n\t\t\tbreaks++;\n\t\t\tposition++;\n\t\t\tif (input.charCodeAt(position) === 10) position++;\n\t\t} else if (ch === 32 || ch === 9) position++;\n\t\telse break;\n\t}\n\treturn {\n\t\tposition,\n\t\tbreaks\n\t};\n}\nfunction foldedBreaks(count) {\n\tif (count === 1) return \" \";\n\treturn \"\\n\".repeat(count - 1);\n}\nfunction getPlainValue(input, start, end) {\n\tlet result = \"\";\n\tlet position = start;\n\tlet captureStart = start;\n\tlet captureEnd = start;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 10 || ch === 13) {\n\t\t\tresult += input.slice(captureStart, captureEnd);\n\t\t\tconst fold = skipFoldedBreaks(input, position, end);\n\t\t\tresult += foldedBreaks(fold.breaks);\n\t\t\tposition = captureStart = captureEnd = fold.position;\n\t\t} else {\n\t\t\tposition++;\n\t\t\tif (ch !== 32 && ch !== 9) captureEnd = position;\n\t\t}\n\t}\n\treturn result + input.slice(captureStart, captureEnd);\n}\nfunction getSingleQuotedValue(input, start, end) {\n\tlet result = \"\";\n\tlet position = start;\n\tlet captureStart = start;\n\tlet captureEnd = start;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 39) {\n\t\t\tresult += input.slice(captureStart, position) + \"'\";\n\t\t\tposition += 2;\n\t\t\tcaptureStart = captureEnd = position;\n\t\t} else if (ch === 10 || ch === 13) {\n\t\t\tresult += input.slice(captureStart, captureEnd);\n\t\t\tconst fold = skipFoldedBreaks(input, position, end);\n\t\t\tresult += foldedBreaks(fold.breaks);\n\t\t\tposition = captureStart = captureEnd = fold.position;\n\t\t} else {\n\t\t\tposition++;\n\t\t\tif (ch !== 32 && ch !== 9) captureEnd = position;\n\t\t}\n\t}\n\treturn result + input.slice(captureStart, end);\n}\nfunction getDoubleQuotedValue(input, start, end) {\n\tlet result = \"\";\n\tlet position = start;\n\tlet captureStart = start;\n\tlet captureEnd = start;\n\twhile (position < end) {\n\t\tconst ch = input.charCodeAt(position);\n\t\tif (ch === 92) {\n\t\t\tresult += input.slice(captureStart, position);\n\t\t\tposition++;\n\t\t\tconst escaped = input.charCodeAt(position);\n\t\t\tif (escaped === 10 || escaped === 13) position = skipFoldedBreaks(input, position, end).position;\n\t\t\telse if (escaped < 256 && simpleEscapeCheck[escaped]) {\n\t\t\t\tresult += simpleEscapeMap[escaped];\n\t\t\t\tposition++;\n\t\t\t} else {\n\t\t\t\tlet hexLength = escapedHexLen$1(escaped);\n\t\t\t\tlet hexResult = 0;\n\t\t\t\tfor (; hexLength > 0; hexLength--) {\n\t\t\t\t\tposition++;\n\t\t\t\t\tconst digit = fromHexCode$1(input.charCodeAt(position));\n\t\t\t\t\thexResult = (hexResult << 4) + digit;\n\t\t\t\t}\n\t\t\t\tresult += charFromCodepoint(hexResult);\n\t\t\t\tposition++;\n\t\t\t}\n\t\t\tcaptureStart = captureEnd = position;\n\t\t} else if (ch === 10 || ch === 13) {\n\t\t\tresult += input.slice(captureStart, captureEnd);\n\t\t\tconst fold = skipFoldedBreaks(input, position, end);\n\t\t\tresult += foldedBreaks(fold.breaks);\n\t\t\tposition = captureStart = captureEnd = fold.position;\n\t\t} else {\n\t\t\tposition++;\n\t\t\tif (ch !== 32 && ch !== 9) captureEnd = position;\n\t\t}\n\t}\n\treturn result + input.slice(captureStart, end);\n}\nfunction getBlockValue(input, start, end, indent, chomping, folded) {\n\tconst textIndent = indent < 0 ? 0 : indent;\n\tconst region = input.slice(start, end).replace(/\\r\\n?/g, \"\\n\");\n\tconst lines = region === \"\" ? [] : (region.endsWith(\"\\n\") ? region.slice(0, -1) : region).split(\"\\n\");\n\tlet result = \"\";\n\tlet didReadContent = false;\n\tlet emptyLines = 0;\n\tlet atMoreIndented = false;\n\tfor (const line of lines) {\n\t\tlet column = 0;\n\t\twhile (column < textIndent && line.charCodeAt(column) === 32) column++;\n\t\tif (indent < 0 || column >= line.length) {\n\t\t\temptyLines++;\n\t\t\tcontinue;\n\t\t}\n\t\tconst content = line.slice(textIndent);\n\t\tconst first = content.charCodeAt(0);\n\t\tif (folded) if (first === 32 || first === 9) {\n\t\t\tatMoreIndented = true;\n\t\t\tresult += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n\t\t} else if (atMoreIndented) {\n\t\t\tatMoreIndented = false;\n\t\t\tresult += \"\\n\".repeat(emptyLines + 1);\n\t\t} else if (emptyLines === 0) {\n\t\t\tif (didReadContent) result += \" \";\n\t\t} else result += \"\\n\".repeat(emptyLines);\n\t\telse result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n\t\tresult += content;\n\t\tdidReadContent = true;\n\t\temptyLines = 0;\n\t}\n\tif (chomping === CHOMPING_MODE.KEEP) result += \"\\n\".repeat(didReadContent ? 1 + emptyLines : emptyLines);\n\telse if (chomping !== CHOMPING_MODE.STRIP) {\n\t\tif (didReadContent) result += \"\\n\";\n\t}\n\treturn result;\n}\n/**\n* Decodes the scalar referenced by event offsets in `input`.\n*\n* @category Events\n*/\nfunction getScalarValue(input, scalar) {\n\tif (scalar.valueStart === NO_RANGE$3) return \"\";\n\tconst { valueStart, valueEnd } = scalar;\n\tif (scalar.fast) return input.slice(valueStart, valueEnd);\n\tswitch (scalar.style) {\n\t\tcase SCALAR_STYLE.SINGLE_QUOTED: return getSingleQuotedValue(input, valueStart, valueEnd);\n\t\tcase SCALAR_STYLE.DOUBLE_QUOTED: return getDoubleQuotedValue(input, valueStart, valueEnd);\n\t\tcase SCALAR_STYLE.LITERAL_BLOCK: return getBlockValue(input, valueStart, valueEnd, scalar.indent, scalar.chomping, false);\n\t\tcase SCALAR_STYLE.FOLDED_BLOCK: return getBlockValue(input, valueStart, valueEnd, scalar.indent, scalar.chomping, true);\n\t\tdefault: return getPlainValue(input, valueStart, valueEnd);\n\t}\n}\n//#endregion\n//#region src/common/tagname.ts\nvar DEFAULT_TAG_HANDLERS = Object.assign(Object.create(null), {\n\t\"!\": \"!\",\n\t\"!!\": \"tag:yaml.org,2002:\"\n});\nfunction tagPercentEncode(source) {\n\treturn encodeURI(source).replace(/!/g, \"%21\");\n}\nfunction tagNameFull(rawTag, tagHandlers) {\n\tif (rawTag.startsWith(\"!<\") && rawTag.endsWith(\">\")) return decodeURIComponent(rawTag.slice(2, -1));\n\tconst handleEnd = rawTag.indexOf(\"!\", 1);\n\tconst handle = handleEnd === -1 ? \"!\" : rawTag.slice(0, handleEnd + 1);\n\tconst prefix = tagHandlers?.[handle] ?? DEFAULT_TAG_HANDLERS[handle] ?? handle;\n\treturn decodeURIComponent(prefix) + decodeURIComponent(rawTag.slice(handle.length));\n}\nfunction tagNameShort(fullTag) {\n\tlet tag = fullTag;\n\tif (tag.charCodeAt(0) === 33) {\n\t\ttag = tag.slice(1);\n\t\treturn `!${tagPercentEncode(tag)}`;\n\t}\n\tif (tag.slice(0, 18) === \"tag:yaml.org,2002:\") return `!!${tagPercentEncode(tag.slice(18))}`;\n\treturn `!<${tagPercentEncode(tag)}>`;\n}\n//#endregion\n//#region src/parser/constructor.ts\nvar NO_RANGE$2 = -1;\nvar MERGE_TAG_NAME = \"tag:yaml.org,2002:merge\";\nvar DEFAULT_CONSTRUCTOR_OPTIONS = {\n\tfilename: \"\",\n\tschema: CORE_SCHEMA,\n\tjson: false,\n\tmaxTotalMergeKeys: 1e4,\n\tmaxAliases: -1\n};\nfunction eventPosition$1(event) {\n\tif (\"tagStart\" in event && event.tagStart !== NO_RANGE$2) return event.tagStart;\n\tif (\"anchorStart\" in event && event.anchorStart !== NO_RANGE$2) return event.anchorStart;\n\tif (\"valueStart\" in event && event.valueStart !== NO_RANGE$2) return event.valueStart;\n\tif (\"start\" in event) return event.start;\n\treturn 0;\n}\nfunction throwError$1(state, message) {\n\tYAMLException.throwAt(state.source, state.position, message, state.filename);\n}\nfunction finalizeCollection(state, position, tag, carrier) {\n\ttry {\n\t\treturn tag.finalize(carrier);\n\t} catch (error) {\n\t\tif (error instanceof YAMLException) throw error;\n\t\tYAMLException.throwAt(state.source, position, error instanceof Error ? error.message : String(error), state.filename);\n\t}\n}\nfunction constructScalar(state, event) {\n\tconst source = getScalarValue(state.source, event);\n\tconst rawTag = event.tagStart === NO_RANGE$2 ? \"\" : state.source.slice(event.tagStart, event.tagEnd);\n\tconst strTag = state.schema.defaultScalarTag;\n\tif (rawTag !== \"\") {\n\t\tif (rawTag === \"!\") return {\n\t\t\tvalue: source,\n\t\t\ttag: strTag\n\t\t};\n\t\tconst tagName = tagNameFull(rawTag, state.tagHandlers);\n\t\tconst scalarTag = state.schema.lookupScalarTag(tagName);\n\t\tif (scalarTag) {\n\t\t\tconst result = scalarTag.resolve(source, true, tagName);\n\t\t\tif (result === NOT_RESOLVED) throwError$1(state, `cannot resolve a node with !<${tagName}> explicit tag`);\n\t\t\treturn {\n\t\t\t\tvalue: result,\n\t\t\t\ttag: scalarTag\n\t\t\t};\n\t\t}\n\t\tconst collectionTagDef = state.schema.lookupMappingTag(tagName) ?? state.schema.lookupSequenceTag(tagName);\n\t\tif (collectionTagDef) {\n\t\t\tif (source !== \"\") throwError$1(state, `cannot resolve a node with !<${tagName}> explicit tag`);\n\t\t\tconst carrier = collectionTagDef.create(tagName);\n\t\t\treturn {\n\t\t\t\tvalue: collectionTagDef.carrierIsResult ? carrier : finalizeCollection(state, state.position, collectionTagDef, carrier),\n\t\t\t\ttag: collectionTagDef\n\t\t\t};\n\t\t}\n\t\tthrowError$1(state, `unknown scalar tag !<${tagName}>`);\n\t}\n\tif (event.style === SCALAR_STYLE.PLAIN) return state.schema.resolveImplicitScalarTag(source);\n\treturn {\n\t\tvalue: strTag.resolve(source, false, strTag.tagName),\n\t\ttag: strTag\n\t};\n}\nfunction collectionTagName(state, event, defaultTagName) {\n\tconst rawTag = event.tagStart === NO_RANGE$2 ? \"\" : state.source.slice(event.tagStart, event.tagEnd);\n\treturn rawTag === \"\" || rawTag === \"!\" ? defaultTagName : tagNameFull(rawTag, state.tagHandlers);\n}\nfunction isMappingTag(tag) {\n\treturn tag.nodeKind === \"mapping\";\n}\nfunction chargeMergeWork(state) {\n\tstate.totalMergeKeys++;\n\tif (state.maxTotalMergeKeys !== -1 && state.totalMergeKeys > state.maxTotalMergeKeys) throwError$1(state, `merge keys exceeded maxTotalMergeKeys (${state.maxTotalMergeKeys})`);\n}\nfunction mergeKeys(state, frame, source, sourceTag) {\n\tchargeMergeWork(state);\n\tfor (const sourceKey of sourceTag.keys(source)) {\n\t\tchargeMergeWork(state);\n\t\tif (frame.tag.has(frame.value, sourceKey)) continue;\n\t\tconst err = frame.tag.addPair(frame.value, sourceKey, sourceTag.get(source, sourceKey));\n\t\tif (err) throwError$1(state, err);\n\t\tframe.overridable ??= /* @__PURE__ */ new Set();\n\t\tframe.overridable.add(sourceKey);\n\t}\n}\nfunction mergeSource(state, frame, source, sourceTag) {\n\tstate.position = frame.keyPosition;\n\tif (isMappingTag(sourceTag)) mergeKeys(state, frame, source, sourceTag);\n\telse if (sourceTag.nodeKind === \"sequence\" && Array.isArray(source)) {\n\t\tif (source.length > 100) throwError$1(state, \"abnormal merge sequence size\");\n\t\tfor (const element of source) {\n\t\t\tconst elementTag = state.nodeTags.get(element);\n\t\t\tif (!elementTag) throwError$1(state, \"cannot merge mappings; the provided source object is unacceptable\");\n\t\t\tmergeKeys(state, frame, element, elementTag);\n\t\t}\n\t} else throwError$1(state, \"cannot merge mappings; the provided source object is unacceptable\");\n}\nfunction addMappingValue(state, frame, key, value, tag) {\n\tstate.position = frame.keyPosition;\n\tif (frame.keyIsMerge) {\n\t\tmergeSource(state, frame, value, tag);\n\t\treturn;\n\t}\n\tif (!state.json && frame.tag.has(frame.value, key) && !frame.overridable?.has(key)) throwError$1(state, \"duplicated mapping key\");\n\tconst err = frame.tag.addPair(frame.value, key, value);\n\tif (err) throwError$1(state, err);\n\tframe.overridable?.delete(key);\n}\nfunction addValue(state, value, tag) {\n\tconst frame = state.frames[state.frames.length - 1];\n\tif (frame.kind === \"document\") {\n\t\tframe.value = value;\n\t\tframe.hasValue = true;\n\t} else if (frame.kind === \"sequence\") {\n\t\tif (isMappingTag(tag)) state.nodeTags.set(value, tag);\n\t\tconst err = frame.tag.addItem(frame.value, value, frame.index++);\n\t\tif (err) throwError$1(state, err);\n\t} else if (frame.hasKey) {\n\t\tconst key = frame.key;\n\t\tframe.key = void 0;\n\t\tframe.hasKey = false;\n\t\taddMappingValue(state, frame, key, value, tag);\n\t} else {\n\t\tframe.key = value;\n\t\tframe.keyPosition = state.position;\n\t\tframe.hasKey = true;\n\t\tframe.keyIsMerge = tag.tagName === MERGE_TAG_NAME;\n\t}\n}\nfunction storeAnchor(state, event, value, tag, isValueFinal) {\n\tif (event.anchorStart !== NO_RANGE$2) {\n\t\tconst anchor = {\n\t\t\tvalue,\n\t\t\ttag,\n\t\t\tisValueFinal\n\t\t};\n\t\tstate.anchors.set(state.source.slice(event.anchorStart, event.anchorEnd), anchor);\n\t\treturn anchor;\n\t}\n\treturn null;\n}\n/**\n* Constructs JavaScript documents directly from parser events, without an\n* intermediate AST.\n*\n* @category Events\n*/\nfunction constructFromEvents(events, options) {\n\tconst state = {\n\t\t...DEFAULT_CONSTRUCTOR_OPTIONS,\n\t\t...options,\n\t\tevents,\n\t\tdocuments: [],\n\t\teventIndex: 0,\n\t\tposition: 0,\n\t\tframes: [],\n\t\tanchors: /* @__PURE__ */ new Map(),\n\t\tnodeTags: /* @__PURE__ */ new Map(),\n\t\ttagHandlers: Object.create(null),\n\t\ttotalMergeKeys: 0,\n\t\taliasCount: 0\n\t};\n\twhile (state.eventIndex < state.events.length) {\n\t\tconst event = state.events[state.eventIndex++];\n\t\tstate.position = eventPosition$1(event);\n\t\tswitch (event.type) {\n\t\t\tcase EVENT_ID.DOCUMENT:\n\t\t\t\tstate.anchors = /* @__PURE__ */ new Map();\n\t\t\t\tstate.nodeTags = /* @__PURE__ */ new Map();\n\t\t\t\tstate.aliasCount = 0;\n\t\t\t\tstate.tagHandlers = Object.create(null);\n\t\t\t\tfor (const directive of event.directives) if (directive.kind === \"tag\") state.tagHandlers[directive.handle] = directive.prefix;\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"document\",\n\t\t\t\t\tposition: state.position,\n\t\t\t\t\tvalue: void 0,\n\t\t\t\t\thasValue: false\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase EVENT_ID.SCALAR: {\n\t\t\t\tconst { value, tag } = constructScalar(state, event);\n\t\t\t\tstoreAnchor(state, event, value, tag, true);\n\t\t\t\taddValue(state, value, tag);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.SEQUENCE: {\n\t\t\t\tconst tagName = collectionTagName(state, event, \"tag:yaml.org,2002:seq\");\n\t\t\t\tconst tag = state.schema.lookupSequenceTag(tagName);\n\t\t\t\tif (!tag) throwError$1(state, `unknown sequence tag !<${tagName}>`);\n\t\t\t\tconst value = tag.create(tagName);\n\t\t\t\tconst anchor = storeAnchor(state, event, value, tag, tag.carrierIsResult);\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"sequence\",\n\t\t\t\t\tposition: state.position,\n\t\t\t\t\tvalue,\n\t\t\t\t\ttag,\n\t\t\t\t\tanchor,\n\t\t\t\t\tindex: 0\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.MAPPING: {\n\t\t\t\tconst tagName = collectionTagName(state, event, \"tag:yaml.org,2002:map\");\n\t\t\t\tconst tag = state.schema.lookupMappingTag(tagName);\n\t\t\t\tif (!tag) throwError$1(state, `unknown mapping tag !<${tagName}>`);\n\t\t\t\tconst value = tag.create(tagName);\n\t\t\t\tconst anchor = storeAnchor(state, event, value, tag, tag.carrierIsResult);\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"mapping\",\n\t\t\t\t\tposition: state.position,\n\t\t\t\t\tvalue,\n\t\t\t\t\ttag,\n\t\t\t\t\tanchor,\n\t\t\t\t\tkey: void 0,\n\t\t\t\t\tkeyPosition: state.position,\n\t\t\t\t\thasKey: false,\n\t\t\t\t\tkeyIsMerge: false,\n\t\t\t\t\toverridable: null\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.ALIAS: {\n\t\t\t\tif (state.maxAliases !== -1 && ++state.aliasCount > state.maxAliases) throwError$1(state, `aliases exceeded maxAliases (${state.maxAliases})`);\n\t\t\t\tconst name = state.source.slice(event.anchorStart, event.anchorEnd);\n\t\t\t\tconst anchor = state.anchors.get(name);\n\t\t\t\tif (!anchor) throwError$1(state, `unidentified alias \"${name}\"`);\n\t\t\t\tif (!anchor.isValueFinal) throwError$1(state, `recursive alias \"${name}\" is not supported for tag ${anchor.tag.tagName} because it uses finalize()`);\n\t\t\t\taddValue(state, anchor.value, anchor.tag);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.POP: {\n\t\t\t\tconst frame = state.frames.pop();\n\t\t\t\tif (frame.kind === \"mapping\" && frame.hasKey) {\n\t\t\t\t\tstate.position = frame.keyPosition;\n\t\t\t\t\tthrowError$1(state, \"incomplete mapping pair in event stream\");\n\t\t\t\t}\n\t\t\t\tif (frame.kind === \"document\") state.documents.push(frame.value);\n\t\t\t\telse {\n\t\t\t\t\tconst value = frame.tag.carrierIsResult ? frame.value : finalizeCollection(state, frame.position, frame.tag, frame.value);\n\t\t\t\t\tif (frame.anchor) {\n\t\t\t\t\t\tframe.anchor.value = value;\n\t\t\t\t\t\tframe.anchor.isValueFinal = true;\n\t\t\t\t\t}\n\t\t\t\t\taddValue(state, value, frame.tag);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn state.documents;\n}\n//#endregion\n//#region src/parser/parser.ts\nvar NO_RANGE$1 = -1;\nvar HAS_OWN = Object.prototype.hasOwnProperty;\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]{}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![0-9A-Za-z-]+!)$/;\nvar NS_URI_CHAR = String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]])`;\nvar NS_TAG_CHAR = String.raw`(?:%[0-9A-Fa-f]{2}|[0-9A-Za-z\\-#;/?:@&=+$.~*'()_])`;\nvar PATTERN_TAG_URI = new RegExp(`^(?:${NS_URI_CHAR})*$`);\nvar PATTERN_TAG_SUFFIX = new RegExp(`^(?:${NS_TAG_CHAR})+$`);\nvar PATTERN_TAG_PREFIX = new RegExp(`^(?:!(?:${NS_URI_CHAR})*|${NS_TAG_CHAR}(?:${NS_URI_CHAR})*)$`);\nvar DEFAULT_PARSER_OPTIONS = {\n\tfilename: \"\",\n\tmaxDepth: 100\n};\nfunction addDocumentEvent(state, explicitStart, explicitEnd) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.DOCUMENT,\n\t\texplicitStart,\n\t\texplicitEnd,\n\t\tdirectives: state.directives\n\t});\n}\nfunction addSequenceEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd, style) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.SEQUENCE,\n\t\tstart,\n\t\tanchorStart,\n\t\tanchorEnd,\n\t\ttagStart,\n\t\ttagEnd,\n\t\tstyle\n\t});\n}\nfunction addMappingEvent(state, start, anchorStart, anchorEnd, tagStart, tagEnd, style) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.MAPPING,\n\t\tstart,\n\t\tanchorStart,\n\t\tanchorEnd,\n\t\ttagStart,\n\t\ttagEnd,\n\t\tstyle\n\t});\n}\nfunction insertFlowPairMappingEvent(state, snapshot) {\n\tstate.events.splice(snapshot.eventsLength, 0, {\n\t\ttype: EVENT_ID.MAPPING,\n\t\tstart: snapshot.position,\n\t\tanchorStart: NO_RANGE$1,\n\t\tanchorEnd: NO_RANGE$1,\n\t\ttagStart: NO_RANGE$1,\n\t\ttagEnd: NO_RANGE$1,\n\t\tstyle: COLLECTION_STYLE.FLOW\n\t});\n}\nfunction addScalarEvent(state, valueStart, valueEnd, anchorStart, anchorEnd, tagStart, tagEnd, style, chomping = CHOMPING_MODE.CLIP, indent = -1, fast = false) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.SCALAR,\n\t\tvalueStart,\n\t\tvalueEnd,\n\t\tanchorStart,\n\t\tanchorEnd,\n\t\ttagStart,\n\t\ttagEnd,\n\t\tstyle,\n\t\tchomping,\n\t\tindent,\n\t\tfast\n\t});\n}\nfunction addAliasEvent(state, anchorStart, anchorEnd) {\n\tstate.events.push({\n\t\ttype: EVENT_ID.ALIAS,\n\t\tanchorStart,\n\t\tanchorEnd\n\t});\n}\nfunction addPopEvent(state) {\n\tstate.events.push({ type: EVENT_ID.POP });\n}\nfunction addEmptyScalarEvent(state) {\n\taddScalarEvent(state, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, NO_RANGE$1, SCALAR_STYLE.PLAIN);\n}\nfunction emptyProperties() {\n\treturn {\n\t\tanchorStart: NO_RANGE$1,\n\t\tanchorEnd: NO_RANGE$1,\n\t\ttagStart: NO_RANGE$1,\n\t\ttagEnd: NO_RANGE$1\n\t};\n}\nfunction snapshotState(state) {\n\treturn {\n\t\tposition: state.position,\n\t\tline: state.line,\n\t\tlineStart: state.lineStart,\n\t\tlineIndent: state.lineIndent,\n\t\tfirstTabInLine: state.firstTabInLine,\n\t\teventsLength: state.events.length\n\t};\n}\nfunction restoreState(state, snapshot) {\n\tstate.position = snapshot.position;\n\tstate.line = snapshot.line;\n\tstate.lineStart = snapshot.lineStart;\n\tstate.lineIndent = snapshot.lineIndent;\n\tstate.firstTabInLine = snapshot.firstTabInLine;\n\tstate.events.length = snapshot.eventsLength;\n}\nfunction throwError(state, message) {\n\tYAMLException.throwAt(state.input.slice(0, state.length), state.position, message, state.filename);\n}\nfunction isEol(c) {\n\treturn c === 10 || c === 13;\n}\nfunction isWhiteSpace(c) {\n\treturn c === 9 || c === 32;\n}\nfunction isWsOrEol(c) {\n\treturn isWhiteSpace(c) || isEol(c);\n}\nfunction isWsOrEolOrEnd(c) {\n\treturn c === 0 || isWsOrEol(c);\n}\nfunction isFlowIndicator(c) {\n\treturn c === 44 || c === 91 || c === 93 || c === 123 || c === 125;\n}\nfunction fromDecimalCode(c) {\n\treturn c >= 48 && c <= 57 ? c - 48 : -1;\n}\nfunction fromHexCode(c) {\n\tif (c >= 48 && c <= 57) return c - 48;\n\tconst lc = c | 32;\n\tif (lc >= 97 && lc <= 102) return lc - 97 + 10;\n\treturn -1;\n}\nfunction escapedHexLen(c) {\n\tif (c === 120) return 2;\n\tif (c === 117) return 4;\n\tif (c === 85) return 8;\n\treturn 0;\n}\nfunction isSimpleEscape(c) {\n\treturn c === 48 || c === 97 || c === 98 || c === 116 || c === 9 || c === 110 || c === 118 || c === 102 || c === 114 || c === 101 || c === 32 || c === 34 || c === 47 || c === 92 || c === 78 || c === 95 || c === 76 || c === 80;\n}\nfunction consumeLineBreak(state) {\n\tif (state.input.charCodeAt(state.position) === 10) state.position++;\n\telse {\n\t\tstate.position++;\n\t\tif (state.input.charCodeAt(state.position) === 10) state.position++;\n\t}\n\tstate.line++;\n\tstate.lineStart = state.position;\n\tstate.lineIndent = 0;\n\tstate.firstTabInLine = -1;\n}\nfunction skipSeparationSpace(state, allowComments) {\n\tlet lineBreaks = 0;\n\tlet ch = state.input.charCodeAt(state.position);\n\tlet hasSeparation = state.position === state.lineStart || isWsOrEol(state.input.charCodeAt(state.position - 1));\n\twhile (ch !== 0) {\n\t\twhile (isWhiteSpace(ch)) {\n\t\t\thasSeparation = true;\n\t\t\tif (ch === 9 && state.firstTabInLine === -1) state.firstTabInLine = state.position;\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t}\n\t\tif (allowComments && hasSeparation && ch === 35) do\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\twhile (!isEol(ch) && ch !== 0);\n\t\tif (!isEol(ch)) break;\n\t\tconsumeLineBreak(state);\n\t\tlineBreaks++;\n\t\thasSeparation = true;\n\t\tch = state.input.charCodeAt(state.position);\n\t\twhile (ch === 32) {\n\t\t\tstate.lineIndent++;\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t}\n\t}\n\treturn lineBreaks;\n}\nfunction testDocumentSeparator(state, position = state.position) {\n\tconst ch = state.input.charCodeAt(position);\n\tif ((ch === 45 || ch === 46) && ch === state.input.charCodeAt(position + 1) && ch === state.input.charCodeAt(position + 2)) {\n\t\tconst following = state.input.charCodeAt(position + 3);\n\t\treturn following === 0 || isWsOrEol(following);\n\t}\n\treturn false;\n}\nfunction skipByteOrderMark(state) {\n\tif (state.position === state.lineStart && state.input.charCodeAt(state.position) === 65279) {\n\t\tstate.position++;\n\t\tstate.lineStart = state.position;\n\t}\n}\nfunction testDocumentBoundary(state) {\n\tif (state.position !== state.lineStart) return false;\n\tif (testDocumentSeparator(state)) return true;\n\tif (state.input.charCodeAt(state.position) !== 65279) return false;\n\tconst snapshot = snapshotState(state);\n\tskipByteOrderMark(state);\n\tskipSeparationSpace(state, true);\n\tconst ch = state.input.charCodeAt(state.position);\n\tconst result = state.position === state.lineStart && (ch === 37 || ch === 45 && testDocumentSeparator(state));\n\trestoreState(state, snapshot);\n\treturn result;\n}\nfunction skipUntilLineEnd(state) {\n\tlet ch = state.input.charCodeAt(state.position);\n\twhile (ch !== 0 && !isEol(ch)) ch = state.input.charCodeAt(++state.position);\n}\nfunction checkPrintable(state, start, end) {\n\tif (PATTERN_NON_PRINTABLE.test(state.input.slice(start, end))) throwError(state, \"the stream contains non-printable characters\");\n}\nfunction readTagProperty(state, props, inFlow) {\n\tif (state.input.charCodeAt(state.position) !== 33) return false;\n\tif (props.tagStart !== NO_RANGE$1) throwError(state, \"duplication of a tag property\");\n\tconst start = state.position;\n\tlet isVerbatim = false;\n\tlet isNamed = false;\n\tlet tagHandle = \"!\";\n\tlet ch = state.input.charCodeAt(++state.position);\n\tif (ch === 60) {\n\t\tisVerbatim = true;\n\t\tch = state.input.charCodeAt(++state.position);\n\t} else if (ch === 33) {\n\t\tisNamed = true;\n\t\ttagHandle = \"!!\";\n\t\tch = state.input.charCodeAt(++state.position);\n\t}\n\tlet suffixStart = state.position;\n\tlet tagName;\n\tif (isVerbatim) {\n\t\twhile (ch !== 0 && ch !== 62) ch = state.input.charCodeAt(++state.position);\n\t\tif (ch !== 62) throwError(state, \"unexpected end of the stream within a verbatim tag\");\n\t\ttagName = state.input.slice(suffixStart, state.position);\n\t\tstate.position++;\n\t} else {\n\t\twhile (ch !== 0 && !isWsOrEol(ch) && !(inFlow && isFlowIndicator(ch))) {\n\t\t\tif (ch === 33) if (!isNamed) {\n\t\t\t\ttagHandle = state.input.slice(suffixStart - 1, state.position + 1);\n\t\t\t\tif (!PATTERN_TAG_HANDLE.test(tagHandle)) throwError(state, \"named tag handle cannot contain such characters\");\n\t\t\t\tisNamed = true;\n\t\t\t\tsuffixStart = state.position + 1;\n\t\t\t} else throwError(state, \"tag suffix cannot contain exclamation marks\");\n\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t}\n\t\ttagName = state.input.slice(suffixStart, state.position);\n\t\tif (PATTERN_FLOW_INDICATORS.test(tagName)) throwError(state, \"tag suffix cannot contain flow indicator characters\");\n\t}\n\tif (tagName && !(isVerbatim ? PATTERN_TAG_URI.test(tagName) : PATTERN_TAG_SUFFIX.test(tagName))) throwError(state, `tag name cannot contain such characters: ${tagName}`);\n\tif (!isVerbatim && tagHandle !== \"!\" && tagHandle !== \"!!\" && !HAS_OWN.call(state.tagHandlers, tagHandle)) throwError(state, `undeclared tag handle \"${tagHandle}\"`);\n\tprops.tagStart = start;\n\tprops.tagEnd = state.position;\n\treturn true;\n}\nfunction readAnchorProperty(state, props) {\n\tif (state.input.charCodeAt(state.position) !== 38) return false;\n\tif (props.anchorStart !== NO_RANGE$1) throwError(state, \"duplication of an anchor property\");\n\tstate.position++;\n\tconst start = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position)) && !isFlowIndicator(state.input.charCodeAt(state.position))) state.position++;\n\tif (state.position === start) throwError(state, \"name of an anchor node must contain at least one character\");\n\tprops.anchorStart = start;\n\tprops.anchorEnd = state.position;\n\treturn true;\n}\nfunction readAlias(state, props) {\n\tif (state.input.charCodeAt(state.position) !== 42) return false;\n\tif (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) throwError(state, \"alias node should not have any properties\");\n\tstate.position++;\n\tconst start = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position)) && !isFlowIndicator(state.input.charCodeAt(state.position))) state.position++;\n\tif (state.position === start) throwError(state, \"name of an alias node must contain at least one character\");\n\taddAliasEvent(state, start, state.position);\n\treturn true;\n}\nfunction readFlowScalarBreak(state, nodeIndent) {\n\tskipSeparationSpace(state, false);\n\tif (state.lineIndent < nodeIndent) throwError(state, \"deficient indentation\");\n}\nfunction readSingleQuotedScalar(state, nodeIndent, props) {\n\tif (state.input.charCodeAt(state.position) !== 39) return false;\n\tstate.position++;\n\tconst start = state.position;\n\tlet simple = true;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst ch = state.input.charCodeAt(state.position);\n\t\tif (ch === 39) {\n\t\t\tif (state.input.charCodeAt(state.position + 1) === 39) {\n\t\t\t\tsimple = false;\n\t\t\t\tstate.position += 2;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst end = state.position;\n\t\t\tstate.position++;\n\t\t\taddScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.SINGLE_QUOTED, CHOMPING_MODE.CLIP, -1, simple);\n\t\t\treturn true;\n\t\t}\n\t\tif (isEol(ch)) {\n\t\t\tsimple = false;\n\t\t\treadFlowScalarBreak(state, nodeIndent);\n\t\t} else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a single quoted scalar\");\n\t\telse if (ch !== 9 && ch < 32) throwError(state, \"expected valid JSON character\");\n\t\telse state.position++;\n\t}\n\tthrowError(state, \"unexpected end of the stream within a single quoted scalar\");\n}\nfunction readDoubleQuotedScalar(state, nodeIndent, props) {\n\tif (state.input.charCodeAt(state.position) !== 34) return false;\n\tstate.position++;\n\tconst start = state.position;\n\tlet simple = true;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst ch = state.input.charCodeAt(state.position);\n\t\tif (ch === 34) {\n\t\t\tconst end = state.position;\n\t\t\tstate.position++;\n\t\t\taddScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.DOUBLE_QUOTED, CHOMPING_MODE.CLIP, -1, simple);\n\t\t\treturn true;\n\t\t}\n\t\tif (ch === 92) {\n\t\t\tsimple = false;\n\t\t\tconst escaped = state.input.charCodeAt(++state.position);\n\t\t\tif (isEol(escaped)) readFlowScalarBreak(state, nodeIndent);\n\t\t\telse if (isSimpleEscape(escaped)) state.position++;\n\t\t\telse {\n\t\t\t\tlet hexLength = escapedHexLen(escaped);\n\t\t\t\tif (hexLength === 0) throwError(state, \"unknown escape sequence\");\n\t\t\t\twhile (hexLength-- > 0) {\n\t\t\t\t\tstate.position++;\n\t\t\t\t\tif (fromHexCode(state.input.charCodeAt(state.position)) < 0) throwError(state, \"expected hexadecimal character\");\n\t\t\t\t}\n\t\t\t\tstate.position++;\n\t\t\t}\n\t\t} else if (isEol(ch)) {\n\t\t\tsimple = false;\n\t\t\treadFlowScalarBreak(state, nodeIndent);\n\t\t} else if (state.position === state.lineStart && testDocumentSeparator(state)) throwError(state, \"unexpected end of the document within a double quoted scalar\");\n\t\telse if (ch !== 9 && ch < 32) throwError(state, \"expected valid JSON character\");\n\t\telse state.position++;\n\t}\n\tthrowError(state, \"unexpected end of the stream within a double quoted scalar\");\n}\nfunction readBlockScalar(state, parentIndent, props) {\n\tconst ch = state.input.charCodeAt(state.position);\n\tlet chomping = CHOMPING_MODE.CLIP;\n\tlet indent = -1;\n\tlet detectedIndent = false;\n\tif (ch !== 124 && ch !== 62) return false;\n\tconst style = ch === 124 ? SCALAR_STYLE.LITERAL_BLOCK : SCALAR_STYLE.FOLDED_BLOCK;\n\tstate.position++;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst current = state.input.charCodeAt(state.position);\n\t\tconst digit = fromDecimalCode(current);\n\t\tif (current === 43 || current === 45) {\n\t\t\tif (chomping !== CHOMPING_MODE.CLIP) throwError(state, \"repeat of a chomping mode identifier\");\n\t\t\tchomping = current === 43 ? CHOMPING_MODE.KEEP : CHOMPING_MODE.STRIP;\n\t\t\tstate.position++;\n\t\t} else if (digit >= 0) {\n\t\t\tif (digit === 0) throwError(state, \"bad explicit indentation width of a block scalar; it cannot be less than one\");\n\t\t\tif (detectedIndent) throwError(state, \"repeat of an indentation width identifier\");\n\t\t\tindent = parentIndent + digit - 1;\n\t\t\tdetectedIndent = true;\n\t\t\tstate.position++;\n\t\t} else break;\n\t}\n\tlet hadWhitespace = false;\n\twhile (isWhiteSpace(state.input.charCodeAt(state.position))) {\n\t\thadWhitespace = true;\n\t\tstate.position++;\n\t}\n\tif (hadWhitespace && state.input.charCodeAt(state.position) === 35) skipUntilLineEnd(state);\n\tif (isEol(state.input.charCodeAt(state.position))) consumeLineBreak(state);\n\telse if (state.input.charCodeAt(state.position) !== 0) throwError(state, \"a line break is expected\");\n\tlet contentIndent = detectedIndent ? indent : -1;\n\tlet maxLeadingIndent = 0;\n\tconst valueStart = state.position;\n\tlet valueEnd = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tconst linePosition = state.position;\n\t\tlet column = 0;\n\t\twhile (state.input.charCodeAt(linePosition + column) === 32) column++;\n\t\tconst first = state.input.charCodeAt(linePosition + column);\n\t\tif (first === 0) {\n\t\t\tif (contentIndent >= 0) {\n\t\t\t\tif (column > contentIndent) valueEnd = linePosition + column;\n\t\t\t} else if (column > 0) valueEnd = linePosition + column;\n\t\t\tbreak;\n\t\t}\n\t\tif (testDocumentBoundary(state)) break;\n\t\tif (!detectedIndent && contentIndent === -1 && isEol(first)) maxLeadingIndent = Math.max(maxLeadingIndent, column);\n\t\tif (!detectedIndent && contentIndent === -1 && !isEol(first)) {\n\t\t\tif (first === 9 && column < parentIndent) {\n\t\t\t\tstate.position = linePosition + column;\n\t\t\t\tthrowError(state, \"tab characters must not be used in indentation\");\n\t\t\t}\n\t\t\tif (column < maxLeadingIndent) {\n\t\t\t\tstate.position = linePosition + column;\n\t\t\t\tthrowError(state, \"bad indentation of a mapping entry\");\n\t\t\t}\n\t\t}\n\t\tif (contentIndent === -1 && first !== 0 && !isEol(first) && column < parentIndent) {\n\t\t\tstate.lineIndent = column;\n\t\t\tstate.position = linePosition + column;\n\t\t\tbreak;\n\t\t}\n\t\tif (!detectedIndent && first !== 0 && !isEol(first) && contentIndent === -1) contentIndent = column;\n\t\tconst requiredIndent = contentIndent === -1 ? parentIndent + 1 : contentIndent;\n\t\tif (first !== 0 && !isEol(first) && column < requiredIndent) {\n\t\t\tstate.lineIndent = column;\n\t\t\tstate.position = linePosition + column;\n\t\t\tbreak;\n\t\t}\n\t\tskipUntilLineEnd(state);\n\t\tvalueEnd = state.position;\n\t\tif (isEol(state.input.charCodeAt(state.position))) {\n\t\t\tconsumeLineBreak(state);\n\t\t\tvalueEnd = state.position;\n\t\t}\n\t}\n\tcheckPrintable(state, valueStart, valueEnd);\n\taddScalarEvent(state, valueStart, valueEnd, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, style, chomping, contentIndent);\n\treturn true;\n}\nfunction canStartPlainScalar(state, nodeContext) {\n\tconst ch = state.input.charCodeAt(state.position);\n\tconst inFlow = nodeContext === CONTEXT_FLOW_IN;\n\tif (ch === 0 || isWsOrEol(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96 || inFlow && isFlowIndicator(ch)) return false;\n\tif (ch === 63 || ch === 45) {\n\t\tconst following = state.input.charCodeAt(state.position + 1);\n\t\tif (isWsOrEolOrEnd(following) || inFlow && isFlowIndicator(following)) return false;\n\t}\n\treturn true;\n}\nfunction readPlainScalar(state, nodeIndent, nodeContext, props) {\n\tif (!canStartPlainScalar(state, nodeContext)) return false;\n\tconst start = state.position;\n\tlet end = state.position;\n\tlet ch = state.input.charCodeAt(state.position);\n\tconst inFlow = nodeContext === CONTEXT_FLOW_IN;\n\tlet multiline = false;\n\twhile (ch !== 0) {\n\t\tif (testDocumentBoundary(state)) break;\n\t\tif (ch === 58) {\n\t\t\tconst following = state.input.charCodeAt(state.position + 1);\n\t\t\tif (isWsOrEolOrEnd(following) || inFlow && isFlowIndicator(following)) break;\n\t\t} else if (ch === 35) {\n\t\t\tif (isWsOrEol(state.input.charCodeAt(state.position - 1))) break;\n\t\t} else if (inFlow && isFlowIndicator(ch)) break;\n\t\telse if (isEol(ch)) {\n\t\t\tconst savedPosition = state.position;\n\t\t\tconst savedLine = state.line;\n\t\t\tconst savedLineStart = state.lineStart;\n\t\t\tconst savedLineIndent = state.lineIndent;\n\t\t\tskipSeparationSpace(state, false);\n\t\t\tif (state.lineIndent >= nodeIndent) {\n\t\t\t\tmultiline = true;\n\t\t\t\tch = state.input.charCodeAt(state.position);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tstate.position = savedPosition;\n\t\t\tstate.line = savedLine;\n\t\t\tstate.lineStart = savedLineStart;\n\t\t\tstate.lineIndent = savedLineIndent;\n\t\t\tbreak;\n\t\t}\n\t\tif (!isWhiteSpace(ch)) end = state.position + 1;\n\t\tch = state.input.charCodeAt(++state.position);\n\t}\n\tif (end === start) return false;\n\tcheckPrintable(state, start, end);\n\taddScalarEvent(state, start, end, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.PLAIN, CHOMPING_MODE.CLIP, -1, !multiline);\n\treturn true;\n}\nfunction skipFlowSeparationSpace(state, nodeIndent) {\n\tconst startLine = state.line;\n\tskipSeparationSpace(state, true);\n\tif (state.line > startLine && state.lineIndent < nodeIndent || state.firstTabInLine !== -1 && state.lineIndent < nodeIndent) throwError(state, \"deficient indentation\");\n}\nfunction readFlowCollection(state, nodeIndent, props) {\n\tconst ch = state.input.charCodeAt(state.position);\n\tconst isMapping = ch === 123;\n\tconst start = state.position;\n\tlet readNext = true;\n\tif (ch !== 91 && ch !== 123) return false;\n\tconst terminator = isMapping ? 125 : 93;\n\tif (isMapping) addMappingEvent(state, start, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.FLOW);\n\telse addSequenceEvent(state, start, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.FLOW);\n\tstate.position++;\n\twhile (state.input.charCodeAt(state.position) !== 0) {\n\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\tlet ch = state.input.charCodeAt(state.position);\n\t\tif (ch === terminator) {\n\t\t\tstate.position++;\n\t\t\taddPopEvent(state);\n\t\t\treturn true;\n\t\t} else if (!readNext) throwError(state, \"missed comma between flow collection entries\");\n\t\telse if (ch === 44) throwError(state, \"expected the node content, but found ','\");\n\t\tlet isPair = false;\n\t\tlet isExplicitPair = false;\n\t\tif (ch === 63 && isWsOrEol(state.input.charCodeAt(state.position + 1))) {\n\t\t\tisPair = isExplicitPair = true;\n\t\t\tstate.position += 1;\n\t\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\t}\n\t\tconst entryLine = state.line;\n\t\tconst entryStart = snapshotState(state);\n\t\tconst keyWasRead = parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\tch = state.input.charCodeAt(state.position);\n\t\tif ((isMapping || isExplicitPair || state.line === entryLine) && ch === 58) {\n\t\t\tisPair = true;\n\t\t\tstate.position++;\n\t\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\t\tif (!isMapping) {\n\t\t\t\tinsertFlowPairMappingEvent(state, entryStart);\n\t\t\t\tif (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\t} else if (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\tif (!parseNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true)) addEmptyScalarEvent(state);\n\t\t\tskipFlowSeparationSpace(state, nodeIndent);\n\t\t\tif (!isMapping) addPopEvent(state);\n\t\t} else if (isMapping && isPair) {\n\t\t\tif (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\taddEmptyScalarEvent(state);\n\t\t} else if (isMapping) addEmptyScalarEvent(state);\n\t\telse if (isPair) {\n\t\t\tinsertFlowPairMappingEvent(state, entryStart);\n\t\t\tif (!keyWasRead) addEmptyScalarEvent(state);\n\t\t\taddEmptyScalarEvent(state);\n\t\t\taddPopEvent(state);\n\t\t}\n\t\tch = state.input.charCodeAt(state.position);\n\t\tif (ch === 44) {\n\t\t\treadNext = true;\n\t\t\tstate.position++;\n\t\t} else readNext = false;\n\t}\n\tthrowError(state, \"unexpected end of the stream within a flow collection\");\n}\nfunction readBlockSequence(state, nodeIndent, props) {\n\tif (state.firstTabInLine !== -1 || state.input.charCodeAt(state.position) !== 45 || !isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) return false;\n\taddSequenceEvent(state, state.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.BLOCK);\n\twhile (state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) {\n\t\tif (state.firstTabInLine !== -1) {\n\t\t\tstate.position = state.firstTabInLine;\n\t\t\tthrowError(state, \"tab characters must not be used in indentation\");\n\t\t}\n\t\tconst entryLine = state.line;\n\t\tstate.position++;\n\t\tconst hadBreak = skipSeparationSpace(state, true) > 0;\n\t\tif (state.firstTabInLine !== -1 && state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) throwError(state, \"bad indentation of a sequence entry\");\n\t\tif (hadBreak && state.lineIndent <= nodeIndent) addEmptyScalarEvent(state);\n\t\telse parseNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n\t\tskipSeparationSpace(state, true);\n\t\tif (state.lineIndent < nodeIndent || state.position >= state.length) break;\n\t\tif (state.lineIndent > nodeIndent) throwError(state, \"bad indentation of a sequence entry\");\n\t\tif (state.line === entryLine && state.input.charCodeAt(state.position) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 1))) throwError(state, \"bad indentation of a sequence entry\");\n\t}\n\taddPopEvent(state);\n\treturn true;\n}\nfunction readBlockMapping(state, nodeIndent, flowIndent, props) {\n\tlet atExplicitKey = false;\n\tlet detected = false;\n\tlet mappingOpened = false;\n\tlet pendingExplicitKey = false;\n\tif (state.firstTabInLine !== -1) return false;\n\tlet ch = state.input.charCodeAt(state.position);\n\twhile (ch !== 0) {\n\t\tif (!atExplicitKey && state.firstTabInLine !== -1) {\n\t\t\tstate.position = state.firstTabInLine;\n\t\t\tthrowError(state, \"tab characters must not be used in indentation\");\n\t\t}\n\t\tconst following = state.input.charCodeAt(state.position + 1);\n\t\tconst entryLine = state.line;\n\t\tif ((ch === 63 || ch === 58) && isWsOrEolOrEnd(following)) {\n\t\t\tif (!mappingOpened) {\n\t\t\t\taddMappingEvent(state, state.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.BLOCK);\n\t\t\t\tmappingOpened = true;\n\t\t\t}\n\t\t\tif (ch === 63) {\n\t\t\t\tif (atExplicitKey) addEmptyScalarEvent(state);\n\t\t\t\tdetected = true;\n\t\t\t\tatExplicitKey = true;\n\t\t\t} else if (atExplicitKey) atExplicitKey = false;\n\t\t\telse {\n\t\t\t\taddEmptyScalarEvent(state);\n\t\t\t\tdetected = true;\n\t\t\t\tatExplicitKey = false;\n\t\t\t}\n\t\t\tstate.position += 1;\n\t\t\tpendingExplicitKey = true;\n\t\t} else {\n\t\t\tif (atExplicitKey) {\n\t\t\t\taddEmptyScalarEvent(state);\n\t\t\t\tatExplicitKey = false;\n\t\t\t}\n\t\t\tconst beforeKey = snapshotState(state);\n\t\t\tif (!parseNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) break;\n\t\t\tif (state.line === entryLine) {\n\t\t\t\tch = state.input.charCodeAt(state.position);\n\t\t\t\twhile (isWhiteSpace(ch)) ch = state.input.charCodeAt(++state.position);\n\t\t\t\tif (ch === 58) {\n\t\t\t\t\tch = state.input.charCodeAt(++state.position);\n\t\t\t\t\tif (!isWsOrEolOrEnd(ch)) throwError(state, \"a whitespace character is expected after the key-value separator within a block mapping\");\n\t\t\t\t\tif (!mappingOpened) {\n\t\t\t\t\t\trestoreState(state, beforeKey);\n\t\t\t\t\t\taddMappingEvent(state, beforeKey.position, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, COLLECTION_STYLE.BLOCK);\n\t\t\t\t\t\tmappingOpened = true;\n\t\t\t\t\t\tparseNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true);\n\t\t\t\t\t\tch = state.input.charCodeAt(state.position);\n\t\t\t\t\t\twhile (isWhiteSpace(ch)) ch = state.input.charCodeAt(++state.position);\n\t\t\t\t\t\tstate.position++;\n\t\t\t\t\t}\n\t\t\t\t\tdetected = true;\n\t\t\t\t\tatExplicitKey = false;\n\t\t\t\t\tpendingExplicitKey = false;\n\t\t\t\t} else if (detected) throwError(state, \"expected ':' after a mapping key\");\n\t\t\t\telse {\n\t\t\t\t\tif (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) {\n\t\t\t\t\t\trestoreState(state, beforeKey);\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else if (detected) throwError(state, \"can not read a block mapping entry; a multiline key may not be an implicit key\");\n\t\t\telse {\n\t\t\t\tif (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1) {\n\t\t\t\t\trestoreState(state, beforeKey);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tif (parseNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, pendingExplicitKey)) pendingExplicitKey = false;\n\t\tif (!atExplicitKey) {\n\t\t\tif (pendingExplicitKey) {\n\t\t\t\taddEmptyScalarEvent(state);\n\t\t\t\tpendingExplicitKey = false;\n\t\t\t}\n\t\t}\n\t\tskipSeparationSpace(state, true);\n\t\tch = state.input.charCodeAt(state.position);\n\t\tif ((state.line === entryLine || state.lineIndent > nodeIndent) && ch !== 0) throwError(state, \"bad indentation of a mapping entry\");\n\t\telse if (state.lineIndent < nodeIndent) break;\n\t}\n\tif (!detected) return false;\n\tif (atExplicitKey) addEmptyScalarEvent(state);\n\tif (mappingOpened) addPopEvent(state);\n\treturn true;\n}\nfunction parseNode(state, parentIndent, nodeContext, allowToSeek, allowCompact, allowPropertyMapping = true) {\n\tif (state.depth >= state.maxDepth) throwError(state, `nesting exceeded maxDepth (${state.maxDepth})`);\n\tstate.depth++;\n\tlet indentStatus = 1;\n\tlet atNewLine = false;\n\tlet hasContent = false;\n\tlet propertyStart = null;\n\tconst props = emptyProperties();\n\tlet allowBlockScalars = nodeContext === CONTEXT_BLOCK_OUT || nodeContext === CONTEXT_BLOCK_IN;\n\tlet allowBlockCollections = allowBlockScalars;\n\tconst allowBlockStyles = allowBlockScalars;\n\tif (allowToSeek && skipSeparationSpace(state, true)) {\n\t\tatNewLine = true;\n\t\tif (state.lineIndent > parentIndent) indentStatus = 1;\n\t\telse if (state.lineIndent === parentIndent) indentStatus = 0;\n\t\telse indentStatus = -1;\n\t}\n\tif (indentStatus === 1) while (true) {\n\t\tconst ch = state.input.charCodeAt(state.position);\n\t\tconst propertyState = snapshotState(state);\n\t\tif (atNewLine && indentStatus !== 1 && (ch === 33 || ch === 38)) break;\n\t\tif (atNewLine && allowBlockStyles && (props.tagStart !== NO_RANGE$1 || props.anchorStart !== NO_RANGE$1) && (ch === 33 || ch === 38)) {\n\t\t\tconst fallbackState = snapshotState(state);\n\t\t\tconst flowIndent = parentIndent + 1;\n\t\t\tif (readBlockMapping(state, state.position - state.lineStart, flowIndent, props) && state.events[fallbackState.eventsLength]?.type === EVENT_ID.MAPPING) {\n\t\t\t\tstate.depth--;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\trestoreState(state, fallbackState);\n\t\t}\n\t\tif (atNewLine && (ch === 33 && props.tagStart !== NO_RANGE$1 || ch === 38 && props.anchorStart !== NO_RANGE$1)) break;\n\t\tif (!readTagProperty(state, props, nodeContext === CONTEXT_FLOW_IN) && !readAnchorProperty(state, props)) break;\n\t\tif (propertyStart === null) propertyStart = propertyState;\n\t\tif (skipSeparationSpace(state, true)) {\n\t\t\tatNewLine = true;\n\t\t\tallowBlockCollections = allowBlockStyles;\n\t\t\tif (state.lineIndent > parentIndent) indentStatus = 1;\n\t\t\telse if (state.lineIndent === parentIndent) indentStatus = 0;\n\t\t\telse indentStatus = -1;\n\t\t} else allowBlockCollections = false;\n\t}\n\tif (allowBlockCollections) allowBlockCollections = atNewLine || allowCompact;\n\tif (indentStatus === 1 || nodeContext === CONTEXT_BLOCK_OUT) {\n\t\tconst flowIndent = nodeContext === CONTEXT_FLOW_IN || nodeContext === CONTEXT_FLOW_OUT ? parentIndent : parentIndent + 1;\n\t\tconst blockIndent = state.position - state.lineStart;\n\t\tif (indentStatus === 1) if (allowBlockCollections && (readBlockSequence(state, blockIndent, props) || readBlockMapping(state, blockIndent, flowIndent, props)) || readFlowCollection(state, flowIndent, props)) hasContent = true;\n\t\telse {\n\t\t\tconst ch = state.input.charCodeAt(state.position);\n\t\t\tif (propertyStart !== null && allowPropertyMapping && allowBlockStyles && !allowBlockCollections && ch !== 124 && ch !== 62) {\n\t\t\t\tconst fallbackState = snapshotState(state);\n\t\t\t\tconst propertyIndent = propertyStart.position - propertyStart.lineStart;\n\t\t\t\trestoreState(state, propertyStart);\n\t\t\t\tif (readBlockMapping(state, propertyIndent, flowIndent, emptyProperties()) && state.events[fallbackState.eventsLength]?.type === EVENT_ID.MAPPING) hasContent = true;\n\t\t\t\telse restoreState(state, fallbackState);\n\t\t\t}\n\t\t\tif (!hasContent && (allowBlockScalars && readBlockScalar(state, flowIndent, props) || readSingleQuotedScalar(state, flowIndent, props) || readDoubleQuotedScalar(state, flowIndent, props) || readAlias(state, props) || readPlainScalar(state, flowIndent, nodeContext, props))) hasContent = true;\n\t\t}\n\t\telse if (indentStatus === 0) hasContent = allowBlockCollections && readBlockSequence(state, blockIndent, props);\n\t}\n\tallowBlockScalars = allowBlockScalars && !hasContent;\n\tif (!hasContent && (props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1 || allowBlockScalars)) {\n\t\taddScalarEvent(state, NO_RANGE$1, NO_RANGE$1, props.anchorStart, props.anchorEnd, props.tagStart, props.tagEnd, SCALAR_STYLE.PLAIN);\n\t\thasContent = true;\n\t}\n\tstate.depth--;\n\treturn hasContent || props.anchorStart !== NO_RANGE$1 || props.tagStart !== NO_RANGE$1;\n}\nfunction readDirective(state) {\n\tif (state.lineIndent > 0 || state.input.charCodeAt(state.position) !== 37) return false;\n\tstate.position++;\n\tconst nameStart = state.position;\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position))) state.position++;\n\tconst name = state.input.slice(nameStart, state.position);\n\tconst args = [];\n\tif (name.length === 0) throwError(state, \"directive name must not be less than one character in length\");\n\twhile (state.input.charCodeAt(state.position) !== 0 && !isEol(state.input.charCodeAt(state.position))) {\n\t\twhile (isWhiteSpace(state.input.charCodeAt(state.position))) state.position++;\n\t\tif (state.input.charCodeAt(state.position) === 35 || isEol(state.input.charCodeAt(state.position)) || state.input.charCodeAt(state.position) === 0) break;\n\t\tconst start = state.position;\n\t\twhile (state.input.charCodeAt(state.position) !== 0 && !isWsOrEol(state.input.charCodeAt(state.position))) state.position++;\n\t\targs.push(state.input.slice(start, state.position));\n\t}\n\tif (isEol(state.input.charCodeAt(state.position))) consumeLineBreak(state);\n\tif (name === \"YAML\") {\n\t\tif (state.directives.some((directive) => directive.kind === \"yaml\")) throwError(state, \"duplication of %YAML directive\");\n\t\tif (args.length !== 1) throwError(state, \"YAML directive accepts exactly one argument\");\n\t\tconst match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\t\tif (match === null) throwError(state, \"ill-formed argument of the YAML directive\");\n\t\tif (parseInt(match[1], 10) !== 1) throwError(state, \"unacceptable YAML version of the document\");\n\t\tstate.directives.push({\n\t\t\tkind: \"yaml\",\n\t\t\tversion: args[0]\n\t\t});\n\t} else if (name === \"TAG\") {\n\t\tif (args.length !== 2) throwError(state, \"TAG directive accepts exactly two arguments\");\n\t\tconst [handle, prefix] = args;\n\t\tif (!PATTERN_TAG_HANDLE.test(handle)) throwError(state, \"ill-formed tag handle (first argument) of the TAG directive\");\n\t\tif (HAS_OWN.call(state.tagHandlers, handle)) throwError(state, `there is a previously declared suffix for \"${handle}\" tag handle`);\n\t\tif (!PATTERN_TAG_PREFIX.test(prefix)) throwError(state, \"ill-formed tag prefix (second argument) of the TAG directive\");\n\t\tstate.tagHandlers[handle] = prefix;\n\t\tstate.directives.push({\n\t\t\tkind: \"tag\",\n\t\t\thandle,\n\t\t\tprefix\n\t\t});\n\t}\n\treturn true;\n}\nfunction readDocument(state) {\n\tstate.directives = [];\n\tstate.tagHandlers = Object.create(null);\n\tlet hasDirectives = false;\n\tskipSeparationSpace(state, true);\n\twhile (readDirective(state)) {\n\t\thasDirectives = true;\n\t\tskipSeparationSpace(state, true);\n\t}\n\tlet explicitStart = false;\n\tlet explicitEnd = false;\n\tlet allowCompact = true;\n\tif (state.lineIndent === 0 && state.input.charCodeAt(state.position) === 45 && state.input.charCodeAt(state.position + 1) === 45 && state.input.charCodeAt(state.position + 2) === 45 && isWsOrEolOrEnd(state.input.charCodeAt(state.position + 3))) {\n\t\texplicitStart = true;\n\t\tconst markerLine = state.line;\n\t\tstate.position += 3;\n\t\tskipSeparationSpace(state, true);\n\t\tallowCompact = state.line > markerLine;\n\t} else if (hasDirectives) throwError(state, \"directives end mark is expected\");\n\tconst documentEventIndex = state.events.length;\n\tif (!explicitStart && state.position === state.lineStart && state.input.charCodeAt(state.position) === 46 && testDocumentSeparator(state)) {\n\t\tstate.position += 3;\n\t\tskipSeparationSpace(state, true);\n\t\treturn;\n\t}\n\taddDocumentEvent(state, explicitStart, false);\n\tif (!parseNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, allowCompact, allowCompact)) addEmptyScalarEvent(state);\n\tskipSeparationSpace(state, true);\n\tif (state.position === state.lineStart && testDocumentSeparator(state)) {\n\t\texplicitEnd = state.input.charCodeAt(state.position) === 46;\n\t\tif (explicitEnd) {\n\t\t\tconst markerLine = state.line;\n\t\t\tstate.position += 3;\n\t\t\tskipSeparationSpace(state, true);\n\t\t\tif (state.line === markerLine && state.position < state.length) throwError(state, \"end of the stream or a document separator is expected\");\n\t\t}\n\t}\n\tconst documentEvent = state.events[documentEventIndex];\n\tif (documentEvent?.type === EVENT_ID.DOCUMENT) documentEvent.explicitEnd = explicitEnd;\n\taddPopEvent(state);\n\tif (!explicitEnd && state.position < state.length && !testDocumentBoundary(state)) throwError(state, \"end of the stream or a document separator is expected\");\n}\n/**\n* Parses YAML into a flat event stream referencing source text by offsets.\n*\n* @category Events\n*/\nfunction parseEvents(input, options) {\n\tconst length = input.length;\n\tconst state = {\n\t\t...DEFAULT_PARSER_OPTIONS,\n\t\t...options,\n\t\tinput: `${input}\\0`,\n\t\tlength,\n\t\tposition: 0,\n\t\tline: 0,\n\t\tlineStart: 0,\n\t\tlineIndent: 0,\n\t\tfirstTabInLine: -1,\n\t\tdepth: 0,\n\t\tdirectives: [],\n\t\ttagHandlers: Object.create(null),\n\t\tevents: []\n\t};\n\tconst nullpos = input.indexOf(\"\\0\");\n\tif (nullpos !== -1) YAMLException.throwAt(input, nullpos, \"null byte is not allowed in input\", state.filename);\n\twhile (state.position < state.length) {\n\t\tskipByteOrderMark(state);\n\t\tskipSeparationSpace(state, true);\n\t\tif (state.position >= state.length) break;\n\t\tconst documentStart = state.position;\n\t\treadDocument(state);\n\t\tif (state.position === documentStart)\n /* c8 ignore next */\n\t\tthrowError(state, \"can not read a document\");\n\t}\n\treturn state.events;\n}\n//#endregion\n//#region src/load.ts\nvar DEFAULT_LOAD_OPTIONS = {\n\t...DEFAULT_PARSER_OPTIONS,\n\t...DEFAULT_CONSTRUCTOR_OPTIONS\n};\nfunction loadDocuments(input, options = {}) {\n\tconst opts = {\n\t\t...DEFAULT_LOAD_OPTIONS,\n\t\t...options\n\t};\n\tconst source = String(input);\n\tconst PARSER_OPT_KEYS = Object.keys(DEFAULT_PARSER_OPTIONS);\n\tconst CONSTRUCTOR_OPT_KEYS = Object.keys(DEFAULT_CONSTRUCTOR_OPTIONS);\n\treturn constructFromEvents(parseEvents(source, pick(opts, PARSER_OPT_KEYS)), {\n\t\t...pick(opts, CONSTRUCTOR_OPT_KEYS),\n\t\tsource\n\t});\n}\nfunction loadAll(input, iteratorOrOptions, options) {\n\tlet iterator = null;\n\tif (typeof iteratorOrOptions === \"function\") iterator = iteratorOrOptions;\n\telse if (iteratorOrOptions !== null && typeof iteratorOrOptions === \"object\") options = iteratorOrOptions;\n\tconst documents = loadDocuments(input, options);\n\tif (iterator === null) return documents;\n\tfor (const document of documents) iterator(document);\n}\n/**\n* Parses `string` as a single YAML document. Throws {@link YAMLException} on\n* error. This function does not understand multi-document or empty sources; it\n* throws an exception on those.\n*\n* > [!NOTE]\n* > 1. When processing untrusted input, see the\n* > [security considerations](../docs/safety.md).\n* > 2. All exceptions MUST be caught, not just {@link YAMLException}.\n* > 3. The default {@link CORE_SCHEMA} comes without the `!!merge` tag. You can\n* > easily enable it if needed.\n* > 4. The default {@link mapTag} is `{}`-object based, with known limitations\n* > (see description). For full compatibility use {@link realMapTag}\n* > instead (it uses native JS `Map`).\n*\n* @example\n* Enable {@link mergeTag} and {@link realMapTag}:\n*\n* ```javascript\n* import { load, CORE_SCHEMA, mergeTag, realMapTag } from 'js-yaml'\n*\n* try {\n* load(data, { schema: CORE_SCHEMA.withTags(mergeTag, realMapTag) })\n* } catch (e) {\n* console.error(e)\n* }\n* ```\n*\n* @category Main\n*/\nfunction load(input, options) {\n\tconst documents = loadDocuments(input, options);\n\tif (documents.length === 0) throw new YAMLException(\"expected a document, but the input is empty\");\n\tif (documents.length === 1) return documents[0];\n\tthrow new YAMLException(\"expected a single document in the stream, but found more\");\n}\n//#endregion\n//#region src/ast/from_js.ts\nvar INVALID = Symbol(\"INVALID\");\nfunction buildRepresentTypes(schema) {\n\tconst defaultTags = new Set([\n\t\tschema.defaultScalarTag,\n\t\tschema.defaultSequenceTag,\n\t\tschema.defaultMappingTag\n\t].filter((t) => t !== void 0));\n\tconst implicitScalars = schema.implicitScalarTags;\n\tconst explicitTags = schema.tags.filter((t) => !(t.nodeKind === \"scalar\" && t.implicit) && !defaultTags.has(t));\n\tconst defaultTagsLast = schema.tags.filter((t) => defaultTags.has(t));\n\treturn [\n\t\t...implicitScalars.map((tag) => ({\n\t\t\ttag,\n\t\t\timplicitTag: true\n\t\t})),\n\t\t...explicitTags.map((tag) => ({\n\t\t\ttag,\n\t\t\timplicitTag: false\n\t\t})),\n\t\t...defaultTagsLast.map((tag) => ({\n\t\t\ttag,\n\t\t\timplicitTag: true\n\t\t}))\n\t];\n}\nfunction matchTag(state, object) {\n\tfor (let index = 0, length = state.representTypes.length; index < length; index += 1) {\n\t\tconst { tag, implicitTag } = state.representTypes[index];\n\t\tif (tag.identify(object)) {\n\t\t\tlet tagName;\n\t\t\tif (tag.matchByTagPrefix) tagName = tag.representTagName(object);\n\t\t\telse tagName = tag.tagName;\n\t\t\treturn {\n\t\t\t\ttag,\n\t\t\t\ttagName,\n\t\t\t\timplicitTag\n\t\t\t};\n\t\t}\n\t}\n\treturn null;\n}\nfunction build(state, object) {\n\tif (!state.noRefs && object !== null && typeof object === \"object\") {\n\t\tconst existing = state.refs.get(object);\n\t\tif (existing) {\n\t\t\tif (existing.anchor === void 0) existing.anchor = `ref_${state.refCounter++}`;\n\t\t\treturn {\n\t\t\t\tkind: \"alias\",\n\t\t\t\tanchor: existing.anchor\n\t\t\t};\n\t\t}\n\t}\n\tconst matched = matchTag(state, object);\n\tif (!matched) {\n\t\tif (object === void 0) return INVALID;\n\t\tif (state.skipInvalid) return INVALID;\n\t\tthrow new YAMLException(`unacceptable kind of an object to dump ${Object.prototype.toString.call(object)}`);\n\t}\n\tconst { tag, tagName, implicitTag } = matched;\n\tconst nodeTagName = implicitTag ? tagName : tagNameShort(tagName);\n\tif (tag.nodeKind === \"scalar\") return {\n\t\tkind: \"scalar\",\n\t\ttag: nodeTagName,\n\t\ttagged: !implicitTag,\n\t\tstyle: SCALAR_STYLE.PLAIN,\n\t\tvalue: tag.represent(object)\n\t};\n\tif (tag.nodeKind === \"sequence\") {\n\t\tconst container = tag.represent(object);\n\t\tconst node = {\n\t\t\tkind: \"sequence\",\n\t\t\ttag: nodeTagName,\n\t\t\ttagged: !implicitTag,\n\t\t\tstyle: COLLECTION_STYLE.BLOCK,\n\t\t\titems: []\n\t\t};\n\t\tif (!state.noRefs) state.refs.set(object, node);\n\t\tfor (let index = 0, length = container.length; index < length; index += 1) {\n\t\t\tlet item = build(state, container[index]);\n\t\t\tif (item === INVALID && container[index] === void 0) item = build(state, null);\n\t\t\tif (item === INVALID) continue;\n\t\t\tnode.items.push(item);\n\t\t}\n\t\treturn node;\n\t}\n\tconst map = tag.represent(object);\n\tconst node = {\n\t\tkind: \"mapping\",\n\t\ttag: nodeTagName,\n\t\ttagged: !implicitTag,\n\t\tstyle: COLLECTION_STYLE.BLOCK,\n\t\titems: []\n\t};\n\tif (!state.noRefs) state.refs.set(object, node);\n\tfor (const [objectKey, objectValue] of map) {\n\t\tconst key = build(state, objectKey);\n\t\tif (key === INVALID) continue;\n\t\tconst value = build(state, objectValue);\n\t\tif (value === INVALID) continue;\n\t\tnode.items.push({\n\t\t\tkey,\n\t\t\tvalue\n\t\t});\n\t}\n\treturn node;\n}\n/**\n* Convert JS object to AST. A JS value is one YAML document. An unrepresentable\n* root becomes an empty document, which the presenter renders as an empty\n* string.\n*\n* @category AST\n*/\nfunction jsToAst(input, schema, options = {}) {\n\tconst root = build({\n\t\trepresentTypes: buildRepresentTypes(schema),\n\t\tnoRefs: options.noRefs ?? false,\n\t\tskipInvalid: options.skipInvalid ?? false,\n\t\trefs: /* @__PURE__ */ new Map(),\n\t\trefCounter: 0\n\t}, input);\n\treturn [{\n\t\tcontents: root === INVALID ? null : root,\n\t\tdirectives: []\n\t}];\n}\n//#endregion\n//#region src/ast/visit.ts\n/**\n* Return from a visitor to stop the whole traversal.\n*\n* @category AST\n*/\nvar VISIT_BREAK = Symbol(\"visit:break\");\n/**\n* Return from a visitor to skip the current node's children.\n*\n* @category AST\n*/\nvar VISIT_SKIP = Symbol(\"visit:skip\");\nfunction visitNode(node, visitor, ctx) {\n\tconst control = visitor(node, ctx);\n\tif (control === VISIT_BREAK) return true;\n\tif (control === VISIT_SKIP) return false;\n\tconst depth = ctx.depth + 1;\n\tswitch (node.kind) {\n\t\tcase \"sequence\":\n\t\t\tfor (const item of node.items) if (visitNode(item, visitor, {\n\t\t\t\tdepth,\n\t\t\t\tparent: node,\n\t\t\t\tisKey: false\n\t\t\t})) return true;\n\t\t\tbreak;\n\t\tcase \"mapping\":\n\t\t\tfor (const { key, value } of node.items) {\n\t\t\t\tif (visitNode(key, visitor, {\n\t\t\t\t\tdepth,\n\t\t\t\t\tparent: node,\n\t\t\t\t\tisKey: true\n\t\t\t\t})) return true;\n\t\t\t\tif (visitNode(value, visitor, {\n\t\t\t\t\tdepth,\n\t\t\t\t\tparent: node,\n\t\t\t\t\tisKey: false\n\t\t\t\t})) return true;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn false;\n}\n/**\n* Walk every node in the documents, calling {@link Visitor} once per\n* node (pre-order).\n*\n* @category AST\n*/\nfunction visit(documents, visitor) {\n\tfor (const doc of documents) if (doc.contents && visitNode(doc.contents, visitor, {\n\t\tdepth: 0,\n\t\tparent: null,\n\t\tisKey: false\n\t})) return;\n}\n//#endregion\n//#region src/ast/styler_defaults.ts\nfunction hasBit(mask, bit) {\n\treturn (mask & 1 << bit) !== 0;\n}\n/**\n* Default scalar styling rules in application order.\n* See [Scalar styling](../../docs/scalar_styling.md) for usage details.\n*\n* @category AST\n*/\nvar DEFAULT_SCALAR_STYLE_RULES = {\n\tapplyQuoteFlowKeysOption,\n\tdoubleQuoteForInvisibles,\n\tdoubleQuoteWhitespaceOnly,\n\tapplyForceQuotesOption,\n\ttryLongOrMultilineAsBlock,\n\tquoteInvalidPlain,\n\tfallbackToDoubleQuoted\n};\nfunction _preferredQuotedStyle(layout) {\n\tif (layout.presenterOptions.quoteStyle === \"single\" && hasBit(layout.allowedStylesMask, SCALAR_STYLE.SINGLE_QUOTED)) return SCALAR_STYLE.SINGLE_QUOTED;\n\treturn SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction applyQuoteFlowKeysOption(layout) {\n\tif (!layout.presenterOptions.quoteFlowKeys) return;\n\tif (!layout.isKey || !layout.flowOnly || layout.style !== SCALAR_STYLE.PLAIN) return;\n\tlayout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction doubleQuoteForInvisibles(layout) {\n\tif (layout.style === SCALAR_STYLE.PLAIN && /[\\t\\x7F-\\xA0\\u2028\\u2029\\uFEFF\\uFFFE\\uFFFF]/.test(layout.node.value)) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction doubleQuoteWhitespaceOnly(layout) {\n\tif (layout.style === SCALAR_STYLE.PLAIN && /^\\s+$/.test(layout.node.value)) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\nfunction applyForceQuotesOption(layout) {\n\tif (!layout.presenterOptions.forceQuotes) return;\n\tif (layout.isKey || layout.style !== SCALAR_STYLE.PLAIN) return;\n\tlayout.style = layout.node.value.includes(\"\\n\") ? SCALAR_STYLE.DOUBLE_QUOTED : _preferredQuotedStyle(layout);\n}\nfunction tryLongOrMultilineAsBlock(layout) {\n\tif (layout.style !== SCALAR_STYLE.PLAIN || layout.isKey) return;\n\tconst value = layout.node.value;\n\tconst multiline = value.indexOf(\"\\n\") !== -1;\n\tif (!hasBit(layout.allowedStylesMask, SCALAR_STYLE.LITERAL_BLOCK)) {\n\t\tif (multiline) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n\t\treturn;\n\t}\n\tconst w = layout.presenterOptions.lineWidth;\n\tif (w === -1) {\n\t\tif (multiline) layout.style = SCALAR_STYLE.LITERAL_BLOCK;\n\t\treturn;\n\t}\n\tconst availableWidth = Math.max(Math.min(w, 40), w - layout.shiftOfContent);\n\tlet position = 0;\n\tlet shouldFold = false;\n\twhile (position <= value.length) {\n\t\tlet lineEnd = value.length;\n\t\tconst nextLineBreak = value.indexOf(\"\\n\", position);\n\t\tif (nextLineBreak !== -1) lineEnd = nextLineBreak;\n\t\tconst line = value.slice(position, lineEnd);\n\t\tif (line.length > availableWidth && line[0] !== \" \" && / [^ \\t]/.test(line)) shouldFold = true;\n\t\tif (nextLineBreak === -1) break;\n\t\tposition = nextLineBreak + 1;\n\t}\n\tif (shouldFold) layout.style = SCALAR_STYLE.FOLDED_BLOCK;\n\telse if (multiline) layout.style = SCALAR_STYLE.LITERAL_BLOCK;\n}\nfunction quoteInvalidPlain(layout) {\n\tif (layout.style === SCALAR_STYLE.PLAIN && !hasBit(layout.allowedStylesMask, SCALAR_STYLE.PLAIN)) layout.style = _preferredQuotedStyle(layout);\n}\nfunction fallbackToDoubleQuoted(layout) {\n\tif (!hasBit(layout.allowedStylesMask, layout.style)) layout.style = SCALAR_STYLE.DOUBLE_QUOTED;\n}\n//#endregion\n//#region src/ast/scalar_styler.ts\nfunction setBit(mask, bit) {\n\treturn mask | 1 << bit;\n}\nvar SRC_C_PRINTABLE = \"[\\\\x09\\\\x0A\\\\x0D\\\\x20-\\\\x7E\\\\x85\\\\xA0-\\\\uD7FF\\\\uE000-\\\\uFFFD\\\\u{10000}-\\\\u{10FFFF}]\";\nvar SRC_B_CHAR = \"[\\\\n\\\\r]\";\nvar SRC_C_BYTE_ORDER_MARK = \"\\\\uFEFF\";\nvar SRC_S_WHITE = \"[ \\\\t]\";\nvar SRC_NB_CHAR = `(?:(?!(?:${SRC_B_CHAR}|${SRC_C_BYTE_ORDER_MARK}))${SRC_C_PRINTABLE})`;\nvar SRC_NS_CHAR = `(?:(?!${SRC_S_WHITE})${SRC_NB_CHAR})`;\nvar SRC_NB_JSON = \"[\\\\x09\\\\x20-\\\\uD7FF\\\\uE000-\\\\uFFFF\\\\u{10000}-\\\\u{10FFFF}]\";\nvar SRC_C_INDICATOR = \"[-?:,\\\\[\\\\]{}#&*!|>'\\\"%@`]\";\nvar SRC_C_FLOW_INDICATOR = \"[,\\\\[\\\\]{}]\";\nvar SRC_NS_PLAIN_SAFE_FLOW_OUT = SRC_NS_CHAR;\nvar SRC_NS_PLAIN_SAFE_FLOW_IN = `(?:(?!${SRC_C_FLOW_INDICATOR})${SRC_NS_CHAR})`;\nvar SRC_NS_PLAIN_FIRST_FLOW_OUT = `(?:(?:(?!${SRC_C_INDICATOR})${SRC_NS_CHAR})|[?:-](?=${SRC_NS_PLAIN_SAFE_FLOW_OUT}))`;\nvar SRC_NS_PLAIN_FIRST_FLOW_IN = `(?:(?:(?!${SRC_C_INDICATOR})${SRC_NS_CHAR})|[?:-](?=${SRC_NS_PLAIN_SAFE_FLOW_IN}))`;\nvar SRC_NS_PLAIN_CHAR_FLOW_OUT = `(?:(?:(?![:#])${SRC_NS_PLAIN_SAFE_FLOW_OUT})|:(?=${SRC_NS_PLAIN_SAFE_FLOW_OUT}))#*`;\nvar SRC_NS_PLAIN_CHAR_FLOW_IN = `(?:(?:(?![:#])${SRC_NS_PLAIN_SAFE_FLOW_IN})|:(?=${SRC_NS_PLAIN_SAFE_FLOW_IN}))#*`;\nvar SRC_NB_NS_PLAIN_IN_LINE_FLOW_OUT = `(?:${SRC_S_WHITE}*${SRC_NS_PLAIN_CHAR_FLOW_OUT})*`;\nvar SRC_NB_NS_PLAIN_IN_LINE_FLOW_IN = `(?:${SRC_S_WHITE}*${SRC_NS_PLAIN_CHAR_FLOW_IN})*`;\nvar SRC_NS_PLAIN_ONE_LINE_FLOW_OUT = `${SRC_NS_PLAIN_FIRST_FLOW_OUT}#*${SRC_NB_NS_PLAIN_IN_LINE_FLOW_OUT}`;\nvar SRC_NS_PLAIN_ONE_LINE_FLOW_IN = `${SRC_NS_PLAIN_FIRST_FLOW_IN}#*${SRC_NB_NS_PLAIN_IN_LINE_FLOW_IN}`;\nvar SRC_NS_PLAIN_ONE_LINE_BLOCK_KEY = SRC_NS_PLAIN_ONE_LINE_FLOW_OUT;\nvar SRC_NS_PLAIN_ONE_LINE_FLOW_KEY = SRC_NS_PLAIN_ONE_LINE_FLOW_IN;\nvar SRC_S_NS_PLAIN_NEXT_LINE_FLOW_OUT = `\\\\n+${SRC_NS_PLAIN_CHAR_FLOW_OUT}${SRC_NB_NS_PLAIN_IN_LINE_FLOW_OUT}`;\nvar SRC_S_NS_PLAIN_NEXT_LINE_FLOW_IN = `\\\\n+${SRC_NS_PLAIN_CHAR_FLOW_IN}${SRC_NB_NS_PLAIN_IN_LINE_FLOW_IN}`;\nvar SRC_NS_PLAIN_MULTI_LINE_FLOW_OUT = `${SRC_NS_PLAIN_ONE_LINE_FLOW_OUT}(?:${SRC_S_NS_PLAIN_NEXT_LINE_FLOW_OUT})*`;\nvar SRC_NS_PLAIN_MULTI_LINE_FLOW_IN = `${SRC_NS_PLAIN_ONE_LINE_FLOW_IN}(?:${SRC_S_NS_PLAIN_NEXT_LINE_FLOW_IN})*`;\nvar NS_PLAIN_FLOW_OUT = new RegExp(`^(?:${SRC_NS_PLAIN_MULTI_LINE_FLOW_OUT})$`, \"u\");\nvar NS_PLAIN_FLOW_IN = new RegExp(`^(?:${SRC_NS_PLAIN_MULTI_LINE_FLOW_IN})$`, \"u\");\nvar NS_PLAIN_BLOCK_KEY = new RegExp(`^(?:${SRC_NS_PLAIN_ONE_LINE_BLOCK_KEY})$`, \"u\");\nvar NS_PLAIN_FLOW_KEY = new RegExp(`^(?:${SRC_NS_PLAIN_ONE_LINE_FLOW_KEY})$`, \"u\");\nvar NB_SINGLE_ONE_LINE = new RegExp(`^(?:${SRC_NB_JSON})*$`, \"u\");\nvar NB_SINGLE_MULTI_LINE = new RegExp(`^(?:${SRC_NB_JSON}|\\\\n)*$`, \"u\");\nvar BLOCK_SCALAR_CONTENT = new RegExp(`^(?:${SRC_NB_CHAR}|\\\\n)*$`, \"u\");\nvar C_FORBIDDEN_FIRST_LINE = /^(?:---|\\.\\.\\.)(?=$|[ \\t\\n\\r])/;\nvar C_FORBIDDEN_CONTENT = /^(?:---|\\.\\.\\.)(?=$|[ \\t\\n\\r])/m;\nfunction canUsePlain(layout) {\n\tconst str = layout.node.value;\n\tif (str !== \"\") {\n\t\tif (!(layout.isKey ? layout.flowOnly ? NS_PLAIN_FLOW_KEY : NS_PLAIN_BLOCK_KEY : layout.flowOnly ? NS_PLAIN_FLOW_IN : NS_PLAIN_FLOW_OUT).test(str)) return false;\n\t\tif (layout.shiftOfFirstLine === 0 && C_FORBIDDEN_FIRST_LINE.test(str)) return false;\n\t\tif (layout.shiftOfContent === 0) {\n\t\t\tconst firstLineBreak = str.indexOf(\"\\n\");\n\t\t\tif (firstLineBreak !== -1) {\n\t\t\t\tconst content = str.slice(firstLineBreak + 1);\n\t\t\t\tif (C_FORBIDDEN_CONTENT.test(content)) return false;\n\t\t\t}\n\t\t}\n\t}\n\tconst resolvedTag = layout.presenterOptions.schema.resolveImplicitScalarTag(str).tag.tagName;\n\tif (!layout.node.tagged && resolvedTag !== layout.node.tag) return false;\n\tif (!layout.node.tagged && str === \"=\" && resolvedTag === layout.presenterOptions.schema.defaultScalarTag.tagName) return false;\n\treturn true;\n}\nfunction canUseSingleQuoted(layout) {\n\tconst str = layout.node.value;\n\tif (!(layout.isKey ? NB_SINGLE_ONE_LINE : NB_SINGLE_MULTI_LINE).test(str)) return false;\n\tif (/[ \\t]\\n|\\n[ \\t]/.test(str)) return false;\n\tif (!layout.isKey && layout.shiftOfContent === 0) {\n\t\tconst firstLineBreak = str.indexOf(\"\\n\");\n\t\tif (firstLineBreak !== -1 && C_FORBIDDEN_CONTENT.test(str.slice(firstLineBreak + 1))) return false;\n\t}\n\treturn true;\n}\nfunction canUseBlock(layout) {\n\tif (layout.flowOnly || !BLOCK_SCALAR_CONTENT.test(layout.node.value)) return false;\n\tconst contentIndent = layout.shiftOfContent - layout.shiftOfParent;\n\tif (contentIndent < 1) return false;\n\tif (contentIndent > 9 && /^\\n* /.test(layout.node.value)) return false;\n\tif (layout.shiftOfContent === 0 && C_FORBIDDEN_CONTENT.test(layout.node.value)) return false;\n\treturn true;\n}\nfunction detectAllowedStyles(layout) {\n\tlet mask = setBit(0, SCALAR_STYLE.DOUBLE_QUOTED);\n\tif (canUsePlain(layout)) mask = setBit(mask, SCALAR_STYLE.PLAIN);\n\tif (canUseSingleQuoted(layout)) mask = setBit(mask, SCALAR_STYLE.SINGLE_QUOTED);\n\tif (canUseBlock(layout)) mask = setBit(setBit(mask, SCALAR_STYLE.LITERAL_BLOCK), SCALAR_STYLE.FOLDED_BLOCK);\n\tlayout.allowedStylesMask = mask;\n}\nfunction renderScalar(layout) {\n\tswitch (layout.style) {\n\t\tcase SCALAR_STYLE.PLAIN: return renderPlain(layout);\n\t\tcase SCALAR_STYLE.SINGLE_QUOTED: return renderSingleQuoted(layout);\n\t\tcase SCALAR_STYLE.LITERAL_BLOCK: return renderLiteralBlock(layout);\n\t\tcase SCALAR_STYLE.FOLDED_BLOCK: return renderFoldedBlock(layout);\n\t\tcase SCALAR_STYLE.DOUBLE_QUOTED: return renderDoubleQuoted(layout);\n\t}\n}\nfunction renderPlain(layout) {\n\treturn encodeFlowBreaks(layout.node.value, layout.shiftOfContent);\n}\nfunction renderSingleQuoted(layout) {\n\treturn `'${encodeFlowBreaks(layout.node.value, layout.shiftOfContent).replace(/'/g, \"''\")}'`;\n}\nfunction renderLiteralBlock(layout) {\n\tconst value = layout.node.value;\n\treturn \"|\" + blockHeader(value, layout.shiftOfParent, layout.shiftOfContent) + dropEndingNewline(indentString(value, layout.shiftOfContent));\n}\nfunction renderFoldedBlock(layout) {\n\tconst value = layout.node.value;\n\tconst w = layout.presenterOptions.lineWidth;\n\tlet availableWidth = Infinity;\n\tif (w !== -1) availableWidth = Math.max(Math.min(w, 40), w - layout.shiftOfContent);\n\treturn \">\" + blockHeader(value, layout.shiftOfParent, layout.shiftOfContent) + dropEndingNewline(indentString(foldBlockScalar(value, availableWidth), layout.shiftOfContent));\n}\nfunction renderDoubleQuoted(layout) {\n\treturn `\"${escapeString(layout.node.value)}\"`;\n}\nfunction encodeFlowBreaks(string, shiftOfContent) {\n\tlet nextLF = string.indexOf(\"\\n\");\n\tif (nextLF === -1) return string;\n\tconst pad = \" \".repeat(shiftOfContent);\n\tlet result = string.slice(0, nextLF);\n\tconst lineRe = /(\\n+)([^\\n]*)/g;\n\tlineRe.lastIndex = nextLF;\n\tlet match;\n\twhile (match = lineRe.exec(string)) {\n\t\tconst breaks = match[1].length;\n\t\tconst line = match[2];\n\t\tresult += \"\\n\".repeat(breaks + 1) + pad + line;\n\t}\n\treturn result;\n}\nfunction indentString(string, spaces) {\n\tconst indent = \" \".repeat(spaces);\n\tlet position = 0;\n\tlet result = \"\";\n\tconst length = string.length;\n\twhile (position < length) {\n\t\tlet line;\n\t\tconst next = string.indexOf(\"\\n\", position);\n\t\tif (next === -1) {\n\t\t\tline = string.slice(position);\n\t\t\tposition = length;\n\t\t} else {\n\t\t\tline = string.slice(position, next + 1);\n\t\t\tposition = next + 1;\n\t\t}\n\t\tif (line.length && line !== \"\\n\") result += indent;\n\t\tresult += line;\n\t}\n\treturn result;\n}\nfunction needIndentIndicator(string) {\n\treturn /^\\n* /.test(string);\n}\nfunction blockHeader(string, shiftOfParent, shiftOfContent) {\n\tconst indentIndicator = needIndentIndicator(string) ? String(shiftOfContent - shiftOfParent) : \"\";\n\tconst clip = string[string.length - 1] === \"\\n\";\n\treturn `${indentIndicator}${clip && (string[string.length - 2] === \"\\n\" || string === \"\\n\") ? \"+\" : clip ? \"\" : \"-\"}\\n`;\n}\nfunction dropEndingNewline(string) {\n\treturn string[string.length - 1] === \"\\n\" ? string.slice(0, -1) : string;\n}\nfunction isMoreIndented(char) {\n\treturn char === \" \" || char === \"\t\";\n}\nfunction foldLine(line, width) {\n\tif (line === \"\" || isMoreIndented(line[0])) return line;\n\tconst breakRe = / [^ \\t]/g;\n\tlet match;\n\tlet start = 0;\n\tlet end;\n\tlet curr = 0;\n\tlet next = 0;\n\tlet result = \"\";\n\twhile (match = breakRe.exec(line)) {\n\t\tnext = match.index;\n\t\tif (next - start > width) {\n\t\t\tend = curr > start ? curr : next;\n\t\t\tresult += `\\n${line.slice(start, end)}`;\n\t\t\tstart = end + 1;\n\t\t}\n\t\tcurr = next;\n\t}\n\tresult += \"\\n\";\n\tif (line.length - start > width && curr > start) result += `${line.slice(start, curr)}\\n${line.slice(curr + 1)}`;\n\telse result += line.slice(start);\n\treturn result.slice(1);\n}\nfunction foldBlockScalar(string, width) {\n\tconst lineRe = /(\\n+)([^\\n]*)/g;\n\tlet nextLF = string.indexOf(\"\\n\");\n\tif (nextLF === -1) nextLF = string.length;\n\tlineRe.lastIndex = nextLF;\n\tlet result = foldLine(string.slice(0, nextLF), width);\n\tlet prevMoreIndented = string[0] === \"\\n\" || isMoreIndented(string[0]);\n\tlet moreIndented;\n\tlet match;\n\twhile (match = lineRe.exec(string)) {\n\t\tconst prefix = match[1];\n\t\tconst line = match[2];\n\t\tmoreIndented = line !== \"\" && isMoreIndented(line[0]);\n\t\tresult += prefix + (!prevMoreIndented && !moreIndented && line !== \"\" ? \"\\n\" : \"\") + foldLine(line, width);\n\t\tprevMoreIndented = moreIndented;\n\t}\n\treturn result;\n}\nvar CHARACTERS_TO_ESCAPE = /[\"\\\\\\x00-\\x1F\\x7F-\\xA0\\u2028\\u2029\\uD800-\\uDFFF\\uFEFF\\uFFFE\\uFFFF]/gu;\nfunction escapeCharacter(character) {\n\tswitch (character) {\n\t\tcase \"\\0\": return \"\\\\0\";\n\t\tcase \"\\x07\": return \"\\\\a\";\n\t\tcase \"\\b\": return \"\\\\b\";\n\t\tcase \"\t\": return \"\\\\t\";\n\t\tcase \"\\n\": return \"\\\\n\";\n\t\tcase \"\\v\": return \"\\\\v\";\n\t\tcase \"\\f\": return \"\\\\f\";\n\t\tcase \"\\r\": return \"\\\\r\";\n\t\tcase \"\\x1B\": return \"\\\\e\";\n\t\tcase \"\\\"\": return \"\\\\\\\"\";\n\t\tcase \"\\\\\": return \"\\\\\\\\\";\n\t\tcase \"
\": return \"\\\\N\";\n\t\tcase \"\\xA0\": return \"\\\\_\";\n\t\tcase \"\\u2028\": return \"\\\\L\";\n\t\tcase \"\\u2029\": return \"\\\\P\";\n\t}\n\tconst code = character.charCodeAt(0);\n\tconst hex = code.toString(16).toUpperCase();\n\tif (code <= 255) return `\\\\x${\"0\".repeat(2 - hex.length)}${hex}`;\n\treturn `\\\\u${\"0\".repeat(4 - hex.length)}${hex}`;\n}\nfunction escapeString(string) {\n\treturn string.replace(CHARACTERS_TO_ESCAPE, escapeCharacter);\n}\n//#endregion\n//#region src/ast/presenter.ts\nvar CHAR_LINE_FEED = 10;\nvar DEFAULT_PRESENTER_OPTIONS = {\n\tindent: 2,\n\tseqNoIndent: false,\n\tseqInlineFirst: true,\n\tlineWidth: 80,\n\tflowBracketPadding: false,\n\tflowSkipCommaSpace: false,\n\tflowSkipColonSpace: false,\n\tquoteFlowKeys: false,\n\tquoteStyle: \"single\",\n\tforceQuotes: false,\n\tscalarStyleRules: Object.keys(DEFAULT_SCALAR_STYLE_RULES).map((name) => Reflect.get(DEFAULT_SCALAR_STYLE_RULES, name)),\n\ttagBeforeAnchor: false\n};\nfunction nodeTagShort(node) {\n\treturn node.tagged ? node.tag : tagNameShort(node.tag);\n}\nfunction createPresenterState(options) {\n\tconst opts = {\n\t\t...DEFAULT_PRESENTER_OPTIONS,\n\t\t...options\n\t};\n\tif (opts.flowSkipColonSpace) opts.quoteFlowKeys = true;\n\treturn {\n\t\t...opts,\n\t\tdefaultScalarTagName: opts.schema.defaultScalarTag.tagName,\n\t\topenEnded: false\n\t};\n}\nfunction generateNextLine(state, level) {\n\treturn `\\n${\" \".repeat(state.indent * level)}`;\n}\nfunction scalarLayout(state, node, parent, level, isKey, flowOnly) {\n\treturn {\n\t\tnode,\n\t\tparent,\n\t\tlevel,\n\t\tisKey,\n\t\tflowOnly,\n\t\tshiftOfParent: level === 0 ? -1 : state.indent * (level - 1),\n\t\tshiftOfContent: state.indent * Math.max(1, level),\n\t\tshiftOfFirstLine: level === 0 ? 0 : state.indent * level,\n\t\tpresenterOptions: state,\n\t\tallowedStylesMask: 0,\n\t\tstyle: node.style\n\t};\n}\nfunction writeFlowSequence(state, level, node) {\n\tlet result = \"\";\n\tfor (let index = 0, length = node.items.length; index < length; index += 1) {\n\t\tconst item = writeNode(state, level, node.items[index], node, {}).text;\n\t\tif (index > 0) result += `,${!state.flowSkipCommaSpace ? \" \" : \"\"}`;\n\t\tresult += item;\n\t}\n\tconst pad = state.flowBracketPadding && node.items.length > 0 ? \" \" : \"\";\n\treturn `[${pad}${result}${pad}]`;\n}\nfunction writeBlockSequence(state, level, node, compact) {\n\tlet result = \"\";\n\tfor (let index = 0, length = node.items.length; index < length; index += 1) {\n\t\tconst item = writeNode(state, level + 1, node.items[index], node, {\n\t\t\tblock: true,\n\t\t\tcompact: state.seqInlineFirst,\n\t\t\tisblockseq: true\n\t\t}).text;\n\t\tif (!compact || result !== \"\") result += generateNextLine(state, level);\n\t\tif (item === \"\" || CHAR_LINE_FEED === item.charCodeAt(0)) result += \"-\";\n\t\telse result += \"- \";\n\t\tresult += item;\n\t}\n\treturn result;\n}\nfunction writeFlowMapping(state, level, node) {\n\tlet result = \"\";\n\tfor (const { key, value } of node.items) {\n\t\tlet pairBuffer = \"\";\n\t\tif (result !== \"\") pairBuffer += `,${!state.flowSkipCommaSpace ? \" \" : \"\"}`;\n\t\tconst keyRender = writeNode(state, level, key, node, { iskey: true });\n\t\tconst keyText = keyRender.text;\n\t\tconst valueText = writeNode(state, level, value, node, {}).text;\n\t\tconst sep = state.flowSkipColonSpace || valueText === \"\" ? \"\" : \" \";\n\t\tconst keyIsBareProps = key.kind === \"scalar\" && keyRender.noBody && (key.tagged || key.anchor !== void 0);\n\t\tconst keyColonSep = key.kind === \"alias\" || keyIsBareProps ? \" \" : \"\";\n\t\tpairBuffer += `${keyText}${keyColonSep}:${sep}${valueText}`;\n\t\tresult += pairBuffer;\n\t}\n\tconst pad = state.flowBracketPadding && result !== \"\" ? \" \" : \"\";\n\treturn `{${pad}${result}${pad}}`;\n}\nfunction writeBlockMapping(state, level, node, compact) {\n\tlet result = \"\";\n\tfor (let index = 0, length = node.items.length; index < length; index += 1) {\n\t\tlet pairBuffer = \"\";\n\t\tif (!compact || result !== \"\") pairBuffer += generateNextLine(state, level);\n\t\tconst { key, value } = node.items[index];\n\t\tconst keyIsBlock = (key.kind === \"mapping\" || key.kind === \"sequence\") && key.style === COLLECTION_STYLE.BLOCK && key.items.length !== 0 || key.kind === \"scalar\" && (key.style === SCALAR_STYLE.LITERAL_BLOCK || key.style === SCALAR_STYLE.FOLDED_BLOCK);\n\t\tconst keyRender = keyIsBlock ? writeNode(state, level + 1, key, node, {\n\t\t\tblock: true,\n\t\t\tcompact: true,\n\t\t\tisblockseq: !cannotBeCompact(state, key, level + 1)\n\t\t}) : writeNode(state, level + 1, key, node, {\n\t\t\tblock: true,\n\t\t\tcompact: true,\n\t\t\tiskey: true\n\t\t});\n\t\tconst keyText = keyRender.text;\n\t\tconst keyHasLineBreak = key.kind === \"scalar\" && key.value.indexOf(\"\\n\") !== -1;\n\t\tconst keyIsTooLong = keyText.length > 1024 && /^[\\s\\S]{1025}/u.test(keyText);\n\t\tconst explicitPair = keyIsBlock || keyHasLineBreak || keyIsTooLong;\n\t\tif (explicitPair) if (keyText && CHAR_LINE_FEED === keyText.charCodeAt(0)) pairBuffer += \"?\";\n\t\telse pairBuffer += \"? \";\n\t\tpairBuffer += keyText;\n\t\tif (explicitPair) pairBuffer += generateNextLine(state, level);\n\t\tconst valueText = writeNode(state, level + 1, value, node, {\n\t\t\tblock: true,\n\t\t\tcompact: explicitPair,\n\t\t\tisblockseq: explicitPair && !cannotBeCompact(state, value, level + 1)\n\t\t}).text;\n\t\tconst keyIsBareProps = key.kind === \"scalar\" && keyRender.noBody && (key.tagged || key.anchor !== void 0);\n\t\tconst keyColonSep = !explicitPair && (key.kind === \"alias\" || keyIsBareProps) ? \" \" : \"\";\n\t\tif (valueText === \"\" || CHAR_LINE_FEED === valueText.charCodeAt(0)) pairBuffer += `${keyColonSep}:`;\n\t\telse pairBuffer += `${keyColonSep}: `;\n\t\tpairBuffer += valueText;\n\t\tresult += pairBuffer;\n\t}\n\treturn result;\n}\nfunction cannotBeCompact(state, node, level) {\n\tif (node.kind === \"alias\") return true;\n\treturn node.tagged || node.anchor !== void 0 || state.indent < 2 && level > 0;\n}\nfunction writeNode(state, level, node, parent, ctx) {\n\tif (node.kind === \"alias\") {\n\t\tstate.openEnded = false;\n\t\treturn {\n\t\t\ttext: `*${node.anchor}`,\n\t\t\tnoBody: false\n\t\t};\n\t}\n\tconst { block = false, iskey = false, isblockseq = false } = ctx;\n\tlet compact = ctx.compact ?? false;\n\tconst hasAnchor = node.anchor !== void 0;\n\tif (cannotBeCompact(state, node, level)) compact = false;\n\tlet body;\n\tlet shouldPrintTag = node.tagged;\n\tconst useBlockCollection = block && (node.kind === \"mapping\" || node.kind === \"sequence\") && node.style === COLLECTION_STYLE.BLOCK && node.items.length !== 0;\n\tif (node.kind === \"mapping\") if (useBlockCollection) body = writeBlockMapping(state, level, node, compact);\n\telse body = writeFlowMapping(state, level, node);\n\telse if (node.kind === \"sequence\") if (useBlockCollection) if (state.seqNoIndent && !isblockseq && level > 0) body = writeBlockSequence(state, level - 1, node, compact);\n\telse body = writeBlockSequence(state, level, node, compact);\n\telse body = writeFlowSequence(state, level, node);\n\telse {\n\t\tconst layout = scalarLayout(state, node, parent, level, iskey, !block);\n\t\tdetectAllowedStyles(layout);\n\t\tfor (const rule of state.scalarStyleRules) rule(layout);\n\t\tbody = renderScalar(layout);\n\t\tstate.openEnded = (layout.style === SCALAR_STYLE.LITERAL_BLOCK || layout.style === SCALAR_STYLE.FOLDED_BLOCK) && (node.value === \"\\n\" || node.value.endsWith(\"\\n\\n\"));\n\t\tshouldPrintTag = node.tagged || body === \"\" && layout.flowOnly && parent?.kind === \"sequence\" && !hasAnchor || layout.style !== SCALAR_STYLE.PLAIN && node.tag !== state.defaultScalarTagName;\n\t}\n\tif ((node.kind === \"mapping\" || node.kind === \"sequence\") && !useBlockCollection) state.openEnded = false;\n\tif (useBlockCollection && compact && level > 0 && state.indent > 2) body = `${\" \".repeat(state.indent - 2)}${body}`;\n\tconst noBody = body === \"\";\n\tlet text = body;\n\tif (shouldPrintTag || hasAnchor) {\n\t\tconst props = [];\n\t\tconst tag = shouldPrintTag ? nodeTagShort(node) : null;\n\t\tconst anchor = hasAnchor ? `&${node.anchor}` : null;\n\t\tif (state.tagBeforeAnchor) {\n\t\t\tif (tag !== null) props.push(tag);\n\t\t\tif (anchor !== null) props.push(anchor);\n\t\t} else {\n\t\t\tif (anchor !== null) props.push(anchor);\n\t\t\tif (tag !== null) props.push(tag);\n\t\t}\n\t\tconst sep = body === \"\" || body.charCodeAt(0) === CHAR_LINE_FEED ? \"\" : \" \";\n\t\ttext = `${props.join(\" \")}${sep}${body}`;\n\t}\n\treturn {\n\t\ttext,\n\t\tnoBody\n\t};\n}\nfunction rootStartsOwnLine(node) {\n\treturn (node.kind === \"sequence\" || node.kind === \"mapping\") && node.style === COLLECTION_STYLE.BLOCK && node.items.length !== 0 && !node.tagged && node.anchor === void 0;\n}\nfunction writeDocumentDirectives(doc) {\n\tlet result = \"\";\n\tfor (const directive of doc.directives) {\n\t\tif (directive.kind === \"yaml\") {\n\t\t\tresult += `%YAML ${directive.version}\\n`;\n\t\t\tcontinue;\n\t\t}\n\t\tconst { handle, prefix } = directive;\n\t\tresult += `%TAG ${handle} ${prefix}\\n`;\n\t}\n\treturn result;\n}\n/**\n* Build YAML from AST.\n*\n* @category AST\n*/\nfunction present(documents, options) {\n\tconst state = createPresenterState(options);\n\tlet result = \"\";\n\tlet previousEnded = false;\n\tfor (let index = 0; index < documents.length; index += 1) {\n\t\tconst doc = documents[index];\n\t\tstate.openEnded = false;\n\t\tconst directives = writeDocumentDirectives(doc);\n\t\tconst hasDirectives = directives !== \"\";\n\t\tconst marker = doc.explicitStart || hasDirectives || index > 0 && !previousEnded;\n\t\tresult += directives;\n\t\tif (doc.contents === null) {\n\t\t\tif (marker) result += \"---\\n\";\n\t\t} else if (marker) {\n\t\t\tconst body = writeNode(state, 0, doc.contents, null, {\n\t\t\t\tblock: true,\n\t\t\t\tcompact: true\n\t\t\t}).text;\n\t\t\tconst sep = body === \"\" ? \"\" : hasDirectives || rootStartsOwnLine(doc.contents) ? \"\\n\" : \" \";\n\t\t\tresult += `---${sep}${body}\\n`;\n\t\t} else result += writeNode(state, 0, doc.contents, null, {\n\t\t\tblock: true,\n\t\t\tcompact: true\n\t\t}).text + \"\\n\";\n\t\tpreviousEnded = doc.explicitEnd || state.openEnded;\n\t\tif (previousEnded) result += \"...\\n\";\n\t}\n\treturn result;\n}\n//#endregion\n//#region src/dump.ts\nvar DEFAULT_DUMP_OPTIONS = {\n\t...DEFAULT_PRESENTER_OPTIONS,\n\tschema: DUMP_SCHEMA,\n\tskipInvalid: false,\n\tnoRefs: false,\n\tflowLevel: -1,\n\tsortKeys: false,\n\ttransform: () => {}\n};\nfunction defaultCompareFn(a, b) {\n\tconst x = String(a);\n\tconst y = String(b);\n\tif (x < y) return -1;\n\tif (x > y) return 1;\n\treturn 0;\n}\n/**\n* Serializes JS object as a YAML document. By default it can dump every\n* supported YAML type, so it throws an exception if you try to dump regexps or\n* functions. However, you can disable exceptions by setting the\n* {@link DumpOptions.skipInvalid} option to `true`.\n*\n* @category Main\n*/\nfunction dump(input, options = {}) {\n\tconst opts = {\n\t\t...DEFAULT_DUMP_OPTIONS,\n\t\t...options\n\t};\n\tconst documents = jsToAst(input, opts.schema, {\n\t\tnoRefs: opts.noRefs,\n\t\tskipInvalid: opts.skipInvalid\n\t});\n\tif (opts.flowLevel >= 0) visit(documents, (node, ctx) => {\n\t\tif (ctx.depth < opts.flowLevel) return;\n\t\tif (node.kind === \"sequence\" || node.kind === \"mapping\") node.style = COLLECTION_STYLE.FLOW;\n\t\treturn VISIT_SKIP;\n\t});\n\tif (opts.sortKeys) {\n\t\tconst compareFn = opts.sortKeys === true ? defaultCompareFn : opts.sortKeys;\n\t\tvisit(documents, (node) => {\n\t\t\tif (node.kind !== \"mapping\") return;\n\t\t\tnode.items.sort((a, b) => compareFn(a.key.kind === \"scalar\" ? a.key.value : \"\", b.key.kind === \"scalar\" ? b.key.value : \"\"));\n\t\t});\n\t}\n\topts.transform(documents);\n\treturn present(documents, {\n\t\t...pick(opts, Object.keys(DEFAULT_PRESENTER_OPTIONS)),\n\t\tschema: opts.schema\n\t});\n}\n//#endregion\n//#region src/ast/from_events.ts\nvar NO_RANGE = -1;\nfunction eventPosition(event) {\n\tif (\"tagStart\" in event && event.tagStart !== NO_RANGE) return event.tagStart;\n\tif (\"anchorStart\" in event && event.anchorStart !== NO_RANGE) return event.anchorStart;\n\tif (\"valueStart\" in event && event.valueStart !== NO_RANGE) return event.valueStart;\n\tif (\"start\" in event) return event.start;\n\treturn 0;\n}\nfunction rawTag(state, event) {\n\treturn event.tagStart === NO_RANGE ? \"\" : state.source.slice(event.tagStart, event.tagEnd);\n}\nfunction anchorName(state, event) {\n\treturn event.anchorStart === NO_RANGE ? void 0 : state.source.slice(event.anchorStart, event.anchorEnd);\n}\nfunction buildScalar(state, event) {\n\tconst value = getScalarValue(state.source, event);\n\tconst raw = rawTag(state, event);\n\tlet tag;\n\tlet tagged = false;\n\tif (raw !== \"\") {\n\t\ttagged = true;\n\t\ttag = raw;\n\t} else if (event.style === SCALAR_STYLE.PLAIN) tag = state.schema.resolveImplicitScalarTag(value).tag.tagName;\n\telse tag = state.schema.defaultScalarTag.tagName;\n\treturn {\n\t\tkind: \"scalar\",\n\t\ttag,\n\t\ttagged,\n\t\tstyle: event.style,\n\t\tanchor: anchorName(state, event),\n\t\tvalue\n\t};\n}\nfunction buildCollection(state, event, defaultTagName) {\n\tconst raw = rawTag(state, event);\n\tlet tag;\n\tlet tagged = false;\n\tif (raw === \"\") tag = defaultTagName;\n\telse {\n\t\ttag = raw;\n\t\ttagged = true;\n\t}\n\treturn {\n\t\ttag,\n\t\ttagged,\n\t\tstyle: event.style,\n\t\tanchor: anchorName(state, event)\n\t};\n}\nfunction addNode(state, node) {\n\tconst frame = state.frames[state.frames.length - 1];\n\tif (frame.kind === \"document\") frame.doc.contents = node;\n\telse if (frame.kind === \"sequence\") frame.node.items.push(node);\n\telse if (frame.key) {\n\t\tframe.node.items.push({\n\t\t\tkey: frame.key,\n\t\t\tvalue: node\n\t\t});\n\t\tframe.key = null;\n\t} else frame.key = node;\n}\n/**\n* Builds an AST from parser events\n*\n* @category AST\n*/\nfunction eventsToAst(events, options) {\n\tconst state = {\n\t\tsource: options.source,\n\t\tschema: options.schema,\n\t\teventIndex: 0,\n\t\tposition: 0,\n\t\tframes: [],\n\t\tdocuments: []\n\t};\n\twhile (state.eventIndex < events.length) {\n\t\tconst event = events[state.eventIndex++];\n\t\tstate.position = eventPosition(event);\n\t\tswitch (event.type) {\n\t\t\tcase EVENT_ID.DOCUMENT: {\n\t\t\t\tconst doc = {\n\t\t\t\t\tcontents: null,\n\t\t\t\t\texplicitStart: event.explicitStart,\n\t\t\t\t\texplicitEnd: event.explicitEnd,\n\t\t\t\t\tdirectives: event.directives\n\t\t\t\t};\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"document\",\n\t\t\t\t\tdoc\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.SCALAR:\n\t\t\t\taddNode(state, buildScalar(state, event));\n\t\t\t\tbreak;\n\t\t\tcase EVENT_ID.SEQUENCE: {\n\t\t\t\tconst { tag, tagged, style, anchor } = buildCollection(state, event, \"tag:yaml.org,2002:seq\");\n\t\t\t\tconst node = {\n\t\t\t\t\tkind: \"sequence\",\n\t\t\t\t\ttag,\n\t\t\t\t\ttagged,\n\t\t\t\t\tstyle,\n\t\t\t\t\tanchor,\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"sequence\",\n\t\t\t\t\tnode\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.MAPPING: {\n\t\t\t\tconst { tag, tagged, style, anchor } = buildCollection(state, event, \"tag:yaml.org,2002:map\");\n\t\t\t\tconst node = {\n\t\t\t\t\tkind: \"mapping\",\n\t\t\t\t\ttag,\n\t\t\t\t\ttagged,\n\t\t\t\t\tstyle,\n\t\t\t\t\tanchor,\n\t\t\t\t\titems: []\n\t\t\t\t};\n\t\t\t\tstate.frames.push({\n\t\t\t\t\tkind: \"mapping\",\n\t\t\t\t\tnode,\n\t\t\t\t\tkey: null\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase EVENT_ID.ALIAS:\n\t\t\t\taddNode(state, {\n\t\t\t\t\tkind: \"alias\",\n\t\t\t\t\tanchor: state.source.slice(event.anchorStart, event.anchorEnd)\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase EVENT_ID.POP: {\n\t\t\t\tconst frame = state.frames.pop();\n\t\t\t\tif (frame.kind === \"mapping\" && frame.key) throw new Error(\"incomplete mapping pair in event stream\");\n\t\t\t\tif (frame.kind === \"document\") state.documents.push(frame.doc);\n\t\t\t\telse addNode(state, frame.node);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn state.documents;\n}\n//#endregion\n//#region src/index.ts\n/** @deprecated Use `EVENT_ID.DOCUMENT` instead. @internal */\nvar EVENT_DOCUMENT = EVENT_ID.DOCUMENT;\n/** @deprecated Use `EVENT_ID.SEQUENCE` instead. @internal */\nvar EVENT_SEQUENCE = EVENT_ID.SEQUENCE;\n/** @deprecated Use `EVENT_ID.MAPPING` instead. @internal */\nvar EVENT_MAPPING = EVENT_ID.MAPPING;\n/** @deprecated Use `EVENT_ID.SCALAR` instead. @internal */\nvar EVENT_SCALAR = EVENT_ID.SCALAR;\n/** @deprecated Use `EVENT_ID.ALIAS` instead. @internal */\nvar EVENT_ALIAS = EVENT_ID.ALIAS;\n/** @deprecated Use `EVENT_ID.POP` instead. @internal */\nvar EVENT_POP = EVENT_ID.POP;\n/** @deprecated Use `SCALAR_STYLE.PLAIN` instead. @internal */\nvar SCALAR_STYLE_PLAIN = SCALAR_STYLE.PLAIN;\n/** @deprecated Use `SCALAR_STYLE.SINGLE_QUOTED` instead. @internal */\nvar SCALAR_STYLE_SINGLE_QUOTED = SCALAR_STYLE.SINGLE_QUOTED;\n/** @deprecated Use `SCALAR_STYLE.DOUBLE_QUOTED` instead. @internal */\nvar SCALAR_STYLE_DOUBLE_QUOTED = SCALAR_STYLE.DOUBLE_QUOTED;\n/** @deprecated Use `SCALAR_STYLE.LITERAL_BLOCK` instead. @internal */\nvar SCALAR_STYLE_LITERAL_BLOCK = SCALAR_STYLE.LITERAL_BLOCK;\n/** @deprecated Use `SCALAR_STYLE.FOLDED_BLOCK` instead. @internal */\nvar SCALAR_STYLE_FOLDED_BLOCK = SCALAR_STYLE.FOLDED_BLOCK;\n/** @deprecated Use `COLLECTION_STYLE.BLOCK` instead. @internal */\nvar COLLECTION_STYLE_BLOCK = COLLECTION_STYLE.BLOCK;\n/** @deprecated Use `COLLECTION_STYLE.FLOW` instead. @internal */\nvar COLLECTION_STYLE_FLOW = COLLECTION_STYLE.FLOW;\n/** @deprecated Use `CHOMPING_MODE.CLIP` instead. @internal */\nvar CHOMPING_CLIP = CHOMPING_MODE.CLIP;\n/** @deprecated Use `CHOMPING_MODE.STRIP` instead. @internal */\nvar CHOMPING_STRIP = CHOMPING_MODE.STRIP;\n/** @deprecated Use `CHOMPING_MODE.KEEP` instead. @internal */\nvar CHOMPING_KEEP = CHOMPING_MODE.KEEP;\n//#endregion\nexport { CHOMPING_CLIP, CHOMPING_KEEP, CHOMPING_MODE, CHOMPING_STRIP, COLLECTION_STYLE, COLLECTION_STYLE_BLOCK, COLLECTION_STYLE_FLOW, CORE_SCHEMA, DEFAULT_SCALAR_STYLE_RULES, DUMP_SCHEMA, EVENT_ALIAS, EVENT_DOCUMENT, EVENT_ID, EVENT_MAPPING, EVENT_POP, EVENT_SCALAR, EVENT_SEQUENCE, FAILSAFE_SCHEMA, JSON_SCHEMA, NOT_RESOLVED, SCALAR_STYLE, SCALAR_STYLE_DOUBLE_QUOTED, SCALAR_STYLE_FOLDED_BLOCK, SCALAR_STYLE_LITERAL_BLOCK, SCALAR_STYLE_PLAIN, SCALAR_STYLE_SINGLE_QUOTED, Schema, VISIT_BREAK, VISIT_SKIP, YAML11_SCHEMA, YAMLException, binaryTag, boolCoreTag, boolJsonTag, boolYaml11Tag, constructFromEvents, defineMappingTag, defineScalarTag, defineSequenceTag, dump, eventsToAst, floatCoreTag, floatJsonTag, floatYaml11Tag, getScalarValue, intCoreTag, intJsonTag, intYaml11Tag, jsToAst, legacyMapTag, load, loadAll, mapTag, mergeTag, nullCoreTag, nullJsonTag, nullYaml11Tag, omapTag, pairsTag, parseEvents, present, realMapTag, seqTag, setTag, strTag, timestampTag, visit };\n\n//# sourceMappingURL=js-yaml.mjs.map","import { load as yamlLoad, dump as yamlDump } from 'js-yaml';\r\nimport fs from 'fs/promises';\r\nimport path from 'path';\r\n\r\n/**\r\n * \r\n * @param {string} dir \r\n */\r\nexport const ensurePathExists = async (dir) => {\r\n try {\r\n await fs.access(dir);\r\n } catch (err) {\r\n await fs.mkdir(dir, { recursive: true });\r\n }\r\n}\r\n\r\n/**\r\n * Checks if a file exists.\r\n * \r\n * @param {string} filePath \r\n * @returns {Promise<boolean>} True if the file exists, false otherwise\r\n */\r\nexport const fileExists = async (filePath) => {\r\n try {\r\n await fs.access(filePath);\r\n return true;\r\n } catch (err) {\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Writes a JavaScript object to a YAML file.\r\n * \r\n * @param {string} filePath \r\n * @param {Object} data \r\n */\r\nexport const writeYamlFile = async (filePath, data) => {\r\n const yamlString = yamlDump(data);\r\n await ensurePathExists(path.dirname(filePath));\r\n await fs.writeFile(filePath, yamlString);\r\n}\r\n\r\n/**\r\n * Writes a JavaScript object to a JSON file.\r\n * \r\n * @param {string} filePath \r\n * @param {Object} data \r\n */\r\nexport const writeJsonFile = async (filePath, data) => {\r\n const jsonString = JSON.stringify(data, null, 2);\r\n await ensurePathExists(path.dirname(filePath));\r\n await fs.writeFile(filePath, jsonString);\r\n}\r\n\r\n/**\r\n * Read a Yaml file and parse its content into a JavaScript object.\r\n * \r\n * @param {string} filePath\r\n * @returns {Promise<Object|null>} The parsed Yaml object\r\n */\r\nexport const readYamlFile = async (filePath) => {\r\n if (!await fileExists(filePath)) {\r\n return null;\r\n }\r\n const yamlString = await fs.readFile(filePath, 'utf8');\r\n return /** @type {Object} */ (yamlLoad(yamlString));\r\n}\r\n \r\n\r\n/**\r\n * Reads a JSON file and parses its content into a JavaScript object.\r\n * \r\n * @param {string} filePath \r\n * @returns {Promise<Object|null>} The parsed JSON object\r\n */\r\nexport const readJsonFile = async (filePath) => {\r\n if (!await fileExists(filePath)) {\r\n return null;\r\n }\r\n const jsonString = await fs.readFile(filePath, 'utf8');\r\n return JSON.parse(jsonString);\r\n}\r\n","import { fileExists, readJsonFile, readYamlFile } from \"./utils/io.js\";\n\n/**\n * @typedef {import(\"@gdacm/base-types\").Info} Info\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\n * @typedef {import(\"@gdacm/base-types\").GenericOptions} GenericOptions\n */\n\n/**\n * @template {GenericOptions} T\n * @typedef {import(\"@gdacm/base-types\").MetaOptions<T>} MetaOptions\n */\n\n/**\n * Get info from environment variables.\n * - GDM_TEST_NAME: String (-> info.testName)\n * - GDM_API_URL: String (-> info.apiUrl)\n * - GDM_API_TOKEN: String (-> info.apiToken)\n * - GDM_WRITE_ON_DISK: Boolean (-> info.writeOnDisk)\n * - GDM_CREATE_ON_GRAFANA: Boolean (-> info.createOnGrafana)\n * - GDM_INCLUDE_*: String (-> info.includes)\n * @type {Array<{\n * name: String, \n * prefix?: String,\n * key: String, \n * type: Function, \n * subtype?: Function,\n * }>}\n */\nconst envvars = [\n {\n name: 'GDM_TEST_NAME',\n key: 'testName',\n type: String,\n },\n {\n name: 'GDM_API_URL',\n key: 'apiUrl',\n type: String,\n },\n {\n name: 'GDM_API_TOKEN',\n key: 'apiToken',\n type: String,\n },\n {\n name: 'GDM_WRITE_ON_DISK',\n key: 'writeOnDisk',\n type: Boolean,\n },\n {\n name: 'GDM_CREATE_ON_GRAFANA',\n key: 'createOnGrafana',\n type: Boolean,\n },\n {\n name: 'GDM_INCLUDE',\n prefix: 'GDM_INCLUDE_',\n key: 'includes',\n type: Array,\n subtype: String,\n }\n]\n\n\n/**\n * @param {...(Info|undefined)} infos \n * @returns {Info}\n */\nexport const mergeInfos = (...infos) => {\n /** @type{Info} */\n let result = {};\n for (const info of infos) {\n result = {\n ...result,\n ...info,\n includes: [\n ...(result?.includes ?? []),\n ...(info?.includes ?? []),\n ]\n };\n }\n return result;\n};\n\n\n/**\n * @returns {Info}\n */\nexport const getEnvVarsInfo = () => {\n /**\n * @type {Record<String, String|Number|Boolean|Array<String|Number|Boolean>>}\n */\n const info = {};\n envvars.forEach(\n (envvar) => {\n const stringValue = process.env[envvar.name];\n if (stringValue !== undefined) {\n if (envvar.type === Number) {\n info[envvar.key] = Number(stringValue);\n } else if (envvar.type === Boolean) {\n info[envvar.key] = (stringValue === 'true') || (stringValue === '1');\n } else if (envvar.type === String) {\n info[envvar.key] = stringValue;\n } else if (envvar.type === Array) {\n if (!info[envvar.key]) {\n info[envvar.key] = [];\n }\n /** @type{Array<String|Number|Boolean>} */\n // @ts-ignore\n const array = info[envvar.key];\n if (envvar.subtype === String) {\n array.push(stringValue);\n } else if (envvar.subtype === Number) {\n array.push(Number(stringValue));\n } else if (envvar.subtype === Boolean) {\n array.push((stringValue === 'true') || (stringValue === '1'));\n }\n }\n }\n if (envvar.prefix) {\n const prefix = envvar.prefix;\n const envsThatStartWith = Object.keys(process.env).filter(key => key.startsWith(prefix)).sort();\n\n if (envvar.type === Array && envsThatStartWith.length > 0) {\n for (const envName of envsThatStartWith) {\n const stringValue = process.env[envName];\n if (stringValue !== undefined) {\n if (!info[envvar.key]) {\n info[envvar.key] = [];\n }\n /** @type{Array<String|Number|Boolean>} */\n // @ts-ignore\n const array = info[envvar.key];\n if (envvar.subtype === String) {\n array.push(stringValue);\n } else if (envvar.subtype === Number) {\n array.push(Number(stringValue));\n } else if (envvar.subtype === Boolean) {\n array.push((stringValue === 'true') || (stringValue === '1'));\n }\n }\n }\n }\n }\n }\n );\n return info;\n};\n\n/**\n * @param {String} folderPath\n * @param {String} infoPath \n * @returns {Promise<Info[]|undefined>}\n */\nconst getInfoFromFolderAndPath = async (folderPath, infoPath) => {\n const infoFilePath = `${folderPath}/${infoPath}`;\n const result = []\n for (const { ext, readFunc } of [\n {\n ext: 'json',\n readFunc: readJsonFile,\n },\n {\n ext: 'yaml',\n readFunc: readYamlFile,\n\n },\n {\n ext: 'yml',\n readFunc: readYamlFile,\n },\n ]) {\n const filePath = `${infoFilePath}.${ext}`;\n if (await fileExists(filePath)) {\n const info = await readFunc(filePath);\n if (info) {\n result.push(info);\n }\n }\n }\n return result.length > 0 ? result : undefined;\n};\n\n/**\n * @param {String|String[]} folderPaths \n * @param {String} infoPath \n * @returns {Promise<Info[]>}\n */\nconst getInfosFromFoldersAndPaths = async (folderPaths, infoPath) => {\n const paths = Array.isArray(folderPaths) ? folderPaths : [folderPaths];\n const infos = [];\n for (const path of paths) {\n const infosFromPath = await getInfoFromFolderAndPath(path, infoPath);\n if (infosFromPath) {\n infos.push(...infosFromPath);\n }\n }\n return infos;\n}\n\n/**\n * @param {String|String[]} folderPaths \n * @returns {Promise<Info>}\n */\nconst getInfoFromFolders = async (folderPaths) => {\n let infoResult = {};\n for (const info of await getInfosFromFoldersAndPaths(folderPaths, 'info')) {\n infoResult = mergeInfos(infoResult, info);\n }\n return infoResult;\n}\n\n\n/**\n * @template T\n * @param {String} key \n * @param {GenericMetaOptions} metaOptions\n * @param {T} [defaultValue]\n * @returns {T}\n */\nexport const getFromOptionsOrInfo = (key, metaOptions, defaultValue) => {\n const value = metaOptions?.[key] ?? metaOptions?.info?.[key] ?? defaultValue;\n return value;\n};\n\n/**\n * @template {GenericOptions} T\n * @param {...GenericOptions|undefined} metaOptionsList \n * @returns {MetaOptions<T>}\n */\nexport const mergeOptions = (...metaOptionsList) => {\n let mergedMetaOptions = /** @type {MetaOptions<T>} */ ({});\n metaOptionsList.forEach(metaOptions => {\n if (metaOptions) {\n mergedMetaOptions = { ...mergedMetaOptions, ...metaOptions, info: mergeInfos(mergedMetaOptions?.info, metaOptions?.info) };\n }\n });\n return mergedMetaOptions;\n};\n\n/**\n * @param {Info|Info[]|undefined} infoCode\n * @param {String|String[]} localFolderPaths \n */\nexport const getInfo = async (infoCode, localFolderPaths) => {\n const infoLocal = await getInfoFromFolders(localFolderPaths);\n const infoEnvVars = getEnvVarsInfo();\n const infosCode = Array.isArray(infoCode) ? infoCode : (infoCode ? [infoCode] : []);\n let infoIntermediate = mergeInfos(...infosCode, infoLocal, infoEnvVars);\n /** @type{Set<String>} */\n const included = new Set()\n const includes = infoIntermediate.includes;\n if (includes) {\n let hasNewIncludes = true;\n while (hasNewIncludes) {\n hasNewIncludes = false;\n for (const include of includes) {\n if (!included.has(include)) {\n const infosFromIncludes = await getInfosFromFoldersAndPaths(localFolderPaths, include);\n for (const infoFromInclude of infosFromIncludes) {\n infoIntermediate = mergeInfos(infoIntermediate, infoFromInclude);\n hasNewIncludes = true;\n }\n included.add(include);\n }\n }\n }\n }\n return infoIntermediate;\n}","export class FolderInfo {\r\n constructor() {\r\n /** @type {string|undefined} */\r\n this._vid = undefined;\r\n /** @type {string|undefined} */\r\n this._sid = undefined;\r\n /** @type {string|undefined} */\r\n this._name = undefined;\r\n /** @type {string|undefined} */\r\n this._emoji = undefined;\r\n /** @type {string|undefined} */\r\n this._parentVid = undefined;\r\n /** @type {boolean} */\r\n this._fromServer = false;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get vid() {\r\n return this._vid;\r\n }\r\n\r\n /**\r\n * @param {string} vid\r\n * @returns {FolderInfo}\r\n */\r\n setVid(vid) {\r\n this._vid = vid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get sid() {\r\n return this._sid;\r\n }\r\n /**\r\n * @param {string} sid\r\n * @returns {FolderInfo}\r\n */\r\n setSid(sid) {\r\n this._sid = sid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get name() {\r\n return this._name;\r\n }\r\n\r\n /**\r\n * @param {string} name\r\n * @returns {FolderInfo}\r\n */\r\n setName(name) {\r\n this._name = name;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get emoji() {\r\n return this._emoji;\r\n }\r\n\r\n /**\r\n * @param {string} emoji\r\n * @returns {FolderInfo}\r\n */\r\n setEmoji(emoji) {\r\n this._emoji = emoji;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get parentVid() {\r\n return this._parentVid;\r\n }\r\n\r\n /**\r\n * @param {string} parentVid\r\n * @returns {FolderInfo}\r\n */\r\n setParentVid(parentVid) {\r\n this._parentVid = parentVid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {boolean}\r\n */\r\n get fromServer() {\r\n return this._fromServer;\r\n }\r\n\r\n /**\r\n * @param {boolean} fromServer\r\n * @returns {FolderInfo}\r\n */\r\n setFromServer(fromServer) {\r\n this._fromServer = fromServer;\r\n return this;\r\n }\r\n}","import { GrafanaItem } from \"@gdacm/grafana-items\";\r\nimport { FolderInfo } from \"./FolderInfo.js\";\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\r\n * @typedef {import(\"@gdacm/base-types\").DashboardMetaOptions} DashboardMetaOptions\r\n */\r\n\r\n/**\r\n * @typedef {FolderInfo|String} FolderInfoDefinition\r\n */\r\n\r\n\r\nexport class DashboardInfo {\r\n constructor() {\r\n /** @type {string|undefined} */\r\n this._sid = undefined;\r\n /** @type {string|undefined} */\r\n this._vid = undefined;\r\n /** @type {string|undefined} */\r\n this._grafanaId = undefined;\r\n /** @type {string|undefined} */\r\n this._title = undefined;\r\n /** @type {string|undefined} */\r\n this._emoji = undefined;\r\n /** @type {FolderInfoDefinition[]} */\r\n this._path = [];\r\n /** @type {string[]} */\r\n this._tags = [];\r\n /**\r\n * @type {GenericMetaOptions} \r\n */\r\n this._metaOptions = {};\r\n /** @type {((uid: string, metaOptions: DashboardMetaOptions) => Promise<GrafanaItem>)|undefined} */\r\n this._dashboardGenerator = undefined;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get sid() {\r\n return this._sid;\r\n }\r\n\r\n /**\r\n * @param {string} sid\r\n * @returns {this}\r\n */\r\n setSid(sid) {\r\n this._sid = sid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get vid() {\r\n return this._vid;\r\n }\r\n\r\n /**\r\n * @param {string} vid\r\n * @returns {this}\r\n **/\r\n setVid(vid) {\r\n this._vid = vid;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get grafanaId() {\r\n return this._grafanaId;\r\n }\r\n\r\n /**\r\n * @param {string} grafanaId\r\n * @returns {this}\r\n */\r\n setGrafanaId(grafanaId) {\r\n this._grafanaId = grafanaId;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get title() {\r\n return this._title;\r\n }\r\n\r\n /**\r\n * @param {string} title\r\n * @returns {this}\r\n */\r\n setTitle(title) {\r\n this._title = title;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string|undefined}\r\n */\r\n get emoji() {\r\n return this._emoji;\r\n }\r\n\r\n /**\r\n * @param {string} emoji\r\n * @returns {this}\r\n */\r\n setEmoji(emoji) {\r\n this._emoji = emoji;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {FolderInfoDefinition[]}\r\n */\r\n get path() {\r\n return [...this._path];\r\n }\r\n\r\n /**\r\n * @param {FolderInfoDefinition[]} path\r\n * @returns {this}\r\n */\r\n setPath(path) {\r\n this._path = [...path];\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {FolderInfoDefinition[]} path\r\n * @returns {this}\r\n */\r\n injectIntoPath(path) {\r\n this._path = [...path, ...this._path];\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {string[]}\r\n */\r\n get tags() {\r\n return this._tags;\r\n }\r\n\r\n /**\r\n * @param {string[]} tags\r\n * @returns {this}\r\n */\r\n setTags(tags) {\r\n this._tags = tags;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {GenericMetaOptions}\r\n */\r\n get metaOptions() {\r\n return this._metaOptions;\r\n }\r\n\r\n /**\r\n * @param {string} key\r\n * @param {any} value \r\n * @returns {this}\r\n */\r\n addMetaOption(key, value) {\r\n this._metaOptions[key] = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * @returns {((uid: string, metaOptions: DashboardMetaOptions) => Promise<GrafanaItem>)|undefined}\r\n */\r\n get getDashboard() {\r\n return this._dashboardGenerator;\r\n }\r\n\r\n /**\r\n * @param {((uid: string, metaOptions: DashboardMetaOptions) => Promise<GrafanaItem>)|undefined} dashboardGenerator\r\n * @returns {this}\r\n */\r\n setDashboardGenerator(dashboardGenerator) {\r\n this._dashboardGenerator = dashboardGenerator;\r\n return this;\r\n }\r\n}\r\n","import { DashboardInfo } from \"./DashboardInfo.js\";\r\nimport { FolderInfo } from \"./index.js\";\r\n\r\n/**\r\n * @typedef {(DashboardInfo|DashboardsInfo|DashboardInfo[]|DashboardsInfo[]|((info: Object) => DashboardInfo)|((info: Object) => DashboardsInfo)|((info: Object) => DashboardInfo[])|((info: Object) => DashboardsInfo[]))} DashboardsInfoItem\r\n */\r\n\r\nexport class DashboardsInfo {\r\n /**\r\n * @param {DashboardsInfoItem[]} items\r\n */\r\n constructor(...items) {\r\n /** @type {DashboardsInfoItem[]} */\r\n this._items = [];\r\n items.forEach((item) => this._items.push(item));\r\n /**\r\n * @type {((dashboardInfo: DashboardInfo, info: Object) => DashboardInfo)[]} \r\n */\r\n this._onDashboard = []\r\n }\r\n\r\n /**\r\n * @param {Object} info\r\n * @param {((dashboardInfo: DashboardInfo, info: Object) => DashboardInfo)[]} onDashboards\r\n * @returns {DashboardInfo[]}\r\n */\r\n getItems(info, onDashboards = []) {\r\n /** @type {DashboardInfo[]} */\r\n const result = [];\r\n for (const item of this._items) {\r\n if (item instanceof DashboardInfo) {\r\n result.push(item);\r\n } else if (item instanceof DashboardsInfo) {\r\n for (const subItem of item.getItems(info)) {\r\n result.push(subItem);\r\n }\r\n } else if (Array.isArray(item)) {\r\n for (const subItem of item) {\r\n if (subItem instanceof DashboardInfo) {\r\n result.push(subItem);\r\n } else if (subItem instanceof DashboardsInfo) {\r\n for (const subSubItem of subItem.getItems(info)) {\r\n result.push(subSubItem);\r\n }\r\n }\r\n }\r\n } else if (typeof item === 'function') {\r\n const itemResult = item(info);\r\n if (itemResult instanceof DashboardInfo) {\r\n result.push(itemResult);\r\n } else if (itemResult instanceof DashboardsInfo) {\r\n for (const subItem of itemResult.getItems(info)) {\r\n result.push(subItem);\r\n }\r\n } else if (Array.isArray(itemResult)) {\r\n for (const subItem of itemResult) {\r\n if (subItem instanceof DashboardInfo) {\r\n result.push(subItem);\r\n } else if (subItem instanceof DashboardsInfo) {\r\n for (const subSubItem of subItem.getItems(info)) {\r\n result.push(subSubItem);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n const allOnDashboards = [...this._onDashboard, ...onDashboards];\r\n return result.map(dashboardInfo => {\r\n let dashboardInfoResult = dashboardInfo;\r\n for (const onDashboard of allOnDashboards) {\r\n dashboardInfoResult=onDashboard(dashboardInfo, info);\r\n }\r\n return dashboardInfoResult;\r\n });\r\n }\r\n\r\n /**\r\n * @param {((dashboardInfo: DashboardInfo, info: Object) => DashboardInfo)} callback\r\n * @returns {DashboardsInfo}\r\n **/\r\n forEachDashboard(callback) {\r\n this._onDashboard.push(callback);\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {FolderInfo[]} path \r\n * @returns {DashboardsInfo}\r\n */\r\n setPath(path) {\r\n return this.forEachDashboard((dashboardInfo) => dashboardInfo.setPath(path));\r\n }\r\n}","import { DashboardInfo } from \"./DashboardInfo.js\";\r\nimport { DashboardsInfo } from \"./DashboardsInfo.js\";\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\r\n */\r\n\r\n/**\r\n * @typedef {{\r\n * rootVid: String|undefined,\r\n * rootGrafanaFolder: String|undefined,\r\n * vidPrefix: String|undefined,\r\n * metaOptions: GenericMetaOptions\r\n * }} DashboardProjectProperties\r\n */\r\n\r\nexport class DashboardProject {\r\n /**\r\n * @param {String} name\r\n */\r\n constructor(name) {\r\n this._name = name;\r\n /**\r\n * @type {DashboardProjectProperties}\r\n */\r\n this._properties = {\r\n rootVid: undefined,\r\n rootGrafanaFolder: undefined,\r\n vidPrefix: undefined,\r\n metaOptions: {},\r\n };\r\n /**\r\n * @type {{[sid: String]: DashboardInfo}}\r\n */\r\n this._dashboards = {};\r\n\r\n /**\r\n * @type {DashboardsInfo[]}\r\n */\r\n this._dashboardsCollection = [];\r\n }\r\n\r\n /**\r\n * @param {DashboardInfo} dashboardInfo \r\n */\r\n addDashboardInfo(dashboardInfo) {\r\n if (dashboardInfo.sid) {\r\n this._dashboards[dashboardInfo.sid] = dashboardInfo;\r\n }\r\n }\r\n\r\n /**\r\n * @param {DashboardsInfo} dashboardsInfo\r\n */\r\n addDashboardsInfo(dashboardsInfo) {\r\n this._dashboardsCollection.push(dashboardsInfo);\r\n }\r\n\r\n /**\r\n * @param {String} vid \r\n */\r\n setRootVid(vid) {\r\n this._properties.rootVid = vid;\r\n }\r\n\r\n /**\r\n * @param {String} folder\r\n */\r\n setRootGrafanaFolder(folder) {\r\n this._properties.rootGrafanaFolder = folder;\r\n }\r\n\r\n /**\r\n * @param {String} prefix\r\n */\r\n setVidPrefix(prefix) {\r\n this._properties.vidPrefix = prefix;\r\n }\r\n\r\n /**\r\n * @param {GenericMetaOptions} metaOptions\r\n */\r\n setMetaOptions(metaOptions) {\r\n this._properties.metaOptions = metaOptions;\r\n }\r\n\r\n get dashboards() {\r\n return { ...this._dashboards };\r\n }\r\n\r\n /**\r\n * @param {Record<String, String|Number|Boolean|*>} info \r\n * @returns {DashboardInfo[]}\r\n */\r\n getDashboards(info) {\r\n /** @type {DashboardInfo[]} */\r\n const result = [];\r\n for (const sid in this._dashboards) {\r\n const dashboardInfo = this._dashboards[sid];\r\n result.push(dashboardInfo);\r\n }\r\n for (const dashboardsInfo of this._dashboardsCollection) {\r\n for (const dashboardInfo of dashboardsInfo.getItems(info)) {\r\n result.push(dashboardInfo);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n get properties() {\r\n return { ...this._properties };\r\n }\r\n\r\n get rootVid() {\r\n return this._properties.rootVid;\r\n }\r\n\r\n get rootGrafanaFolder() {\r\n return this._properties.rootGrafanaFolder;\r\n }\r\n\r\n get vidPrefix() {\r\n return this._properties.vidPrefix;\r\n }\r\n\r\n get metaOptions() {\r\n return this._properties.metaOptions;\r\n }\r\n}","import crypto from 'crypto';\r\n\r\n/**\r\n * \r\n * @param {string} input \r\n * @returns {string}\r\n */\r\nconst getHash = (input) => {\r\n return crypto.createHash('sha256').update(input).digest('hex');\r\n}\r\n\r\n/**\r\n * \r\n * @param {string|undefined} vid\r\n * @returns {string|undefined} The Grafana ID (40 characters) or undefined if vid is undefined\r\n */\r\nconst getGrafanaId = (vid) => {\r\n if (!vid) {\r\n return undefined\r\n }\r\n if (vid.length <= 40) {\r\n return vid;\r\n }\r\n return getHash(vid).substring(0, 40);\r\n}\r\n\r\n/**\r\n * @param {String} str \r\n * @returns {String} The string without diacritics\r\n */\r\nconst removeDiacritics = (str) => {\r\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\r\n}\r\n\r\n/**\r\n * @param {string} input\r\n * @returns {string} The slugified version of the input\r\n */\r\nconst getSlug = (input) => {\r\n return removeDiacritics(input).toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)+/g, '');\r\n}\r\n\r\nconst segmentString = new Intl.Segmenter(\"fr\", {\r\n granularity: \"grapheme\",\r\n});\r\n\r\n/**\r\n * @param {String} str\r\n * @returns {String}\r\n */\r\nconst getFirstEmoji = (str) => {\r\n const emojis = [...segmentString.segment(str)].filter(({ segment }) => /\\p{Extended_Pictographic}/u.test(segment));\r\n return emojis[0]?.segment;\r\n}\r\n\r\n/**\r\n * @param {string} str \r\n * @param {string} newEmoji \r\n * @returns {string} The string with the first emoji replaced by the new emoji\r\n */\r\nconst replaceFirstEmojiWithOtherEmoji = (str, newEmoji) => {\r\n const firstEmoji = getFirstEmoji(str);\r\n if (firstEmoji) {\r\n return str.replace(firstEmoji, newEmoji);\r\n }\r\n return str;\r\n}\r\n\r\n/**\r\n * @param {String} str \r\n * @param {String} newEmoji \r\n * @returns {String}\r\n */\r\nconst replaceFirstEmojiWithOtherEmojiOrAddOne = (str, newEmoji) => {\r\n const x = getFirstEmoji(str)\r\n if (x) {\r\n return str.replace(x, newEmoji);\r\n } else {\r\n return `${newEmoji} ${str}`;\r\n }\r\n}\r\n\r\n/**\r\n * @param {String} str \r\n * @param {String} newEmoji \r\n * @returns {String}\r\n */\r\nconst addEmojiIfNoEmojiPresent = (str, newEmoji) => {\r\n const x = getFirstEmoji(str)\r\n if (x) {\r\n return str;\r\n } else {\r\n return `${newEmoji} ${str}`;\r\n }\r\n}\r\n\r\nexport { getGrafanaId, getSlug, replaceFirstEmojiWithOtherEmoji, replaceFirstEmojiWithOtherEmojiOrAddOne, addEmojiIfNoEmojiPresent, getFirstEmoji };","/**\r\n * \r\n * @param {{[header: String]: String}} headers\r\n * @param {Object} [options] \r\n * @param {String} [options.token] - The API token for authentication\r\n * @param {String} [options.login] - The login for basic authentication (not supported)\r\n * @param {String} [options.password] - The password for basic authentication (not supported)\r\n */\r\nconst ensureAuthentication = (headers, options) => {\r\n if (options?.token) {\r\n headers['Authorization'] = `Bearer ${options.token}`;\r\n }\r\n if (options?.login !== undefined || options?.password !== undefined) {\r\n throw new Error('Basic authentication is not supported (yet?). Please use a token instead as it\\'s a more secure method.');\r\n }\r\n}\r\n\r\n/**\r\n * @param {Response} response \r\n */\r\nconst ensureResponseOk = (response) => {\r\n if (!response.ok) {\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n}\r\n\r\n/**\r\n * \r\n * @param {String} url \r\n * @param {Object|null|undefined} data \r\n * @param {{[header: String]: String}} headers \r\n * @param {String} method \r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst processQuery = async (url, data, headers, method, options) => {\r\n ensureAuthentication(headers, options);\r\n const extra = data ? { body: JSON.stringify(data) } : {};\r\n const response = await fetch(url, {\r\n method: method,\r\n headers: headers,\r\n ...extra,\r\n });\r\n ensureResponseOk(response);\r\n return response.json();\r\n}\r\n\r\n/**\r\n * @param {String} url \r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst getJson = async (url, options) => {\r\n return processQuery(url, null, {}, 'GET', options);\r\n}\r\n\r\n/**\r\n * @param {String} url \r\n * @param {Object|null|undefined} [data]\r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst postJson = async (url, data, options) => {\r\n return processQuery(url, data, { 'Content-Type': 'application/json' }, 'POST', options);\r\n}\r\n\r\n\r\n/**\r\n * @param {String} url \r\n * @param {Object|null|undefined} [data]\r\n * @param {Object} [options] \r\n * @returns {Promise<Object>}\r\n */\r\nconst putJson = async (url, data, options) => {\r\n return processQuery(url, data, { 'Content-Type': 'application/json' }, 'PUT', options);\r\n}\r\n\r\nexport { getJson, postJson, putJson };","import { getGrafanaId } from \"../utils/id.js\";\r\nimport { getJson, postJson, putJson } from \"./httpClient/index.js\";\r\n\r\nexport class GrafanaApi {\r\n /**\r\n * @param {Object} [options]\r\n * @param {String} [options.apiUrl] - The base URL of the Grafana API\r\n * @param {String} [options.apiToken] - The API token for authentication\r\n */\r\n constructor(options) {\r\n if (options?.apiUrl) {\r\n this.rootUrl = options.apiUrl;\r\n }\r\n if (options?.apiToken) {\r\n this.token = options.apiToken;\r\n }\r\n }\r\n\r\n /**\r\n * @returns {{token: String, rootUrl: String}} - The parameters for the Grafana API\r\n */\r\n get _parameters() {\r\n if (!this.token || !this.rootUrl) {\r\n throw new Error(\"GrafanaApi: Missing required parameters. Please provide both 'apiUrl' and 'apiToken'.\");\r\n }\r\n return {\r\n token: this.token,\r\n rootUrl: this.rootUrl,\r\n }\r\n }\r\n\r\n /**\r\n * @param {String} folderVid\r\n * @returns {Promise<Object>} - The response from the Grafana API for the folder information as a json object\r\n */\r\n async getFolder(folderVid) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const { token, rootUrl } = this._parameters;\r\n \r\n const response = await getJson(`${rootUrl}/api/folders/${folderUid}`, { token });\r\n return response;\r\n }\r\n\r\n /**\r\n * @param {String} folderName \r\n * @param {String} folderVid \r\n * @param {String|undefined} parentVid \r\n * @returns {Promise<Object>} The response from the Grafana API\r\n */\r\n async createFolder(folderName, folderVid, parentVid) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const parentUid = getGrafanaId(parentVid);\r\n const { token, rootUrl } = this._parameters;\r\n const response = await postJson(\r\n `${rootUrl}/api/folders`,\r\n {\r\n uid: folderUid,\r\n title: folderName,\r\n parentUid: parentUid,\r\n },\r\n { token }\r\n )\r\n return response;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param {String} folderVid \r\n * @param {String} newFolderName \r\n * @param {String|undefined} parentVid \r\n * @param {Number} version \r\n */\r\n async renameFolder(folderVid, newFolderName, parentVid, version) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const parentUid = getGrafanaId(parentVid);\r\n const { token, rootUrl } = this._parameters;\r\n const response = await putJson(\r\n `${rootUrl}/api/folders/${folderUid}`,\r\n {\r\n uid: folderUid,\r\n title: newFolderName,\r\n parentUid: parentUid,\r\n version: version,\r\n },\r\n { token }\r\n )\r\n return response;\r\n }\r\n\r\n /**\r\n * @param {Object} dashboardStruct \r\n * @param {String} folderVid \r\n * @param {String} message \r\n * @returns {Promise<Object>} The response from the Grafana API\r\n */\r\n async createDashboard(dashboardStruct, folderVid, message) {\r\n const folderUid = getGrafanaId(folderVid);\r\n const { token, rootUrl } = this._parameters;\r\n const response = await postJson(\r\n `${rootUrl}/api/dashboards/db`,\r\n {\r\n dashboard: dashboardStruct,\r\n folderUid: folderUid,\r\n message: message,\r\n overwrite: true,\r\n },\r\n { token }\r\n )\r\n return response;\r\n }\r\n}","import { ensurePathExists, writeJsonFile } from './utils/io.js';\r\nimport { DashboardProject } from './DashboardProject.js';\r\nimport { getGrafanaId, getSlug } from './utils/id.js';\r\nimport { GrafanaApi } from './api/GrafanaApi.js';\r\nimport { FolderInfo } from './FolderInfo.js';\r\nimport { getFromOptionsOrInfo, mergeOptions } from './info.js';\r\nimport { DashboardsInfo } from './DashboardsInfo.js';\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").GenericMetaOptions} GenericMetaOptions\r\n * @typedef {import(\"@gdacm/base-types\").DashboardMetaOptions} DashboardMetaOptions\r\n * @typedef {import(\"@gdacm/base-types\").DashboardOptions} DashboardOptions\r\n */\r\n\r\n/**\r\n * @typedef {(uid: String, option: Object) => Promise<Object>} DashboardGenerator\r\n */\r\n\r\nexport class DashboardManager {\r\n constructor() {\r\n /**\r\n * @type {{[projectName: string]: DashboardProject}}\r\n */\r\n this.dashboards = {};\r\n }\r\n\r\n /**\r\n * Log information to the console.\r\n * @param {...any} args - The arguments to log\r\n */\r\n #log(...args) {\r\n console.log(...args);\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @returns {DashboardProject} The project object\r\n */\r\n _ensureProjectExists(projectName) {\r\n if (!this.dashboards[projectName]) {\r\n this.dashboards[projectName] = new DashboardProject(projectName);\r\n }\r\n return this.dashboards[projectName];\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @param {DashboardsInfo} dashboardsInfo\r\n * @returns {this}\r\n */\r\n registerDashboards(projectName, dashboardsInfo) {\r\n const project = this._ensureProjectExists(projectName);\r\n project.addDashboardsInfo(dashboardsInfo);\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @param {string|undefined} rootVid \r\n * @param {string} rootGrafanaFolder \r\n * @param {string} vidPrefix\r\n * @param {GenericMetaOptions} metaOptions \r\n * @returns {this}\r\n */\r\n setupProject(projectName, rootVid, rootGrafanaFolder, vidPrefix, metaOptions) {\r\n const project = this._ensureProjectExists(projectName);\r\n if (rootVid) {\r\n project.setRootVid(rootVid);\r\n }\r\n project.setRootGrafanaFolder(rootGrafanaFolder);\r\n project.setVidPrefix(vidPrefix);\r\n project.setMetaOptions(metaOptions);\r\n return this;\r\n }\r\n\r\n /**\r\n * @param {string} projectName \r\n * @param {string} rootFolderPath \r\n * @param {GenericMetaOptions} [metaOptions] - Optional parameters for generating dashboards\r\n * @returns {Promise<this>}\r\n */\r\n async generateDashboards(projectName, rootFolderPath, metaOptions) {\r\n const projectDashboards = this._ensureProjectExists(projectName);\r\n const localProjectMetaOptions = /** @type {GenericMetaOptions} */ (mergeOptions(projectDashboards.metaOptions, metaOptions));\r\n\r\n /** @type {Boolean|undefined} */\r\n const writeOnDisk = getFromOptionsOrInfo('writeOnDisk', localProjectMetaOptions, true);\r\n /** @type {Boolean|undefined} */\r\n const createOnGrafana = getFromOptionsOrInfo('createOnGrafana', localProjectMetaOptions, true);\r\n /** @type {String|undefined} */\r\n const testName = getFromOptionsOrInfo('testName', localProjectMetaOptions, undefined);\r\n\r\n this.#log(`🔨📊 Generating dashboards for project: ${projectName} in folder: ${rootFolderPath} ${testName ? `with test name: ${testName}` : ''}`);\r\n if (!projectDashboards) {\r\n throw new Error(`No dashboards registered for project: ${projectName}`);\r\n }\r\n /**\r\n * @type {Object.<string, {sid: string, vid: string, name: string, parentVid: string|undefined, folderPath: string}>}\r\n */\r\n const foldersToCreate = {};\r\n const dashboardsToCreate = [];\r\n const { apiToken, apiUrl } = localProjectMetaOptions.info || {};\r\n const projectRootVid = projectDashboards.rootVid;\r\n let projectVidPrefix = projectDashboards.vidPrefix\r\n if (!projectVidPrefix) {\r\n throw new Error(`No vidPrefix defined for project: ${projectName}`);\r\n }\r\n let projectRootGrafanaFolder = projectDashboards.rootGrafanaFolder;\r\n if (!projectRootGrafanaFolder) {\r\n projectRootGrafanaFolder = projectName;\r\n }\r\n let projectFolderPath = rootFolderPath;\r\n\r\n foldersToCreate[projectVidPrefix] = {\r\n folderPath: projectFolderPath,\r\n name: projectRootGrafanaFolder,\r\n parentVid: projectRootVid,\r\n sid: getSlug(projectRootGrafanaFolder),\r\n vid: projectVidPrefix,\r\n }\r\n\r\n if (testName) {\r\n const testVid = `${projectVidPrefix}-t`;\r\n const testFolderPath = `${projectFolderPath}/__test__`;\r\n if (!foldersToCreate[testVid]) {\r\n foldersToCreate[testVid] = {\r\n sid: `t`,\r\n vid: testVid,\r\n name: \"🧪 __test__\",\r\n parentVid: projectVidPrefix,\r\n folderPath: testFolderPath,\r\n }\r\n }\r\n projectFolderPath = testFolderPath;\r\n projectVidPrefix = testVid;\r\n const testNameVid = `${projectVidPrefix}-${getSlug(testName)}`;\r\n const testNameFolderPath = `${projectFolderPath}/${getSlug(testName)}`;\r\n if (!foldersToCreate[testNameVid]) {\r\n foldersToCreate[testNameVid] = {\r\n sid: getSlug(testName),\r\n vid: testNameVid,\r\n name: `🧪 ${testName}`,\r\n parentVid: projectVidPrefix,\r\n folderPath: testNameFolderPath,\r\n }\r\n }\r\n projectFolderPath = testNameFolderPath;\r\n projectVidPrefix = testNameVid;\r\n }\r\n\r\n for (const dashboardInfo of projectDashboards.getDashboards(localProjectMetaOptions.info || {})) {\r\n const sid = dashboardInfo.sid;\r\n this.#log(`📊 Generating dashboard: ${sid}`);\r\n\r\n const localDashboardMetaOptions = mergeOptions(localProjectMetaOptions, dashboardInfo.metaOptions)\r\n\r\n /** @type {String[]} */\r\n const tagsPublished = getFromOptionsOrInfo('tagsPublished', localDashboardMetaOptions, ['published']);\r\n\r\n /** @type {String[]} */\r\n const tagsPreview = getFromOptionsOrInfo('tagsPreview', localDashboardMetaOptions, ['preview']);\r\n\r\n const vid = `${projectVidPrefix}-${sid}`;\r\n const uid = getGrafanaId(vid) || '';\r\n\r\n let title = dashboardInfo.title || 'Untitled Dashboard';\r\n let emoji = testName ? \"🧪\" : (dashboardInfo.emoji || \"📈\");\r\n if (emoji && emoji !== '') {\r\n title = `${emoji} ${title}`;\r\n }\r\n\r\n /**\r\n * @type{DashboardOptions}\r\n */\r\n const additionnalOptions = {\r\n title,\r\n tags: [],\r\n };\r\n\r\n if (testName) {\r\n additionnalOptions.testName = testName;\r\n additionnalOptions.tags.push(...tagsPreview);\r\n } else {\r\n additionnalOptions.tags.push(...tagsPublished);\r\n }\r\n additionnalOptions.tags.push(...dashboardInfo.tags);\r\n\r\n const dashboardStruct = await dashboardInfo.getDashboard?.(\r\n uid,\r\n mergeOptions(localDashboardMetaOptions, additionnalOptions)\r\n );\r\n if (dashboardStruct) {\r\n this.#log(`📊 Creating dashboard for sid: ${dashboardInfo.sid} (${title})`);\r\n const path = dashboardInfo.path || [];\r\n const newPath = [];\r\n /** @type {String} */\r\n let folderPath = projectFolderPath;\r\n /** @type {String} */\r\n let folderVid = projectVidPrefix;\r\n for (const pathItem of path) {\r\n /** @type {String} */\r\n let sid = '';\r\n /** @type {String} */\r\n let name = '';\r\n let emoji = '';\r\n if (pathItem instanceof FolderInfo) {\r\n sid = pathItem.sid || '';\r\n name = pathItem.name || '';\r\n emoji = pathItem.emoji || '';\r\n } else if (typeof pathItem === 'string') {\r\n sid = getSlug(pathItem);\r\n name = pathItem;\r\n emoji = '';\r\n } else {\r\n throw new Error(`Invalid path item: ${pathItem}`);\r\n }\r\n if (testName) {\r\n emoji = \"🧪\";\r\n }\r\n if (!testName && (!emoji || emoji === '')) {\r\n emoji = '📚';\r\n }\r\n\r\n if (emoji && emoji !== '') {\r\n name = `${emoji} ${name}`;\r\n }\r\n newPath.push({ sid, name });\r\n folderPath = `${folderPath}/${sid}`;\r\n const parentVid = folderVid;\r\n folderVid = `${parentVid}-${sid}`;\r\n if (!foldersToCreate[folderVid]) {\r\n foldersToCreate[folderVid] = {\r\n sid,\r\n vid: folderVid,\r\n name,\r\n parentVid,\r\n folderPath,\r\n }\r\n }\r\n }\r\n dashboardsToCreate.push({\r\n uid,\r\n vid,\r\n sid,\r\n title,\r\n\r\n content: dashboardStruct.asJson(),\r\n folderVid,\r\n folderPath,\r\n message: `📊 Autogenerated dashboard for project: ${projectName}, dashboard: ${title}`,\r\n });\r\n }\r\n }\r\n if (writeOnDisk) {\r\n for (const folderInfo of Object.values(foldersToCreate)) {\r\n await ensurePathExists(folderInfo.folderPath);\r\n }\r\n for (const dashboardToCreate of dashboardsToCreate) {\r\n const { sid, content, folderPath } = dashboardToCreate;\r\n const filePath = `${folderPath}/${sid}.json`;\r\n this.#log(`📝 Writing dashboard to file: ${filePath}`);\r\n await writeJsonFile(filePath, content);\r\n }\r\n }\r\n if (createOnGrafana) {\r\n const grafanaApi = new GrafanaApi({ apiUrl, apiToken });\r\n this.#log(`🖥️ Creating dashboards on Grafana ${apiUrl} for project \"${projectName}\"`);\r\n for (const folderInfo of Object.values(foldersToCreate)) {\r\n try {\r\n const response = await grafanaApi.getFolder(folderInfo.vid);\r\n // @ts-ignore\r\n const { title, version, parentUid } = response;\r\n const nameHasChanged = folderInfo.name && folderInfo.name.trim() !== '' && folderInfo.name !== title;\r\n const parentVidHasChanged = folderInfo.parentVid !== undefined && getGrafanaId(folderInfo.parentVid) !== parentUid;\r\n if (nameHasChanged || parentVidHasChanged) {\r\n this.#log(`📂 Folder with vid: ${folderInfo.vid} has a different name on Grafana: ${title}, renaming to: ${folderInfo.name}`);\r\n await grafanaApi.renameFolder(folderInfo.vid, folderInfo.name, folderInfo.parentVid, version);\r\n }\r\n } catch (error) {\r\n this.#log(`📁 Folder not found (or name mismatch) on Grafana, creating folder: ${folderInfo.name} with vid: ${folderInfo.vid}`);\r\n await grafanaApi.createFolder(folderInfo.name, folderInfo.vid, folderInfo.parentVid);\r\n }\r\n }\r\n const updatedDashboardUrls = [];\r\n for (const dashboardToCreate of dashboardsToCreate) {\r\n const { content, title, folderVid } = dashboardToCreate;\r\n {\r\n this.#log(`📊 Creating dashboard on Grafana: ${title} in folder vid: ${folderVid}`);\r\n const response = await grafanaApi.createDashboard(\r\n content,\r\n folderVid,\r\n `Autogenerated dashboard for project: ${projectName}, dashboard: ${title}`\r\n );\r\n this.#log(`👌 Dashboard created: ${JSON.stringify(response)}`);\r\n updatedDashboardUrls.push({ \r\n url: `${apiUrl}/d/${dashboardToCreate.uid}`,\r\n uid: dashboardToCreate.uid,\r\n vid: dashboardToCreate.vid,\r\n });\r\n }\r\n }\r\n if (updatedDashboardUrls.length > 0) {\r\n this.#log(`📝 Updated dashboard URLs:`);\r\n for (const urlInfo of updatedDashboardUrls) {\r\n this.#log(` 🔀 ${urlInfo.url}${urlInfo.uid !== urlInfo.vid ? ` (${urlInfo.vid})` : ''}`);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n}\r\n","import { DashboardManager, DashboardsInfo } from \"./index.js\";\r\nimport { getInfo } from \"./info.js\";\r\n\r\n/**\r\n * @typedef {import(\"@gdacm/base-types\").Info} Info\r\n */\r\n\r\n/**\r\n * @param {string[]} localFolders \r\n * @param {string} outDir\r\n * @param {Info|Info[]} infosCode\r\n * @param {DashboardsInfo} dashboardsInfos\r\n * @returns {Promise<void>}\r\n */\r\nexport const createDashboards = async (localFolders, outDir, infosCode, dashboardsInfos) => {\r\n const info = await getInfo(infosCode, localFolders);\r\n let { projectName, projectRootVid, projectRootGrafanaFolder, projectVidPrefix } = info;\r\n const dashboardManager = new DashboardManager();\r\n if (!projectRootGrafanaFolder || !projectVidPrefix) {\r\n throw new Error(`Missing projectRootGrafanaFolder or projectVidPrefix in info`);\r\n }\r\n if (!projectName) {\r\n projectName = projectVidPrefix;\r\n }\r\n dashboardManager.setupProject(projectName, projectRootVid, projectRootGrafanaFolder, projectVidPrefix, { info });\r\n dashboardManager.registerDashboards(\r\n projectName,\r\n new DashboardsInfo(\r\n dashboardsInfos\r\n )\r\n );\r\n\r\n await dashboardManager.generateDashboards(projectName, `${outDir}/${projectVidPrefix}`);\r\n}\r\n"],"x_google_ignoreList":[0],"mappings":"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"}
|