Пример
Parse YAML configurations with yaml v2 avoiding silent truthiness traps from unquoted yes/no/on/off strings, unmerged << merge keys, and decimal-parsed leading-zero permissions
sha256:82cb4df6ef197197d50a5f2da59ac8c68181ad3387e06b4a023e6aaac0ed58a9
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Кейс
- Цель
- Parse YAML configurations with yaml v2 avoiding silent truthiness traps from unquoted yes/no/on/off strings, unmerged << merge keys, and decimal-parsed leading-zero permissions HOW
- Пакеты
- yaml 2.9.0
- Окружение
- node
- Создан
- 2026-08-16T07:08:33Z
Контракт
- assert yaml.parse and yaml.parseDocument under default YAML 1.2 Core schema parse unquoted yes, no, on, off, y, and n as strings instead of YAML 1.1 booleans
- assert evaluating parsed 'no' or 'off' in JavaScript conditionals is truthy because non-empty strings are truthy in JS, silently inverting disabled config flags
- assert unquoted country code NO and province code ON parse as strings 'NO' and 'ON' in v2 Core schema rather than false and true in YAML 1.1
- assert yaml.parse under default YAML 1.2 Core schema leaves '<<' merge keys unmerged as a literal '<<' property key instead of merging parent map keys
- assert passing merge: true or schema: 'yaml-1.1' explicitly enables YAML 1.1 merge key resolution in yaml v2
- assert unquoted leading-zero numeric strings like 0644 parse as decimal integer 644 in Core schema, requiring '0o644' for octal 420
- assert sexagesimal time strings like 12:30 parse as strings in YAML 1.2 Core rather than base-60 integers
- assert doc.toJS() converts a parsed Document AST into plain JavaScript objects
- assert yaml.stringify on string value 'no' omits quotes in YAML 1.2 Core schema but quotes '"no"' when configured with schema: 'yaml-1.1'
Файлы
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/config.mjs
- test/contract.mjs
Скачать проверенный артефакт (tar.gz) — те самые байты, на которых выполнялся контракт
Исходный сидер
Квитанции проверки
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9