@cofold/yaml 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/stringify.d.ts +3 -0
- package/dist/stringify.d.ts.map +1 -0
- package/dist/stringify.js +138 -0
- package/dist/stringify.js.map +1 -0
- package/dist/yaml.js +4 -2
- package/dist/yaml.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +6 -5
- package/src/load.ts +78 -78
- package/src/stringify.ts +155 -0
- package/src/types/load.ts +11 -11
- package/src/types/parse.ts +8 -8
- package/src/yaml.ts +465 -463
package/README.md
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
# @cofold/yaml
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@cofold/yaml)
|
|
4
|
+
[](https://github.com/softov/cofold/actions/workflows/ci.yml)
|
|
5
|
+

|
|
6
|
+
|
|
3
7
|
**A documented YAML subset as plain data.**
|
|
4
8
|
|
|
5
9
|
Parsing with source-aware errors, and document loading with local and remote references, JSON pointers and bounded reads. No dependencies, no I/O in the parser.
|
|
6
10
|
|
|
7
11
|
```ts
|
|
8
|
-
import { parseYaml, loadYaml } from "@cofold/yaml";
|
|
12
|
+
import { parseYaml, stringifyYaml, loadYaml } from "@cofold/yaml";
|
|
9
13
|
```
|
|
10
14
|
|
|
11
15
|
Part of the [cofold](https://github.com/softov/cofold) family.
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify.d.ts","sourceRoot":"","sources":["../src/stringify.ts"],"names":[],"mappings":"AAsCA,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMpD"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { YamlError } from "./yaml.js";
|
|
2
|
+
/** What a plain scalar may not start with: a YAML indicator or a quote. */
|
|
3
|
+
const INDICATORS = "-?:,[]{}#&*!|>'\"%@`";
|
|
4
|
+
/**
|
|
5
|
+
* Plain text that `scalar`, or another reader of the YAML 1.2 core schema,
|
|
6
|
+
* reads as null, a boolean or a number.
|
|
7
|
+
*/
|
|
8
|
+
const TYPED = /^(?:~|null|Null|NULL|true|True|TRUE|false|False|FALSE|[-+]?\d+|0o[0-7]+|0x[\da-fA-F]+|[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?|[-+]?\.(?:inf|Inf|INF)|\.(?:nan|NaN|NAN))$/u;
|
|
9
|
+
/** Characters plain text may not hold: controls, line separators, lone surrogates, and flow brackets. */
|
|
10
|
+
const UNPLAIN = /[\u0000-\u001f\u007f-\u009f\u2028\u2029\ud800-\udfff[\]{}]|:\s|:$|\s#|[:-]\s+[|>][1-9+-]*$/u;
|
|
11
|
+
/** Characters a key may not hold plain, because `keyAt` reads them as quotes or flow brackets. */
|
|
12
|
+
const UNPLAIN_KEY = /["',]/u;
|
|
13
|
+
/** Characters a literal block scalar cannot carry through `blockScalars`. */
|
|
14
|
+
const UNLITERAL = /[\u0000-\u0008\u000b-\u001f\u007f-\u009f\u2028\u2029\ud800-\udfff]/u;
|
|
15
|
+
/** Characters a double-quoted scalar writes as an escape. */
|
|
16
|
+
const ESCAPED = /[\u0000-\u001f\u007f-\u009f\u2028\u2029\ud800-\udfff"\\]/gu;
|
|
17
|
+
const ESCAPES = { "\n": "\\n", "\t": "\\t", "\r": "\\r", '"': '\\"', "\\": "\\\\" };
|
|
18
|
+
/** The value as YAML text that `parseYaml` reads back as the same value. */
|
|
19
|
+
export function stringifyYaml(value) {
|
|
20
|
+
const out = [];
|
|
21
|
+
if (Array.isArray(value) && value.length > 0)
|
|
22
|
+
sequence(value, 0, out);
|
|
23
|
+
else if (isObject(value) && entries(value).length > 0)
|
|
24
|
+
mapping(value, 0, out, "");
|
|
25
|
+
else
|
|
26
|
+
out.push(inline(value, out));
|
|
27
|
+
return `${out.join("\n")}\n`;
|
|
28
|
+
}
|
|
29
|
+
function isObject(value) {
|
|
30
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
31
|
+
}
|
|
32
|
+
/** The keys JSON writes: own enumerable keys whose value is not `undefined`. */
|
|
33
|
+
function entries(value) {
|
|
34
|
+
return Object.keys(value).filter((key) => value[key] !== undefined);
|
|
35
|
+
}
|
|
36
|
+
/** A block sequence whose dashes sit at `indent`. */
|
|
37
|
+
function sequence(items, indent, out) {
|
|
38
|
+
const pad = " ".repeat(indent);
|
|
39
|
+
for (let at = 0; at < items.length; at += 1) {
|
|
40
|
+
const item = items[at];
|
|
41
|
+
/*
|
|
42
|
+
* A mapping opens on the dash's own line unless its first value is a
|
|
43
|
+
* literal block scalar, whose content `blockScalars` measures from the dash.
|
|
44
|
+
*/
|
|
45
|
+
if (isObject(item)) {
|
|
46
|
+
const keys = entries(item);
|
|
47
|
+
if (keys.length > 0 && literalOf(item[keys[0]]) === undefined) {
|
|
48
|
+
mapping(item, indent + 2, out, `${pad}- `);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
entry(`${pad}-`, item, indent, out);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** A block mapping whose keys sit at `indent`; the first key's line starts with `first` when it is not empty. */
|
|
56
|
+
function mapping(value, indent, out, first) {
|
|
57
|
+
const pad = " ".repeat(indent);
|
|
58
|
+
entries(value).forEach((key, at) => {
|
|
59
|
+
entry(`${at === 0 && first !== "" ? first : pad}${keyOf(key)}:`, value[key], indent, out);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/** One entry: `lead` is the dash or the key with its colon, already indented to `indent`. */
|
|
63
|
+
function entry(lead, value, indent, out) {
|
|
64
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
65
|
+
out.push(lead);
|
|
66
|
+
sequence(value, indent + 2, out);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (isObject(value) && entries(value).length > 0) {
|
|
70
|
+
out.push(lead);
|
|
71
|
+
mapping(value, indent + 2, out, "");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const literal = literalOf(value);
|
|
75
|
+
if (literal !== undefined) {
|
|
76
|
+
const pad = " ".repeat(indent + 2);
|
|
77
|
+
out.push(`${lead} ${literal.header}`);
|
|
78
|
+
for (const line of literal.lines)
|
|
79
|
+
out.push(line === "" ? "" : pad + line);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
out.push(`${lead} ${inline(value, out)}`);
|
|
83
|
+
}
|
|
84
|
+
/** A value on one line: a scalar, or an empty collection. */
|
|
85
|
+
function inline(value, out) {
|
|
86
|
+
if (value === null)
|
|
87
|
+
return "null";
|
|
88
|
+
if (typeof value === "boolean")
|
|
89
|
+
return String(value);
|
|
90
|
+
if (typeof value === "number") {
|
|
91
|
+
if (!Number.isFinite(value))
|
|
92
|
+
throw new YamlError(`${value} is not a JSON value`, out.length + 1);
|
|
93
|
+
return Object.is(value, -0) ? "-0" : String(value);
|
|
94
|
+
}
|
|
95
|
+
if (typeof value === "string")
|
|
96
|
+
return plain(value) ? value : quoted(value);
|
|
97
|
+
if (Array.isArray(value))
|
|
98
|
+
return "[]";
|
|
99
|
+
if (isObject(value))
|
|
100
|
+
return "{}";
|
|
101
|
+
throw new YamlError(`${value === undefined ? "undefined" : `A ${typeof value}`} is not a JSON value`, out.length + 1);
|
|
102
|
+
}
|
|
103
|
+
/** Text `scalar` reads back unquoted as the same text. */
|
|
104
|
+
function plain(text) {
|
|
105
|
+
return text !== ""
|
|
106
|
+
&& text !== "..."
|
|
107
|
+
&& text === text.trim()
|
|
108
|
+
&& !INDICATORS.includes(text[0])
|
|
109
|
+
&& !UNPLAIN.test(text)
|
|
110
|
+
&& !TYPED.test(text);
|
|
111
|
+
}
|
|
112
|
+
/** A key as written: plain when it can be, and quoted otherwise, as `<<` always is, because plain it is a merge key. */
|
|
113
|
+
function keyOf(key) {
|
|
114
|
+
return key !== "<<" && plain(key) && !UNPLAIN_KEY.test(key) ? key : quoted(key);
|
|
115
|
+
}
|
|
116
|
+
function quoted(text) {
|
|
117
|
+
return `"${text.replace(ESCAPED, (char) => ESCAPES[char] ?? `\\u${char.charCodeAt(0).toString(16).padStart(4, "0")}`)}"`;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Multi-line text as a literal block scalar, or `undefined` when the block
|
|
121
|
+
* cannot carry it: a line of only spaces, which `blockScalars` reads as empty,
|
|
122
|
+
* no line with text, or a character a quoted scalar has to escape.
|
|
123
|
+
*/
|
|
124
|
+
function literalOf(value) {
|
|
125
|
+
if (typeof value !== "string" || !value.includes("\n") || UNLITERAL.test(value))
|
|
126
|
+
return undefined;
|
|
127
|
+
const trailing = /\n*$/u.exec(value)[0].length;
|
|
128
|
+
const lines = (trailing > 0 ? value.slice(0, -1) : value).split("\n");
|
|
129
|
+
if (lines.some((line) => line !== "" && line.trim() === ""))
|
|
130
|
+
return undefined;
|
|
131
|
+
const text = lines.find((line) => line !== "");
|
|
132
|
+
if (text === undefined)
|
|
133
|
+
return undefined;
|
|
134
|
+
const indicator = /^\s/u.test(text) ? "2" : "";
|
|
135
|
+
const chomping = trailing === 0 ? "-" : trailing === 1 ? "" : "+";
|
|
136
|
+
return { header: `|${indicator}${chomping}`, lines };
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=stringify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify.js","sourceRoot":"","sources":["../src/stringify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAetC,2EAA2E;AAC3E,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAE1C;;;GAGG;AACH,MAAM,KAAK,GAAG,iLAAiL,CAAC;AAEhM,yGAAyG;AACzG,MAAM,OAAO,GAAG,6FAA6F,CAAC;AAE9G,kGAAkG;AAClG,MAAM,WAAW,GAAG,QAAQ,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,SAAS,GAAG,qEAAqE,CAAC;AAExF,6DAA6D;AAC7D,MAAM,OAAO,GAAG,4DAA4D,CAAC;AAE7E,MAAM,OAAO,GAAqC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtH,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACjE,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;;QAC7E,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAClC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,gFAAgF;AAChF,SAAS,OAAO,CAAC,KAA8B;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,qDAAqD;AACrD,SAAS,QAAQ,CAAC,KAAgB,EAAE,MAAc,EAAE,GAAa;IAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB;;;WAGG;QACH,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;gBAC3C,SAAS;YACX,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,iHAAiH;AACjH,SAAS,OAAO,CAAC,KAA8B,EAAE,MAAc,EAAE,GAAa,EAAE,KAAa;IAC3F,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QACjC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6FAA6F;AAC7F,SAAS,KAAK,CAAC,IAAY,EAAE,KAAc,EAAE,MAAc,EAAE,GAAa;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,6DAA6D;AAC7D,SAAS,MAAM,CAAC,KAAc,EAAE,GAAa;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,sBAAsB,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjG,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,EAAE,sBAAsB,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxH,CAAC;AAED,0DAA0D;AAC1D,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,IAAI,KAAK,EAAE;WACb,IAAI,KAAK,KAAK;WACd,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;WACpB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;WAC9B,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;WACnB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,wHAAwH;AACxH,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AAC3H,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClG,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAClE,OAAO,EAAE,MAAM,EAAE,IAAI,SAAS,GAAG,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC"}
|
package/dist/yaml.js
CHANGED
|
@@ -248,9 +248,11 @@ function mapping(lines, at, indent) {
|
|
|
248
248
|
if (colon === -1) {
|
|
249
249
|
throw new YamlError(`"${line.text}" is not a mapping entry: a key is written "name: value"`, line.number);
|
|
250
250
|
}
|
|
251
|
-
const
|
|
252
|
-
|
|
251
|
+
const written = line.text.slice(0, colon).trim();
|
|
252
|
+
// A quoted "<<" is an ordinary key, as YAML 1.2 reads it; only the plain one is a merge key.
|
|
253
|
+
if (written === "<<")
|
|
253
254
|
throw new YamlError("This parser does not read merge keys", line.number);
|
|
255
|
+
const key = String(scalar(written, line.number));
|
|
254
256
|
if (Object.hasOwn(map, key))
|
|
255
257
|
throw new YamlError(`${key} is given twice`, line.number);
|
|
256
258
|
const rest = line.text.slice(colon + 1).trim();
|
package/dist/yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yaml.js","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { parseYaml, YamlError } from "./yaml.js";
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export type {
|
|
1
|
+
export { parseYaml, YamlError } from "./yaml.js";
|
|
2
|
+
export { stringifyYaml } from "./stringify.js";
|
|
3
|
+
export { loadYaml } from "./load.js";
|
|
4
|
+
|
|
5
|
+
export type { LoadedYaml, YamlLoadOptions } from "./types/load.js";
|
|
6
|
+
export type { YamlParseOptions } from "./types/parse.js";
|
package/src/load.ts
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
import type { LoadedYaml, YamlLoadOptions } from "./types/load.js";
|
|
2
|
-
import { readFile as readLocal } from "node:fs/promises";
|
|
3
|
-
import { resolve } from "node:path";
|
|
4
|
-
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
5
|
-
import { parseYaml } from "./yaml.js";
|
|
6
|
-
|
|
7
|
-
/** Parse YAML or JSON and optionally resolve references relative to each containing document. */
|
|
8
|
-
export async function loadYaml(source: string, options: YamlLoadOptions = {}): Promise<LoadedYaml> {
|
|
9
|
-
const root = /^(?:https?:|file:)/u.test(source) ? new URL(source) : pathToFileURL(resolve(source));
|
|
10
|
-
const cache = new Map<string, Promise<unknown>>();
|
|
11
|
-
const diagnostics: LoadedYaml["diagnostics"] = [];
|
|
12
|
-
const maxBytes = options.maxBytes ?? 16 * 1024 * 1024;
|
|
13
|
-
const read = (url: URL): Promise<unknown> => {
|
|
14
|
-
const address = new URL(url); address.hash = "";
|
|
15
|
-
const key = address.href;
|
|
16
|
-
const prior = cache.get(key); if (prior) return prior;
|
|
17
|
-
if (cache.size >= (options.maxDocuments ?? 1024)) throw new Error("Reference loading exceeds maxDocuments");
|
|
18
|
-
const pending = (async () => {
|
|
19
|
-
let text: string;
|
|
20
|
-
if (address.protocol === "file:") text = await (options.readFile ?? ((path) => readLocal(path, "utf8")))(fileURLToPath(address));
|
|
21
|
-
else if (address.protocol === "https:" || address.protocol === "http:") {
|
|
22
|
-
const response = await (options.fetch ?? globalThis.fetch)(address, { signal: AbortSignal.timeout(options.timeoutMs ?? 30_000), redirect: "error" });
|
|
23
|
-
if (!response.ok) throw new Error(`${address.href} returned HTTP ${response.status}`);
|
|
24
|
-
const reader = response.body?.getReader();
|
|
25
|
-
const chunks: Uint8Array[] = []; let size = 0;
|
|
26
|
-
if (reader) { for (;;) { const part = await reader.read(); if (part.done) break; size += part.value.byteLength;
|
|
27
|
-
if (size > maxBytes) { await reader.cancel(); throw new Error(`${address.href} exceeds maxBytes`); } chunks.push(part.value); } }
|
|
28
|
-
text = Buffer.concat(chunks).toString("utf8");
|
|
29
|
-
} else throw new Error(`Unsupported reference protocol ${address.protocol}`);
|
|
30
|
-
if (Buffer.byteLength(text) > maxBytes) throw new Error(`${address.href} exceeds maxBytes`);
|
|
31
|
-
return address.pathname.endsWith(".json") ? JSON.parse(text) as unknown : parseYaml(text, { ...options, source: address.href });
|
|
32
|
-
})();
|
|
33
|
-
cache.set(key, pending); return pending;
|
|
34
|
-
};
|
|
35
|
-
const pointer = (data: unknown, hash: string): unknown => {
|
|
36
|
-
if (!hash || hash === "#") return data;
|
|
37
|
-
const path = decodeURIComponent(hash.slice(1));
|
|
38
|
-
if (!path.startsWith("/")) throw new Error(`Reference fragment ${hash} must be a JSON Pointer`);
|
|
39
|
-
let value = data;
|
|
40
|
-
for (const part of path.slice(1).split("/")) {
|
|
41
|
-
const key = part.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
42
|
-
if (value === null || typeof value !== "object" || !Object.hasOwn(value, key)) throw new Error(`Reference ${hash} does not exist`);
|
|
43
|
-
value = (value as Record<string, unknown>)[key];
|
|
44
|
-
}
|
|
45
|
-
return value;
|
|
46
|
-
};
|
|
47
|
-
const visit = async (value: unknown, base: URL, chain: string[], depth: number): Promise<unknown> => {
|
|
48
|
-
if (depth > (options.maxDepth ?? 128)) throw new Error(`Reference nesting exceeds maxDepth: ${chain.join(" -> ")}`);
|
|
49
|
-
if (Array.isArray(value)) { const out: unknown[] = []; for (const entry of value) out.push(await visit(entry, base, chain, depth + 1)); return out; }
|
|
50
|
-
if (value === null || typeof value !== "object") return value;
|
|
51
|
-
const object = value as Record<string, unknown>;
|
|
52
|
-
if (typeof object["$ref"] === "string" && options.refs !== undefined) {
|
|
53
|
-
const target = new URL(object["$ref"], base);
|
|
54
|
-
const external = target.href.split("#")[0] !== base.href.split("#")[0];
|
|
55
|
-
if (external && target.protocol === "file:" && (options.refs.local !== true || base.protocol !== "file:")) throw new Error(`Local reference is not allowed: ${target.href}`);
|
|
56
|
-
if (external && /^https?:$/u.test(target.protocol) && options.refs.remote !== true) throw new Error(`Remote reference is not allowed: ${target.href}`);
|
|
57
|
-
if (chain.includes(target.href)) {
|
|
58
|
-
if (options.refs.circular === "preserve") return { $ref: target.href };
|
|
59
|
-
throw new Error(`Circular reference: ${[...chain, target.href].join(" -> ")}`);
|
|
60
|
-
}
|
|
61
|
-
let result: unknown;
|
|
62
|
-
try { result = await visit(pointer(await read(target), target.hash), target, [...chain, target.href], depth + 1); }
|
|
63
|
-
catch (error) {
|
|
64
|
-
if (options.refs.unresolved !== "preserve") throw error;
|
|
65
|
-
diagnostics.push({ reference: target.href, message: error instanceof Error ? error.message : String(error) });
|
|
66
|
-
return { $ref: target.href };
|
|
67
|
-
}
|
|
68
|
-
const siblings = Object.entries(object).filter(([key]) => key !== "$ref");
|
|
69
|
-
if (siblings.some(([key]) => !["summary", "description"].includes(key))) throw new Error(`Unsupported $ref siblings at ${base.href}; constraints must be in the referenced schema`);
|
|
70
|
-
return siblings.length && result !== null && typeof result === "object" ? { ...result, ...Object.fromEntries(siblings) } : result;
|
|
71
|
-
}
|
|
72
|
-
const out: Record<string, unknown> = {};
|
|
73
|
-
for (const [key, entry] of Object.entries(object)) Object.defineProperty(out, key, { value: await visit(entry, base, chain, depth + 1), enumerable: true });
|
|
74
|
-
return out;
|
|
75
|
-
};
|
|
76
|
-
const data = await visit(pointer(await read(root), root.hash), root, [], 0);
|
|
77
|
-
return { data, sources: [...cache.keys()], diagnostics };
|
|
78
|
-
}
|
|
1
|
+
import type { LoadedYaml, YamlLoadOptions } from "./types/load.js";
|
|
2
|
+
import { readFile as readLocal } from "node:fs/promises";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
5
|
+
import { parseYaml } from "./yaml.js";
|
|
6
|
+
|
|
7
|
+
/** Parse YAML or JSON and optionally resolve references relative to each containing document. */
|
|
8
|
+
export async function loadYaml(source: string, options: YamlLoadOptions = {}): Promise<LoadedYaml> {
|
|
9
|
+
const root = /^(?:https?:|file:)/u.test(source) ? new URL(source) : pathToFileURL(resolve(source));
|
|
10
|
+
const cache = new Map<string, Promise<unknown>>();
|
|
11
|
+
const diagnostics: LoadedYaml["diagnostics"] = [];
|
|
12
|
+
const maxBytes = options.maxBytes ?? 16 * 1024 * 1024;
|
|
13
|
+
const read = (url: URL): Promise<unknown> => {
|
|
14
|
+
const address = new URL(url); address.hash = "";
|
|
15
|
+
const key = address.href;
|
|
16
|
+
const prior = cache.get(key); if (prior) return prior;
|
|
17
|
+
if (cache.size >= (options.maxDocuments ?? 1024)) throw new Error("Reference loading exceeds maxDocuments");
|
|
18
|
+
const pending = (async () => {
|
|
19
|
+
let text: string;
|
|
20
|
+
if (address.protocol === "file:") text = await (options.readFile ?? ((path) => readLocal(path, "utf8")))(fileURLToPath(address));
|
|
21
|
+
else if (address.protocol === "https:" || address.protocol === "http:") {
|
|
22
|
+
const response = await (options.fetch ?? globalThis.fetch)(address, { signal: AbortSignal.timeout(options.timeoutMs ?? 30_000), redirect: "error" });
|
|
23
|
+
if (!response.ok) throw new Error(`${address.href} returned HTTP ${response.status}`);
|
|
24
|
+
const reader = response.body?.getReader();
|
|
25
|
+
const chunks: Uint8Array[] = []; let size = 0;
|
|
26
|
+
if (reader) { for (;;) { const part = await reader.read(); if (part.done) break; size += part.value.byteLength;
|
|
27
|
+
if (size > maxBytes) { await reader.cancel(); throw new Error(`${address.href} exceeds maxBytes`); } chunks.push(part.value); } }
|
|
28
|
+
text = Buffer.concat(chunks).toString("utf8");
|
|
29
|
+
} else throw new Error(`Unsupported reference protocol ${address.protocol}`);
|
|
30
|
+
if (Buffer.byteLength(text) > maxBytes) throw new Error(`${address.href} exceeds maxBytes`);
|
|
31
|
+
return address.pathname.endsWith(".json") ? JSON.parse(text) as unknown : parseYaml(text, { ...options, source: address.href });
|
|
32
|
+
})();
|
|
33
|
+
cache.set(key, pending); return pending;
|
|
34
|
+
};
|
|
35
|
+
const pointer = (data: unknown, hash: string): unknown => {
|
|
36
|
+
if (!hash || hash === "#") return data;
|
|
37
|
+
const path = decodeURIComponent(hash.slice(1));
|
|
38
|
+
if (!path.startsWith("/")) throw new Error(`Reference fragment ${hash} must be a JSON Pointer`);
|
|
39
|
+
let value = data;
|
|
40
|
+
for (const part of path.slice(1).split("/")) {
|
|
41
|
+
const key = part.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
42
|
+
if (value === null || typeof value !== "object" || !Object.hasOwn(value, key)) throw new Error(`Reference ${hash} does not exist`);
|
|
43
|
+
value = (value as Record<string, unknown>)[key];
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
const visit = async (value: unknown, base: URL, chain: string[], depth: number): Promise<unknown> => {
|
|
48
|
+
if (depth > (options.maxDepth ?? 128)) throw new Error(`Reference nesting exceeds maxDepth: ${chain.join(" -> ")}`);
|
|
49
|
+
if (Array.isArray(value)) { const out: unknown[] = []; for (const entry of value) out.push(await visit(entry, base, chain, depth + 1)); return out; }
|
|
50
|
+
if (value === null || typeof value !== "object") return value;
|
|
51
|
+
const object = value as Record<string, unknown>;
|
|
52
|
+
if (typeof object["$ref"] === "string" && options.refs !== undefined) {
|
|
53
|
+
const target = new URL(object["$ref"], base);
|
|
54
|
+
const external = target.href.split("#")[0] !== base.href.split("#")[0];
|
|
55
|
+
if (external && target.protocol === "file:" && (options.refs.local !== true || base.protocol !== "file:")) throw new Error(`Local reference is not allowed: ${target.href}`);
|
|
56
|
+
if (external && /^https?:$/u.test(target.protocol) && options.refs.remote !== true) throw new Error(`Remote reference is not allowed: ${target.href}`);
|
|
57
|
+
if (chain.includes(target.href)) {
|
|
58
|
+
if (options.refs.circular === "preserve") return { $ref: target.href };
|
|
59
|
+
throw new Error(`Circular reference: ${[...chain, target.href].join(" -> ")}`);
|
|
60
|
+
}
|
|
61
|
+
let result: unknown;
|
|
62
|
+
try { result = await visit(pointer(await read(target), target.hash), target, [...chain, target.href], depth + 1); }
|
|
63
|
+
catch (error) {
|
|
64
|
+
if (options.refs.unresolved !== "preserve") throw error;
|
|
65
|
+
diagnostics.push({ reference: target.href, message: error instanceof Error ? error.message : String(error) });
|
|
66
|
+
return { $ref: target.href };
|
|
67
|
+
}
|
|
68
|
+
const siblings = Object.entries(object).filter(([key]) => key !== "$ref");
|
|
69
|
+
if (siblings.some(([key]) => !["summary", "description"].includes(key))) throw new Error(`Unsupported $ref siblings at ${base.href}; constraints must be in the referenced schema`);
|
|
70
|
+
return siblings.length && result !== null && typeof result === "object" ? { ...result, ...Object.fromEntries(siblings) } : result;
|
|
71
|
+
}
|
|
72
|
+
const out: Record<string, unknown> = {};
|
|
73
|
+
for (const [key, entry] of Object.entries(object)) Object.defineProperty(out, key, { value: await visit(entry, base, chain, depth + 1), enumerable: true });
|
|
74
|
+
return out;
|
|
75
|
+
};
|
|
76
|
+
const data = await visit(pointer(await read(root), root.hash), root, [], 0);
|
|
77
|
+
return { data, sources: [...cache.keys()], diagnostics };
|
|
78
|
+
}
|