phantom-pr 0.2.5 → 0.2.6
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/core/index/indexer.js +3 -1
- package/dist/core/index/indexer.js.map +1 -1
- package/package.json +3 -7
- package/node_modules/ignore/LICENSE-MIT +0 -21
- package/node_modules/ignore/README.md +0 -452
- package/node_modules/ignore/index.d.ts +0 -81
- package/node_modules/ignore/index.js +0 -784
- package/node_modules/ignore/legacy.js +0 -681
- package/node_modules/ignore/package.json +0 -87
- package/node_modules/yaml/LICENSE +0 -13
- package/node_modules/yaml/README.md +0 -172
- package/node_modules/yaml/bin.mjs +0 -11
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +0 -88
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +0 -43
- package/node_modules/yaml/browser/dist/compose/compose-node.js +0 -102
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +0 -86
- package/node_modules/yaml/browser/dist/compose/composer.js +0 -217
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +0 -115
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +0 -198
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +0 -49
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +0 -37
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +0 -207
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +0 -223
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +0 -146
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +0 -34
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +0 -26
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +0 -15
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +0 -13
- package/node_modules/yaml/browser/dist/doc/Document.js +0 -335
- package/node_modules/yaml/browser/dist/doc/anchors.js +0 -71
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +0 -55
- package/node_modules/yaml/browser/dist/doc/createNode.js +0 -88
- package/node_modules/yaml/browser/dist/doc/directives.js +0 -176
- package/node_modules/yaml/browser/dist/errors.js +0 -57
- package/node_modules/yaml/browser/dist/index.js +0 -17
- package/node_modules/yaml/browser/dist/log.js +0 -11
- package/node_modules/yaml/browser/dist/nodes/Alias.js +0 -114
- package/node_modules/yaml/browser/dist/nodes/Collection.js +0 -147
- package/node_modules/yaml/browser/dist/nodes/Node.js +0 -38
- package/node_modules/yaml/browser/dist/nodes/Pair.js +0 -36
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +0 -24
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +0 -144
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +0 -113
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +0 -63
- package/node_modules/yaml/browser/dist/nodes/identity.js +0 -36
- package/node_modules/yaml/browser/dist/nodes/toJS.js +0 -37
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +0 -214
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +0 -61
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +0 -97
- package/node_modules/yaml/browser/dist/parse/cst.js +0 -98
- package/node_modules/yaml/browser/dist/parse/lexer.js +0 -717
- package/node_modules/yaml/browser/dist/parse/line-counter.js +0 -39
- package/node_modules/yaml/browser/dist/parse/parser.js +0 -967
- package/node_modules/yaml/browser/dist/public-api.js +0 -102
- package/node_modules/yaml/browser/dist/schema/Schema.js +0 -37
- package/node_modules/yaml/browser/dist/schema/common/map.js +0 -17
- package/node_modules/yaml/browser/dist/schema/common/null.js +0 -15
- package/node_modules/yaml/browser/dist/schema/common/seq.js +0 -17
- package/node_modules/yaml/browser/dist/schema/common/string.js +0 -14
- package/node_modules/yaml/browser/dist/schema/core/bool.js +0 -19
- package/node_modules/yaml/browser/dist/schema/core/float.js +0 -43
- package/node_modules/yaml/browser/dist/schema/core/int.js +0 -38
- package/node_modules/yaml/browser/dist/schema/core/schema.js +0 -23
- package/node_modules/yaml/browser/dist/schema/json/schema.js +0 -62
- package/node_modules/yaml/browser/dist/schema/tags.js +0 -96
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +0 -58
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +0 -26
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +0 -46
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +0 -71
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +0 -64
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +0 -74
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +0 -78
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +0 -39
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +0 -93
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +0 -101
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +0 -146
- package/node_modules/yaml/browser/dist/stringify/stringify.js +0 -128
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +0 -143
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +0 -20
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +0 -85
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +0 -24
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +0 -150
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +0 -336
- package/node_modules/yaml/browser/dist/util.js +0 -11
- package/node_modules/yaml/browser/dist/visit.js +0 -233
- package/node_modules/yaml/browser/index.js +0 -5
- package/node_modules/yaml/browser/package.json +0 -3
- package/node_modules/yaml/dist/cli.d.ts +0 -8
- package/node_modules/yaml/dist/cli.mjs +0 -201
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +0 -11
- package/node_modules/yaml/dist/compose/compose-collection.js +0 -90
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +0 -7
- package/node_modules/yaml/dist/compose/compose-doc.js +0 -45
- package/node_modules/yaml/dist/compose/compose-node.d.ts +0 -29
- package/node_modules/yaml/dist/compose/compose-node.js +0 -105
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +0 -5
- package/node_modules/yaml/dist/compose/compose-scalar.js +0 -88
- package/node_modules/yaml/dist/compose/composer.d.ts +0 -63
- package/node_modules/yaml/dist/compose/composer.js +0 -222
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +0 -6
- package/node_modules/yaml/dist/compose/resolve-block-map.js +0 -117
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +0 -11
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +0 -200
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +0 -6
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +0 -51
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +0 -6
- package/node_modules/yaml/dist/compose/resolve-end.js +0 -39
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +0 -7
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +0 -209
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +0 -10
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +0 -225
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +0 -23
- package/node_modules/yaml/dist/compose/resolve-props.js +0 -148
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +0 -2
- package/node_modules/yaml/dist/compose/util-contains-newline.js +0 -36
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +0 -2
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +0 -28
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +0 -3
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +0 -17
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +0 -4
- package/node_modules/yaml/dist/compose/util-map-includes.js +0 -15
- package/node_modules/yaml/dist/doc/Document.d.ts +0 -141
- package/node_modules/yaml/dist/doc/Document.js +0 -337
- package/node_modules/yaml/dist/doc/anchors.d.ts +0 -24
- package/node_modules/yaml/dist/doc/anchors.js +0 -76
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +0 -9
- package/node_modules/yaml/dist/doc/applyReviver.js +0 -57
- package/node_modules/yaml/dist/doc/createNode.d.ts +0 -17
- package/node_modules/yaml/dist/doc/createNode.js +0 -90
- package/node_modules/yaml/dist/doc/directives.d.ts +0 -49
- package/node_modules/yaml/dist/doc/directives.js +0 -178
- package/node_modules/yaml/dist/errors.d.ts +0 -21
- package/node_modules/yaml/dist/errors.js +0 -62
- package/node_modules/yaml/dist/index.d.ts +0 -25
- package/node_modules/yaml/dist/index.js +0 -50
- package/node_modules/yaml/dist/log.d.ts +0 -3
- package/node_modules/yaml/dist/log.js +0 -19
- package/node_modules/yaml/dist/nodes/Alias.d.ts +0 -29
- package/node_modules/yaml/dist/nodes/Alias.js +0 -116
- package/node_modules/yaml/dist/nodes/Collection.d.ts +0 -73
- package/node_modules/yaml/dist/nodes/Collection.js +0 -151
- package/node_modules/yaml/dist/nodes/Node.d.ts +0 -53
- package/node_modules/yaml/dist/nodes/Node.js +0 -40
- package/node_modules/yaml/dist/nodes/Pair.d.ts +0 -22
- package/node_modules/yaml/dist/nodes/Pair.js +0 -39
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +0 -43
- package/node_modules/yaml/dist/nodes/Scalar.js +0 -27
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +0 -53
- package/node_modules/yaml/dist/nodes/YAMLMap.js +0 -147
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +0 -60
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +0 -115
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +0 -4
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +0 -65
- package/node_modules/yaml/dist/nodes/identity.d.ts +0 -23
- package/node_modules/yaml/dist/nodes/identity.js +0 -53
- package/node_modules/yaml/dist/nodes/toJS.d.ts +0 -29
- package/node_modules/yaml/dist/nodes/toJS.js +0 -39
- package/node_modules/yaml/dist/options.d.ts +0 -344
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +0 -64
- package/node_modules/yaml/dist/parse/cst-scalar.js +0 -218
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +0 -8
- package/node_modules/yaml/dist/parse/cst-stringify.js +0 -63
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +0 -39
- package/node_modules/yaml/dist/parse/cst-visit.js +0 -99
- package/node_modules/yaml/dist/parse/cst.d.ts +0 -109
- package/node_modules/yaml/dist/parse/cst.js +0 -112
- package/node_modules/yaml/dist/parse/lexer.d.ts +0 -87
- package/node_modules/yaml/dist/parse/lexer.js +0 -719
- package/node_modules/yaml/dist/parse/line-counter.d.ts +0 -22
- package/node_modules/yaml/dist/parse/line-counter.js +0 -41
- package/node_modules/yaml/dist/parse/parser.d.ts +0 -84
- package/node_modules/yaml/dist/parse/parser.js +0 -972
- package/node_modules/yaml/dist/public-api.d.ts +0 -44
- package/node_modules/yaml/dist/public-api.js +0 -107
- package/node_modules/yaml/dist/schema/Schema.d.ts +0 -17
- package/node_modules/yaml/dist/schema/Schema.js +0 -39
- package/node_modules/yaml/dist/schema/common/map.d.ts +0 -2
- package/node_modules/yaml/dist/schema/common/map.js +0 -19
- package/node_modules/yaml/dist/schema/common/null.d.ts +0 -4
- package/node_modules/yaml/dist/schema/common/null.js +0 -17
- package/node_modules/yaml/dist/schema/common/seq.d.ts +0 -2
- package/node_modules/yaml/dist/schema/common/seq.js +0 -19
- package/node_modules/yaml/dist/schema/common/string.d.ts +0 -2
- package/node_modules/yaml/dist/schema/common/string.js +0 -16
- package/node_modules/yaml/dist/schema/core/bool.d.ts +0 -4
- package/node_modules/yaml/dist/schema/core/bool.js +0 -21
- package/node_modules/yaml/dist/schema/core/float.d.ts +0 -4
- package/node_modules/yaml/dist/schema/core/float.js +0 -47
- package/node_modules/yaml/dist/schema/core/int.d.ts +0 -4
- package/node_modules/yaml/dist/schema/core/int.js +0 -42
- package/node_modules/yaml/dist/schema/core/schema.d.ts +0 -1
- package/node_modules/yaml/dist/schema/core/schema.js +0 -25
- package/node_modules/yaml/dist/schema/json/schema.d.ts +0 -2
- package/node_modules/yaml/dist/schema/json/schema.js +0 -64
- package/node_modules/yaml/dist/schema/json-schema.d.ts +0 -69
- package/node_modules/yaml/dist/schema/tags.d.ts +0 -48
- package/node_modules/yaml/dist/schema/tags.js +0 -99
- package/node_modules/yaml/dist/schema/types.d.ts +0 -92
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +0 -2
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +0 -70
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +0 -7
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +0 -29
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +0 -4
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +0 -50
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +0 -5
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +0 -76
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +0 -9
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +0 -68
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +0 -22
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +0 -77
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +0 -10
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +0 -82
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +0 -1
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +0 -41
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +0 -28
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +0 -96
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +0 -6
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +0 -105
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +0 -34
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +0 -151
- package/node_modules/yaml/dist/stringify/stringify.d.ts +0 -21
- package/node_modules/yaml/dist/stringify/stringify.js +0 -131
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +0 -17
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +0 -145
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +0 -10
- package/node_modules/yaml/dist/stringify/stringifyComment.js +0 -24
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +0 -4
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +0 -87
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +0 -2
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +0 -26
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +0 -3
- package/node_modules/yaml/dist/stringify/stringifyPair.js +0 -152
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +0 -9
- package/node_modules/yaml/dist/stringify/stringifyString.js +0 -338
- package/node_modules/yaml/dist/test-events.d.ts +0 -4
- package/node_modules/yaml/dist/test-events.js +0 -134
- package/node_modules/yaml/dist/util.d.ts +0 -16
- package/node_modules/yaml/dist/util.js +0 -28
- package/node_modules/yaml/dist/visit.d.ts +0 -102
- package/node_modules/yaml/dist/visit.js +0 -236
- package/node_modules/yaml/package.json +0 -97
- package/node_modules/yaml/util.js +0 -2
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
import type { Reviver } from './doc/applyReviver';
|
|
2
|
-
import type { Directives } from './doc/directives';
|
|
3
|
-
import type { LogLevelId } from './log';
|
|
4
|
-
import type { ParsedNode } from './nodes/Node';
|
|
5
|
-
import type { Pair } from './nodes/Pair';
|
|
6
|
-
import type { Scalar } from './nodes/Scalar';
|
|
7
|
-
import type { LineCounter } from './parse/line-counter';
|
|
8
|
-
import type { Schema } from './schema/Schema';
|
|
9
|
-
import type { Tags } from './schema/tags';
|
|
10
|
-
import type { CollectionTag, ScalarTag } from './schema/types';
|
|
11
|
-
export type ParseOptions = {
|
|
12
|
-
/**
|
|
13
|
-
* Whether integers should be parsed into BigInt rather than number values.
|
|
14
|
-
*
|
|
15
|
-
* Default: `false`
|
|
16
|
-
*
|
|
17
|
-
* https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/BigInt
|
|
18
|
-
*/
|
|
19
|
-
intAsBigInt?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Include a `srcToken` value on each parsed `Node`, containing the CST token
|
|
22
|
-
* that was composed into this node.
|
|
23
|
-
*
|
|
24
|
-
* Default: `false`
|
|
25
|
-
*/
|
|
26
|
-
keepSourceTokens?: boolean;
|
|
27
|
-
/**
|
|
28
|
-
* If set, newlines will be tracked, to allow for `lineCounter.linePos(offset)`
|
|
29
|
-
* to provide the `{ line, col }` positions within the input.
|
|
30
|
-
*/
|
|
31
|
-
lineCounter?: LineCounter;
|
|
32
|
-
/**
|
|
33
|
-
* Include line/col position & node type directly in parse errors.
|
|
34
|
-
*
|
|
35
|
-
* Default: `true`
|
|
36
|
-
*/
|
|
37
|
-
prettyErrors?: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Detect and report errors that are required by the YAML 1.2 spec,
|
|
40
|
-
* but are caused by unambiguous content.
|
|
41
|
-
*
|
|
42
|
-
* Default: `true`
|
|
43
|
-
*/
|
|
44
|
-
strict?: boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Parse all mapping keys as strings. Treat all non-scalar keys as errors.
|
|
47
|
-
*
|
|
48
|
-
* Default: `false`
|
|
49
|
-
*/
|
|
50
|
-
stringKeys?: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* YAML requires map keys to be unique. By default, this is checked by
|
|
53
|
-
* comparing scalar values with `===`; deep equality is not checked for
|
|
54
|
-
* aliases or collections. If merge keys are enabled by the schema,
|
|
55
|
-
* multiple `<<` keys are allowed.
|
|
56
|
-
*
|
|
57
|
-
* Set `false` to disable, or provide your own comparator function to
|
|
58
|
-
* customise. The comparator will be passed two `ParsedNode` values, and
|
|
59
|
-
* is expected to return a `boolean` indicating their equality.
|
|
60
|
-
*
|
|
61
|
-
* Default: `true`
|
|
62
|
-
*/
|
|
63
|
-
uniqueKeys?: boolean | ((a: ParsedNode, b: ParsedNode) => boolean);
|
|
64
|
-
};
|
|
65
|
-
export type DocumentOptions = {
|
|
66
|
-
/**
|
|
67
|
-
* @internal
|
|
68
|
-
* Used internally by Composer. If set and includes an explicit version,
|
|
69
|
-
* that overrides the `version` option.
|
|
70
|
-
*/
|
|
71
|
-
_directives?: Directives;
|
|
72
|
-
/**
|
|
73
|
-
* Control the logging level during parsing
|
|
74
|
-
*
|
|
75
|
-
* Default: `'warn'`
|
|
76
|
-
*/
|
|
77
|
-
logLevel?: LogLevelId;
|
|
78
|
-
/**
|
|
79
|
-
* The YAML version used by documents without a `%YAML` directive.
|
|
80
|
-
*
|
|
81
|
-
* Default: `"1.2"`
|
|
82
|
-
*/
|
|
83
|
-
version?: '1.1' | '1.2' | 'next';
|
|
84
|
-
};
|
|
85
|
-
export type SchemaOptions = {
|
|
86
|
-
/**
|
|
87
|
-
* When parsing, warn about compatibility issues with the given schema.
|
|
88
|
-
* When stringifying, use scalar styles that are parsed correctly
|
|
89
|
-
* by the `compat` schema as well as the actual schema.
|
|
90
|
-
*
|
|
91
|
-
* Default: `null`
|
|
92
|
-
*/
|
|
93
|
-
compat?: string | Tags | null;
|
|
94
|
-
/**
|
|
95
|
-
* Array of additional tags to include in the schema, or a function that may
|
|
96
|
-
* modify the schema's base tag array.
|
|
97
|
-
*/
|
|
98
|
-
customTags?: Tags | ((tags: Tags) => Tags) | null;
|
|
99
|
-
/**
|
|
100
|
-
* Enable support for `<<` merge keys.
|
|
101
|
-
*
|
|
102
|
-
* Default: `false` for YAML 1.2, `true` for earlier versions
|
|
103
|
-
*/
|
|
104
|
-
merge?: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* When using the `'core'` schema, support parsing values with these
|
|
107
|
-
* explicit YAML 1.1 tags:
|
|
108
|
-
*
|
|
109
|
-
* `!!binary`, `!!omap`, `!!pairs`, `!!set`, `!!timestamp`.
|
|
110
|
-
*
|
|
111
|
-
* Default `true`
|
|
112
|
-
*/
|
|
113
|
-
resolveKnownTags?: boolean;
|
|
114
|
-
/**
|
|
115
|
-
* The base schema to use.
|
|
116
|
-
*
|
|
117
|
-
* The core library has built-in support for the following:
|
|
118
|
-
* - `'failsafe'`: A minimal schema that parses all scalars as strings
|
|
119
|
-
* - `'core'`: The YAML 1.2 core schema
|
|
120
|
-
* - `'json'`: The YAML 1.2 JSON schema, with minimal rules for JSON compatibility
|
|
121
|
-
* - `'yaml-1.1'`: The YAML 1.1 schema
|
|
122
|
-
*
|
|
123
|
-
* If using another (custom) schema, the `customTags` array needs to
|
|
124
|
-
* fully define the schema's tags.
|
|
125
|
-
*
|
|
126
|
-
* Default: `'core'` for YAML 1.2, `'yaml-1.1'` for earlier versions
|
|
127
|
-
*/
|
|
128
|
-
schema?: string | Schema;
|
|
129
|
-
/**
|
|
130
|
-
* When adding to or stringifying a map, sort the entries.
|
|
131
|
-
* If `true`, sort by comparing key values with `<`.
|
|
132
|
-
* Does not affect item order when parsing.
|
|
133
|
-
*
|
|
134
|
-
* Default: `false`
|
|
135
|
-
*/
|
|
136
|
-
sortMapEntries?: boolean | ((a: Pair, b: Pair) => number);
|
|
137
|
-
/**
|
|
138
|
-
* Override default values for `toString()` options.
|
|
139
|
-
*/
|
|
140
|
-
toStringDefaults?: ToStringOptions;
|
|
141
|
-
};
|
|
142
|
-
export type CreateNodeOptions = {
|
|
143
|
-
/**
|
|
144
|
-
* During node construction, use anchors and aliases to keep strictly equal
|
|
145
|
-
* non-null objects as equivalent in YAML.
|
|
146
|
-
*
|
|
147
|
-
* Default: `true`
|
|
148
|
-
*/
|
|
149
|
-
aliasDuplicateObjects?: boolean;
|
|
150
|
-
/**
|
|
151
|
-
* Default prefix for anchors.
|
|
152
|
-
*
|
|
153
|
-
* Default: `'a'`, resulting in anchors `a1`, `a2`, etc.
|
|
154
|
-
*/
|
|
155
|
-
anchorPrefix?: string;
|
|
156
|
-
/** Force the top-level collection node to use flow style. */
|
|
157
|
-
flow?: boolean;
|
|
158
|
-
/**
|
|
159
|
-
* Keep `undefined` object values when creating mappings, rather than
|
|
160
|
-
* discarding them.
|
|
161
|
-
*
|
|
162
|
-
* Default: `false`
|
|
163
|
-
*/
|
|
164
|
-
keepUndefined?: boolean | null;
|
|
165
|
-
onTagObj?: (tagObj: ScalarTag | CollectionTag) => void;
|
|
166
|
-
/**
|
|
167
|
-
* Specify the top-level collection type, e.g. `"!!omap"`. Note that this
|
|
168
|
-
* requires the corresponding tag to be available in this document's schema.
|
|
169
|
-
*/
|
|
170
|
-
tag?: string;
|
|
171
|
-
};
|
|
172
|
-
export type ToJSOptions = {
|
|
173
|
-
/**
|
|
174
|
-
* Use Map rather than Object to represent mappings.
|
|
175
|
-
*
|
|
176
|
-
* Default: `false`
|
|
177
|
-
*/
|
|
178
|
-
mapAsMap?: boolean;
|
|
179
|
-
/**
|
|
180
|
-
* Prevent exponential entity expansion attacks by limiting data aliasing count;
|
|
181
|
-
* set to `-1` to disable checks; `0` disallows all alias nodes.
|
|
182
|
-
*
|
|
183
|
-
* Default: `100`
|
|
184
|
-
*/
|
|
185
|
-
maxAliasCount?: number;
|
|
186
|
-
/**
|
|
187
|
-
* If defined, called with the resolved `value` and reference `count` for
|
|
188
|
-
* each anchor in the document.
|
|
189
|
-
*/
|
|
190
|
-
onAnchor?: (value: unknown, count: number) => void;
|
|
191
|
-
/**
|
|
192
|
-
* Optional function that may filter or modify the output JS value
|
|
193
|
-
*
|
|
194
|
-
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#using_the_reviver_parameter
|
|
195
|
-
*/
|
|
196
|
-
reviver?: Reviver;
|
|
197
|
-
};
|
|
198
|
-
export type ToStringOptions = {
|
|
199
|
-
/**
|
|
200
|
-
* Use block quote styles for scalar values where applicable.
|
|
201
|
-
* Set to `false` to disable block quotes completely.
|
|
202
|
-
*
|
|
203
|
-
* Default: `true`
|
|
204
|
-
*/
|
|
205
|
-
blockQuote?: boolean | 'folded' | 'literal';
|
|
206
|
-
/**
|
|
207
|
-
* Enforce `'block'` or `'flow'` style on maps and sequences.
|
|
208
|
-
* Empty collections will always be stringified as `{}` or `[]`.
|
|
209
|
-
*
|
|
210
|
-
* Default: `'any'`, allowing each node to set its style separately
|
|
211
|
-
* with its `flow: boolean` (default `false`) property.
|
|
212
|
-
*/
|
|
213
|
-
collectionStyle?: 'any' | 'block' | 'flow';
|
|
214
|
-
/**
|
|
215
|
-
* Comment stringifier.
|
|
216
|
-
* Output should be valid for the current schema.
|
|
217
|
-
*
|
|
218
|
-
* By default, empty comment lines are left empty,
|
|
219
|
-
* lines consisting of a single space are replaced by `#`,
|
|
220
|
-
* and all other lines are prefixed with a `#`.
|
|
221
|
-
*/
|
|
222
|
-
commentString?: (comment: string) => string;
|
|
223
|
-
/**
|
|
224
|
-
* The default type of string literal used to stringify implicit key values.
|
|
225
|
-
* Output may use other types if required to fully represent the value.
|
|
226
|
-
*
|
|
227
|
-
* If `null`, the value of `defaultStringType` is used.
|
|
228
|
-
*
|
|
229
|
-
* Default: `null`
|
|
230
|
-
*/
|
|
231
|
-
defaultKeyType?: Scalar.Type | null;
|
|
232
|
-
/**
|
|
233
|
-
* The default type of string literal used to stringify values in general.
|
|
234
|
-
* Output may use other types if required to fully represent the value.
|
|
235
|
-
*
|
|
236
|
-
* Default: `'PLAIN'`
|
|
237
|
-
*/
|
|
238
|
-
defaultStringType?: Scalar.Type;
|
|
239
|
-
/**
|
|
240
|
-
* Include directives in the output.
|
|
241
|
-
*
|
|
242
|
-
* - If `true`, at least the document-start marker `---` is always included.
|
|
243
|
-
* This does not force the `%YAML` directive to be included. To do that,
|
|
244
|
-
* set `doc.directives.yaml.explicit = true`.
|
|
245
|
-
* - If `false`, no directives or marker is ever included. If using the `%TAG`
|
|
246
|
-
* directive, you are expected to include it manually in the stream before
|
|
247
|
-
* its use.
|
|
248
|
-
* - If `null`, directives and marker may be included if required.
|
|
249
|
-
*
|
|
250
|
-
* Default: `null`
|
|
251
|
-
*/
|
|
252
|
-
directives?: boolean | null;
|
|
253
|
-
/**
|
|
254
|
-
* Restrict double-quoted strings to use JSON-compatible syntax.
|
|
255
|
-
*
|
|
256
|
-
* Default: `false`
|
|
257
|
-
*/
|
|
258
|
-
doubleQuotedAsJSON?: boolean;
|
|
259
|
-
/**
|
|
260
|
-
* Minimum length for double-quoted strings to use multiple lines to
|
|
261
|
-
* represent the value. Ignored if `doubleQuotedAsJSON` is set.
|
|
262
|
-
*
|
|
263
|
-
* Default: `40`
|
|
264
|
-
*/
|
|
265
|
-
doubleQuotedMinMultiLineLength?: number;
|
|
266
|
-
/**
|
|
267
|
-
* String representation for `false`.
|
|
268
|
-
* With the core schema, use `'false'`, `'False'`, or `'FALSE'`.
|
|
269
|
-
*
|
|
270
|
-
* Default: `'false'`
|
|
271
|
-
*/
|
|
272
|
-
falseStr?: string;
|
|
273
|
-
/**
|
|
274
|
-
* When true, a single space of padding will be added inside the delimiters
|
|
275
|
-
* of non-empty single-line flow collections.
|
|
276
|
-
*
|
|
277
|
-
* Default: `true`
|
|
278
|
-
*/
|
|
279
|
-
flowCollectionPadding?: boolean;
|
|
280
|
-
/**
|
|
281
|
-
* The number of spaces to use when indenting code.
|
|
282
|
-
*
|
|
283
|
-
* Default: `2`
|
|
284
|
-
*/
|
|
285
|
-
indent?: number;
|
|
286
|
-
/**
|
|
287
|
-
* Whether block sequences should be indented.
|
|
288
|
-
*
|
|
289
|
-
* Default: `true`
|
|
290
|
-
*/
|
|
291
|
-
indentSeq?: boolean;
|
|
292
|
-
/**
|
|
293
|
-
* Maximum line width (set to `0` to disable folding).
|
|
294
|
-
*
|
|
295
|
-
* This is a soft limit, as only double-quoted semantics allow for inserting
|
|
296
|
-
* a line break in the middle of a word, as well as being influenced by the
|
|
297
|
-
* `minContentWidth` option.
|
|
298
|
-
*
|
|
299
|
-
* Default: `80`
|
|
300
|
-
*/
|
|
301
|
-
lineWidth?: number;
|
|
302
|
-
/**
|
|
303
|
-
* Minimum line width for highly-indented content (set to `0` to disable).
|
|
304
|
-
*
|
|
305
|
-
* Default: `20`
|
|
306
|
-
*/
|
|
307
|
-
minContentWidth?: number;
|
|
308
|
-
/**
|
|
309
|
-
* String representation for `null`.
|
|
310
|
-
* With the core schema, use `'null'`, `'Null'`, `'NULL'`, `'~'`, or an empty
|
|
311
|
-
* string `''`.
|
|
312
|
-
*
|
|
313
|
-
* Default: `'null'`
|
|
314
|
-
*/
|
|
315
|
-
nullStr?: string;
|
|
316
|
-
/**
|
|
317
|
-
* Require keys to be scalars and to use implicit rather than explicit notation.
|
|
318
|
-
*
|
|
319
|
-
* Default: `false`
|
|
320
|
-
*/
|
|
321
|
-
simpleKeys?: boolean;
|
|
322
|
-
/**
|
|
323
|
-
* Use 'single quote' rather than "double quote" where applicable.
|
|
324
|
-
* Set to `false` to disable single quotes completely.
|
|
325
|
-
*
|
|
326
|
-
* Default: `null`
|
|
327
|
-
*/
|
|
328
|
-
singleQuote?: boolean | null;
|
|
329
|
-
/**
|
|
330
|
-
* String representation for `true`.
|
|
331
|
-
* With the core schema, use `'true'`, `'True'`, or `'TRUE'`.
|
|
332
|
-
*
|
|
333
|
-
* Default: `'true'`
|
|
334
|
-
*/
|
|
335
|
-
trueStr?: string;
|
|
336
|
-
/**
|
|
337
|
-
* The anchor used by an alias must be defined before the alias node. As it's
|
|
338
|
-
* possible for the document to be modified manually, the order may be
|
|
339
|
-
* verified during stringification.
|
|
340
|
-
*
|
|
341
|
-
* Default: `'true'`
|
|
342
|
-
*/
|
|
343
|
-
verifyAliasOrder?: boolean;
|
|
344
|
-
};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { ErrorCode } from '../errors';
|
|
2
|
-
import type { Range } from '../nodes/Node';
|
|
3
|
-
import type { Scalar } from '../nodes/Scalar';
|
|
4
|
-
import type { BlockScalar, FlowScalar, SourceToken, Token } from './cst';
|
|
5
|
-
/**
|
|
6
|
-
* If `token` is a CST flow or block scalar, determine its string value and a few other attributes.
|
|
7
|
-
* Otherwise, return `null`.
|
|
8
|
-
*/
|
|
9
|
-
export declare function resolveAsScalar(token: FlowScalar | BlockScalar, strict?: boolean, onError?: (offset: number, code: ErrorCode, message: string) => void): {
|
|
10
|
-
value: string;
|
|
11
|
-
type: Scalar.Type | null;
|
|
12
|
-
comment: string;
|
|
13
|
-
range: Range;
|
|
14
|
-
};
|
|
15
|
-
export declare function resolveAsScalar(token: Token | null | undefined, strict?: boolean, onError?: (offset: number, code: ErrorCode, message: string) => void): {
|
|
16
|
-
value: string;
|
|
17
|
-
type: Scalar.Type | null;
|
|
18
|
-
comment: string;
|
|
19
|
-
range: Range;
|
|
20
|
-
} | null;
|
|
21
|
-
/**
|
|
22
|
-
* Create a new scalar token with `value`
|
|
23
|
-
*
|
|
24
|
-
* Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,
|
|
25
|
-
* as this function does not support any schema operations and won't check for such conflicts.
|
|
26
|
-
*
|
|
27
|
-
* @param value The string representation of the value, which will have its content properly indented.
|
|
28
|
-
* @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.
|
|
29
|
-
* @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.
|
|
30
|
-
* @param context.indent The indent level of the token.
|
|
31
|
-
* @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.
|
|
32
|
-
* @param context.offset The offset position of the token.
|
|
33
|
-
* @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.
|
|
34
|
-
*/
|
|
35
|
-
export declare function createScalarToken(value: string, context: {
|
|
36
|
-
end?: SourceToken[];
|
|
37
|
-
implicitKey?: boolean;
|
|
38
|
-
indent: number;
|
|
39
|
-
inFlow?: boolean;
|
|
40
|
-
offset?: number;
|
|
41
|
-
type?: Scalar.Type;
|
|
42
|
-
}): BlockScalar | FlowScalar;
|
|
43
|
-
/**
|
|
44
|
-
* Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.
|
|
45
|
-
*
|
|
46
|
-
* Best efforts are made to retain any comments previously associated with the `token`,
|
|
47
|
-
* though all contents within a collection's `items` will be overwritten.
|
|
48
|
-
*
|
|
49
|
-
* Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,
|
|
50
|
-
* as this function does not support any schema operations and won't check for such conflicts.
|
|
51
|
-
*
|
|
52
|
-
* @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.
|
|
53
|
-
* @param value The string representation of the value, which will have its content properly indented.
|
|
54
|
-
* @param context.afterKey In most cases, values after a key should have an additional level of indentation.
|
|
55
|
-
* @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.
|
|
56
|
-
* @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.
|
|
57
|
-
* @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.
|
|
58
|
-
*/
|
|
59
|
-
export declare function setScalarValue(token: Token, value: string, context?: {
|
|
60
|
-
afterKey?: boolean;
|
|
61
|
-
implicitKey?: boolean;
|
|
62
|
-
inFlow?: boolean;
|
|
63
|
-
type?: Scalar.Type;
|
|
64
|
-
}): void;
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var resolveBlockScalar = require('../compose/resolve-block-scalar.js');
|
|
4
|
-
var resolveFlowScalar = require('../compose/resolve-flow-scalar.js');
|
|
5
|
-
var errors = require('../errors.js');
|
|
6
|
-
var stringifyString = require('../stringify/stringifyString.js');
|
|
7
|
-
|
|
8
|
-
function resolveAsScalar(token, strict = true, onError) {
|
|
9
|
-
if (token) {
|
|
10
|
-
const _onError = (pos, code, message) => {
|
|
11
|
-
const offset = typeof pos === 'number' ? pos : Array.isArray(pos) ? pos[0] : pos.offset;
|
|
12
|
-
if (onError)
|
|
13
|
-
onError(offset, code, message);
|
|
14
|
-
else
|
|
15
|
-
throw new errors.YAMLParseError([offset, offset + 1], code, message);
|
|
16
|
-
};
|
|
17
|
-
switch (token.type) {
|
|
18
|
-
case 'scalar':
|
|
19
|
-
case 'single-quoted-scalar':
|
|
20
|
-
case 'double-quoted-scalar':
|
|
21
|
-
return resolveFlowScalar.resolveFlowScalar(token, strict, _onError);
|
|
22
|
-
case 'block-scalar':
|
|
23
|
-
return resolveBlockScalar.resolveBlockScalar({ options: { strict } }, token, _onError);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Create a new scalar token with `value`
|
|
30
|
-
*
|
|
31
|
-
* Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,
|
|
32
|
-
* as this function does not support any schema operations and won't check for such conflicts.
|
|
33
|
-
*
|
|
34
|
-
* @param value The string representation of the value, which will have its content properly indented.
|
|
35
|
-
* @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.
|
|
36
|
-
* @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.
|
|
37
|
-
* @param context.indent The indent level of the token.
|
|
38
|
-
* @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.
|
|
39
|
-
* @param context.offset The offset position of the token.
|
|
40
|
-
* @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.
|
|
41
|
-
*/
|
|
42
|
-
function createScalarToken(value, context) {
|
|
43
|
-
const { implicitKey = false, indent, inFlow = false, offset = -1, type = 'PLAIN' } = context;
|
|
44
|
-
const source = stringifyString.stringifyString({ type, value }, {
|
|
45
|
-
implicitKey,
|
|
46
|
-
indent: indent > 0 ? ' '.repeat(indent) : '',
|
|
47
|
-
inFlow,
|
|
48
|
-
options: { blockQuote: true, lineWidth: -1 }
|
|
49
|
-
});
|
|
50
|
-
const end = context.end ?? [
|
|
51
|
-
{ type: 'newline', offset: -1, indent, source: '\n' }
|
|
52
|
-
];
|
|
53
|
-
switch (source[0]) {
|
|
54
|
-
case '|':
|
|
55
|
-
case '>': {
|
|
56
|
-
const he = source.indexOf('\n');
|
|
57
|
-
const head = source.substring(0, he);
|
|
58
|
-
const body = source.substring(he + 1) + '\n';
|
|
59
|
-
const props = [
|
|
60
|
-
{ type: 'block-scalar-header', offset, indent, source: head }
|
|
61
|
-
];
|
|
62
|
-
if (!addEndtoBlockProps(props, end))
|
|
63
|
-
props.push({ type: 'newline', offset: -1, indent, source: '\n' });
|
|
64
|
-
return { type: 'block-scalar', offset, indent, props, source: body };
|
|
65
|
-
}
|
|
66
|
-
case '"':
|
|
67
|
-
return { type: 'double-quoted-scalar', offset, indent, source, end };
|
|
68
|
-
case "'":
|
|
69
|
-
return { type: 'single-quoted-scalar', offset, indent, source, end };
|
|
70
|
-
default:
|
|
71
|
-
return { type: 'scalar', offset, indent, source, end };
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.
|
|
76
|
-
*
|
|
77
|
-
* Best efforts are made to retain any comments previously associated with the `token`,
|
|
78
|
-
* though all contents within a collection's `items` will be overwritten.
|
|
79
|
-
*
|
|
80
|
-
* Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,
|
|
81
|
-
* as this function does not support any schema operations and won't check for such conflicts.
|
|
82
|
-
*
|
|
83
|
-
* @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.
|
|
84
|
-
* @param value The string representation of the value, which will have its content properly indented.
|
|
85
|
-
* @param context.afterKey In most cases, values after a key should have an additional level of indentation.
|
|
86
|
-
* @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.
|
|
87
|
-
* @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.
|
|
88
|
-
* @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.
|
|
89
|
-
*/
|
|
90
|
-
function setScalarValue(token, value, context = {}) {
|
|
91
|
-
let { afterKey = false, implicitKey = false, inFlow = false, type } = context;
|
|
92
|
-
let indent = 'indent' in token ? token.indent : null;
|
|
93
|
-
if (afterKey && typeof indent === 'number')
|
|
94
|
-
indent += 2;
|
|
95
|
-
if (!type)
|
|
96
|
-
switch (token.type) {
|
|
97
|
-
case 'single-quoted-scalar':
|
|
98
|
-
type = 'QUOTE_SINGLE';
|
|
99
|
-
break;
|
|
100
|
-
case 'double-quoted-scalar':
|
|
101
|
-
type = 'QUOTE_DOUBLE';
|
|
102
|
-
break;
|
|
103
|
-
case 'block-scalar': {
|
|
104
|
-
const header = token.props[0];
|
|
105
|
-
if (header.type !== 'block-scalar-header')
|
|
106
|
-
throw new Error('Invalid block scalar header');
|
|
107
|
-
type = header.source[0] === '>' ? 'BLOCK_FOLDED' : 'BLOCK_LITERAL';
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
default:
|
|
111
|
-
type = 'PLAIN';
|
|
112
|
-
}
|
|
113
|
-
const source = stringifyString.stringifyString({ type, value }, {
|
|
114
|
-
implicitKey: implicitKey || indent === null,
|
|
115
|
-
indent: indent !== null && indent > 0 ? ' '.repeat(indent) : '',
|
|
116
|
-
inFlow,
|
|
117
|
-
options: { blockQuote: true, lineWidth: -1 }
|
|
118
|
-
});
|
|
119
|
-
switch (source[0]) {
|
|
120
|
-
case '|':
|
|
121
|
-
case '>':
|
|
122
|
-
setBlockScalarValue(token, source);
|
|
123
|
-
break;
|
|
124
|
-
case '"':
|
|
125
|
-
setFlowScalarValue(token, source, 'double-quoted-scalar');
|
|
126
|
-
break;
|
|
127
|
-
case "'":
|
|
128
|
-
setFlowScalarValue(token, source, 'single-quoted-scalar');
|
|
129
|
-
break;
|
|
130
|
-
default:
|
|
131
|
-
setFlowScalarValue(token, source, 'scalar');
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function setBlockScalarValue(token, source) {
|
|
135
|
-
const he = source.indexOf('\n');
|
|
136
|
-
const head = source.substring(0, he);
|
|
137
|
-
const body = source.substring(he + 1) + '\n';
|
|
138
|
-
if (token.type === 'block-scalar') {
|
|
139
|
-
const header = token.props[0];
|
|
140
|
-
if (header.type !== 'block-scalar-header')
|
|
141
|
-
throw new Error('Invalid block scalar header');
|
|
142
|
-
header.source = head;
|
|
143
|
-
token.source = body;
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
const { offset } = token;
|
|
147
|
-
const indent = 'indent' in token ? token.indent : -1;
|
|
148
|
-
const props = [
|
|
149
|
-
{ type: 'block-scalar-header', offset, indent, source: head }
|
|
150
|
-
];
|
|
151
|
-
if (!addEndtoBlockProps(props, 'end' in token ? token.end : undefined))
|
|
152
|
-
props.push({ type: 'newline', offset: -1, indent, source: '\n' });
|
|
153
|
-
for (const key of Object.keys(token))
|
|
154
|
-
if (key !== 'type' && key !== 'offset')
|
|
155
|
-
delete token[key];
|
|
156
|
-
Object.assign(token, { type: 'block-scalar', indent, props, source: body });
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
/** @returns `true` if last token is a newline */
|
|
160
|
-
function addEndtoBlockProps(props, end) {
|
|
161
|
-
if (end)
|
|
162
|
-
for (const st of end)
|
|
163
|
-
switch (st.type) {
|
|
164
|
-
case 'space':
|
|
165
|
-
case 'comment':
|
|
166
|
-
props.push(st);
|
|
167
|
-
break;
|
|
168
|
-
case 'newline':
|
|
169
|
-
props.push(st);
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
function setFlowScalarValue(token, source, type) {
|
|
175
|
-
switch (token.type) {
|
|
176
|
-
case 'scalar':
|
|
177
|
-
case 'double-quoted-scalar':
|
|
178
|
-
case 'single-quoted-scalar':
|
|
179
|
-
token.type = type;
|
|
180
|
-
token.source = source;
|
|
181
|
-
break;
|
|
182
|
-
case 'block-scalar': {
|
|
183
|
-
const end = token.props.slice(1);
|
|
184
|
-
let oa = source.length;
|
|
185
|
-
if (token.props[0].type === 'block-scalar-header')
|
|
186
|
-
oa -= token.props[0].source.length;
|
|
187
|
-
for (const tok of end)
|
|
188
|
-
tok.offset += oa;
|
|
189
|
-
delete token.props;
|
|
190
|
-
Object.assign(token, { type, source, end });
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
case 'block-map':
|
|
194
|
-
case 'block-seq': {
|
|
195
|
-
const offset = token.offset + source.length;
|
|
196
|
-
const nl = { type: 'newline', offset, indent: token.indent, source: '\n' };
|
|
197
|
-
delete token.items;
|
|
198
|
-
Object.assign(token, { type, source, end: [nl] });
|
|
199
|
-
break;
|
|
200
|
-
}
|
|
201
|
-
default: {
|
|
202
|
-
const indent = 'indent' in token ? token.indent : -1;
|
|
203
|
-
const end = 'end' in token && Array.isArray(token.end)
|
|
204
|
-
? token.end.filter(st => st.type === 'space' ||
|
|
205
|
-
st.type === 'comment' ||
|
|
206
|
-
st.type === 'newline')
|
|
207
|
-
: [];
|
|
208
|
-
for (const key of Object.keys(token))
|
|
209
|
-
if (key !== 'type' && key !== 'offset')
|
|
210
|
-
delete token[key];
|
|
211
|
-
Object.assign(token, { type, indent, source, end });
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
exports.createScalarToken = createScalarToken;
|
|
217
|
-
exports.resolveAsScalar = resolveAsScalar;
|
|
218
|
-
exports.setScalarValue = setScalarValue;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { CollectionItem, Token } from './cst';
|
|
2
|
-
/**
|
|
3
|
-
* Stringify a CST document, token, or collection item
|
|
4
|
-
*
|
|
5
|
-
* Fair warning: This applies no validation whatsoever, and
|
|
6
|
-
* simply concatenates the sources in their logical order.
|
|
7
|
-
*/
|
|
8
|
-
export declare const stringify: (cst: Token | CollectionItem) => string;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Stringify a CST document, token, or collection item
|
|
5
|
-
*
|
|
6
|
-
* Fair warning: This applies no validation whatsoever, and
|
|
7
|
-
* simply concatenates the sources in their logical order.
|
|
8
|
-
*/
|
|
9
|
-
const stringify = (cst) => 'type' in cst ? stringifyToken(cst) : stringifyItem(cst);
|
|
10
|
-
function stringifyToken(token) {
|
|
11
|
-
switch (token.type) {
|
|
12
|
-
case 'block-scalar': {
|
|
13
|
-
let res = '';
|
|
14
|
-
for (const tok of token.props)
|
|
15
|
-
res += stringifyToken(tok);
|
|
16
|
-
return res + token.source;
|
|
17
|
-
}
|
|
18
|
-
case 'block-map':
|
|
19
|
-
case 'block-seq': {
|
|
20
|
-
let res = '';
|
|
21
|
-
for (const item of token.items)
|
|
22
|
-
res += stringifyItem(item);
|
|
23
|
-
return res;
|
|
24
|
-
}
|
|
25
|
-
case 'flow-collection': {
|
|
26
|
-
let res = token.start.source;
|
|
27
|
-
for (const item of token.items)
|
|
28
|
-
res += stringifyItem(item);
|
|
29
|
-
for (const st of token.end)
|
|
30
|
-
res += st.source;
|
|
31
|
-
return res;
|
|
32
|
-
}
|
|
33
|
-
case 'document': {
|
|
34
|
-
let res = stringifyItem(token);
|
|
35
|
-
if (token.end)
|
|
36
|
-
for (const st of token.end)
|
|
37
|
-
res += st.source;
|
|
38
|
-
return res;
|
|
39
|
-
}
|
|
40
|
-
default: {
|
|
41
|
-
let res = token.source;
|
|
42
|
-
if ('end' in token && token.end)
|
|
43
|
-
for (const st of token.end)
|
|
44
|
-
res += st.source;
|
|
45
|
-
return res;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function stringifyItem({ start, key, sep, value }) {
|
|
50
|
-
let res = '';
|
|
51
|
-
for (const st of start)
|
|
52
|
-
res += st.source;
|
|
53
|
-
if (key)
|
|
54
|
-
res += stringifyToken(key);
|
|
55
|
-
if (sep)
|
|
56
|
-
for (const st of sep)
|
|
57
|
-
res += st.source;
|
|
58
|
-
if (value)
|
|
59
|
-
res += stringifyToken(value);
|
|
60
|
-
return res;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
exports.stringify = stringify;
|