From 614be92b75420b4995373895f935c15229b25232 Mon Sep 17 00:00:00 2001 From: Seonghoi Lee Date: Mon, 22 Jan 2024 11:06:19 +0900 Subject: [PATCH] fix: tag-handle regex should include digits "c-tag-handle" defined in https://yaml.org/spec/1.1/#c-tag-handle may be "c-named-tag-handle" and c-named-tag-handle ::= "!" ns-word-char + "!" "ns-word-char" defined in https://yaml.org/spec/1.1/#ns-word-char indicates that it is one of ns-dec-digit, ns-ascii-letter or "-" --- lib/loader.js | 2 +- test/samples-common/digit-tag-directive.js | 6 ++++++ test/samples-common/digit-tag-directive.yml | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 test/samples-common/digit-tag-directive.js create mode 100644 test/samples-common/digit-tag-directive.yml diff --git a/lib/loader.js b/lib/loader.js index 39f13f56..c75f4840 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -25,7 +25,7 @@ var CHOMPING_KEEP = 3; var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z0-9\-]+!)$/i; var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; diff --git a/test/samples-common/digit-tag-directive.js b/test/samples-common/digit-tag-directive.js new file mode 100644 index 00000000..0f0113e9 --- /dev/null +++ b/test/samples-common/digit-tag-directive.js @@ -0,0 +1,6 @@ +'use strict'; + +module.exports = { + 'k1': 'some-string', + 'k2': '123' +}; diff --git a/test/samples-common/digit-tag-directive.yml b/test/samples-common/digit-tag-directive.yml new file mode 100644 index 00000000..275567ab --- /dev/null +++ b/test/samples-common/digit-tag-directive.yml @@ -0,0 +1,5 @@ +%TAG !123digit! tag:yaml.org,2002: +%TAG !a-23-1! tag:yaml.org,2002: +--- +k1: !123digit!str some-string +k2: !a-23-1!str 123