diff --git a/dist/post_run/index.js b/dist/post_run/index.js index 3fe5749f16..dcd6187507 100644 --- a/dist/post_run/index.js +++ b/dist/post_run/index.js @@ -102728,7 +102728,7 @@ function composeCollection(CN, ctx, token, props, onError) { let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType); if (!tag) { const kt = ctx.schema.knownTags[tagName]; - if (kt && kt.collection === expType) { + if (kt?.collection === expType) { ctx.schema.tags.push(Object.assign({}, kt, { default: false })); tag = kt; } @@ -103614,7 +103614,7 @@ function resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, ta }); if (!props.found) { if (props.anchor || props.tag || value) { - if (value && value.type === 'block-seq') + if (value?.type === 'block-seq') onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column'); else onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator'); @@ -103831,7 +103831,7 @@ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onErr } } else if (value) { - if ('source' in value && value.source && value.source[0] === ':') + if ('source' in value && value.source?.[0] === ':') onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`); else onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`); @@ -103875,7 +103875,7 @@ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onErr const expectedEnd = isMap ? '}' : ']'; const [ce, ...ee] = fc.end; let cePos = offset; - if (ce && ce.source === expectedEnd) + if (ce?.source === expectedEnd) cePos = ce.offset + ce.source.length; else { const name = fcName[0].toUpperCase() + fcName.substring(1); @@ -105256,7 +105256,7 @@ const prettifyError = (src, lc) => (error) => { if (/[^ ]/.test(lineStr)) { let count = 1; const end = error.linePos[1]; - if (end && end.line === line && end.col > col) { + if (end?.line === line && end.col > col) { count = Math.max(1, Math.min(end.col - col, 80 - ci)); } const pointer = ' '.repeat(ci) + '^'.repeat(count); @@ -105424,7 +105424,7 @@ class Alias extends Node.NodeBase { data = anchors.get(source); } /* istanbul ignore if */ - if (!data || data.res === undefined) { + if (data?.res === undefined) { const msg = 'This should not happen: Alias anchor was not resolved?'; throw new ReferenceError(msg); } @@ -107766,7 +107766,7 @@ class Parser { } *step() { const top = this.peek(1); - if (this.type === 'doc-end' && (!top || top.type !== 'doc-end')) { + if (this.type === 'doc-end' && top?.type !== 'doc-end') { while (this.stack.length > 0) yield* this.pop(); this.stack.push({ @@ -108298,7 +108298,7 @@ class Parser { do { yield* this.pop(); top = this.peek(1); - } while (top && top.type === 'flow-collection'); + } while (top?.type === 'flow-collection'); } else if (fc.end.length === 0) { switch (this.type) { @@ -110484,7 +110484,7 @@ function stringifyNumber({ format, minFractionDigits, tag, value }) { const num = typeof value === 'number' ? value : Number(value); if (!isFinite(num)) return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf'; - let n = JSON.stringify(value); + let n = Object.is(value, -0) ? '-0' : JSON.stringify(value); if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && @@ -110615,7 +110615,7 @@ function stringifyPair({ key, value }, ctx, onComment, onChompKeep) { ws += `\n${stringifyComment.indentComment(cs, ctx.indent)}`; } if (valueStr === '' && !ctx.inFlow) { - if (ws === '\n') + if (ws === '\n' && valueComment) ws = '\n\n'; } else { diff --git a/dist/run/index.js b/dist/run/index.js index 5a838212d7..858a806f61 100644 --- a/dist/run/index.js +++ b/dist/run/index.js @@ -102728,7 +102728,7 @@ function composeCollection(CN, ctx, token, props, onError) { let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType); if (!tag) { const kt = ctx.schema.knownTags[tagName]; - if (kt && kt.collection === expType) { + if (kt?.collection === expType) { ctx.schema.tags.push(Object.assign({}, kt, { default: false })); tag = kt; } @@ -103614,7 +103614,7 @@ function resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, ta }); if (!props.found) { if (props.anchor || props.tag || value) { - if (value && value.type === 'block-seq') + if (value?.type === 'block-seq') onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column'); else onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator'); @@ -103831,7 +103831,7 @@ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onErr } } else if (value) { - if ('source' in value && value.source && value.source[0] === ':') + if ('source' in value && value.source?.[0] === ':') onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`); else onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`); @@ -103875,7 +103875,7 @@ function resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onErr const expectedEnd = isMap ? '}' : ']'; const [ce, ...ee] = fc.end; let cePos = offset; - if (ce && ce.source === expectedEnd) + if (ce?.source === expectedEnd) cePos = ce.offset + ce.source.length; else { const name = fcName[0].toUpperCase() + fcName.substring(1); @@ -105256,7 +105256,7 @@ const prettifyError = (src, lc) => (error) => { if (/[^ ]/.test(lineStr)) { let count = 1; const end = error.linePos[1]; - if (end && end.line === line && end.col > col) { + if (end?.line === line && end.col > col) { count = Math.max(1, Math.min(end.col - col, 80 - ci)); } const pointer = ' '.repeat(ci) + '^'.repeat(count); @@ -105424,7 +105424,7 @@ class Alias extends Node.NodeBase { data = anchors.get(source); } /* istanbul ignore if */ - if (!data || data.res === undefined) { + if (data?.res === undefined) { const msg = 'This should not happen: Alias anchor was not resolved?'; throw new ReferenceError(msg); } @@ -107766,7 +107766,7 @@ class Parser { } *step() { const top = this.peek(1); - if (this.type === 'doc-end' && (!top || top.type !== 'doc-end')) { + if (this.type === 'doc-end' && top?.type !== 'doc-end') { while (this.stack.length > 0) yield* this.pop(); this.stack.push({ @@ -108298,7 +108298,7 @@ class Parser { do { yield* this.pop(); top = this.peek(1); - } while (top && top.type === 'flow-collection'); + } while (top?.type === 'flow-collection'); } else if (fc.end.length === 0) { switch (this.type) { @@ -110484,7 +110484,7 @@ function stringifyNumber({ format, minFractionDigits, tag, value }) { const num = typeof value === 'number' ? value : Number(value); if (!isFinite(num)) return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf'; - let n = JSON.stringify(value); + let n = Object.is(value, -0) ? '-0' : JSON.stringify(value); if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && @@ -110615,7 +110615,7 @@ function stringifyPair({ key, value }, ctx, onComment, onChompKeep) { ws += `\n${stringifyComment.indentComment(cs, ctx.indent)}`; } if (valueStr === '' && !ctx.inFlow) { - if (ws === '\n') + if (ws === '\n' && valueComment) ws = '\n\n'; } else { diff --git a/package-lock.json b/package-lock.json index 03dee2f671..36ed5ab71b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@types/which": "^3.0.4", "tmp": "^0.2.5", "which": "^6.0.0", - "yaml": "^2.8.1" + "yaml": "^2.8.2" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^8.48.0", @@ -4352,15 +4352,18 @@ } }, "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yocto-queue": { diff --git a/package.json b/package.json index 4f4f7dd419..6842b648fb 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@types/which": "^3.0.4", "tmp": "^0.2.5", "which": "^6.0.0", - "yaml": "^2.8.1" + "yaml": "^2.8.2" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^8.48.0",