yaml 1.8.2 → 1.9.2

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.
Files changed (142) hide show
  1. package/browser/dist/Anchors.js +10 -13
  2. package/browser/dist/Document.js +72 -67
  3. package/browser/dist/addComment.js +1 -1
  4. package/browser/dist/cst/Alias.js +12 -8
  5. package/browser/dist/cst/BlankLine.js +16 -20
  6. package/browser/dist/cst/BlockValue.js +14 -10
  7. package/browser/dist/cst/Collection.js +17 -13
  8. package/browser/dist/cst/CollectionItem.js +15 -11
  9. package/browser/dist/cst/Comment.js +13 -9
  10. package/browser/dist/cst/Directive.js +13 -9
  11. package/browser/dist/cst/Document.js +17 -13
  12. package/browser/dist/cst/FlowCollection.js +17 -13
  13. package/browser/dist/cst/Node.js +3 -5
  14. package/browser/dist/cst/ParseContext.js +12 -14
  15. package/browser/dist/cst/PlainValue.js +12 -8
  16. package/browser/dist/cst/QuoteDouble.js +13 -9
  17. package/browser/dist/cst/QuoteSingle.js +13 -9
  18. package/browser/dist/cst/Range.js +2 -5
  19. package/browser/dist/cst/parse.js +3 -3
  20. package/browser/dist/errors.js +23 -8
  21. package/browser/dist/foldFlowLines.js +1 -1
  22. package/browser/dist/index.js +71 -21
  23. package/browser/dist/listTagNames.js +5 -5
  24. package/browser/dist/schema/Alias.js +30 -34
  25. package/browser/dist/schema/Collection.js +40 -47
  26. package/browser/dist/schema/Map.js +39 -56
  27. package/browser/dist/schema/Merge.js +37 -46
  28. package/browser/dist/schema/Node.js +2 -5
  29. package/browser/dist/schema/Pair.js +36 -13
  30. package/browser/dist/schema/Scalar.js +13 -9
  31. package/browser/dist/schema/Seq.js +27 -25
  32. package/browser/dist/schema/index.js +25 -39
  33. package/browser/dist/schema/parseMap.js +8 -8
  34. package/browser/dist/schema/parseSeq.js +5 -5
  35. package/browser/dist/schema/parseUtils.js +11 -15
  36. package/browser/dist/stringify.js +2 -1
  37. package/browser/dist/tags/core.js +39 -23
  38. package/browser/dist/tags/failsafe/index.js +4 -4
  39. package/browser/dist/tags/failsafe/map.js +15 -18
  40. package/browser/dist/tags/failsafe/seq.js +14 -18
  41. package/browser/dist/tags/failsafe/string.js +1 -1
  42. package/browser/dist/tags/index.js +10 -10
  43. package/browser/dist/tags/json.js +27 -26
  44. package/browser/dist/tags/options.js +3 -0
  45. package/browser/dist/tags/yaml-1.1/binary.js +10 -8
  46. package/browser/dist/tags/yaml-1.1/index.js +75 -43
  47. package/browser/dist/tags/yaml-1.1/omap.js +34 -39
  48. package/browser/dist/tags/yaml-1.1/pairs.js +17 -20
  49. package/browser/dist/tags/yaml-1.1/set.js +27 -23
  50. package/browser/dist/test-events.js +4 -4
  51. package/browser/dist/toJSON.js +3 -4
  52. package/browser/dist/warnings.js +29 -18
  53. package/browser/index.js +1 -1
  54. package/browser/map.js +4 -2
  55. package/browser/pair.js +4 -2
  56. package/browser/parse-cst.js +1 -1
  57. package/browser/scalar.js +4 -2
  58. package/browser/schema.js +11 -6
  59. package/browser/seq.js +4 -2
  60. package/browser/types/binary.js +5 -6
  61. package/browser/types/omap.js +4 -2
  62. package/browser/types/pairs.js +4 -2
  63. package/browser/types/set.js +4 -2
  64. package/browser/types/timestamp.js +5 -9
  65. package/browser/types.js +12 -10
  66. package/browser/util.js +16 -13
  67. package/dist/Anchors.js +13 -18
  68. package/dist/Document.js +52 -48
  69. package/dist/addComment.js +1 -4
  70. package/dist/constants.js +0 -3
  71. package/dist/cst/Alias.js +8 -13
  72. package/dist/cst/BlankLine.js +8 -24
  73. package/dist/cst/BlockValue.js +12 -17
  74. package/dist/cst/Collection.js +22 -27
  75. package/dist/cst/CollectionItem.js +16 -21
  76. package/dist/cst/Comment.js +6 -11
  77. package/dist/cst/Directive.js +7 -12
  78. package/dist/cst/Document.js +23 -28
  79. package/dist/cst/FlowCollection.js +21 -26
  80. package/dist/cst/Node.js +4 -9
  81. package/dist/cst/ParseContext.js +38 -43
  82. package/dist/cst/PlainValue.js +10 -15
  83. package/dist/cst/QuoteDouble.js +9 -14
  84. package/dist/cst/QuoteSingle.js +9 -14
  85. package/dist/cst/Range.js +2 -5
  86. package/dist/cst/parse.js +5 -10
  87. package/dist/cst/source-utils.js +0 -3
  88. package/dist/errors.js +4 -9
  89. package/dist/foldFlowLines.js +1 -4
  90. package/dist/index.js +59 -17
  91. package/dist/listTagNames.js +9 -14
  92. package/dist/schema/Alias.js +12 -17
  93. package/dist/schema/Collection.js +16 -20
  94. package/dist/schema/Map.js +12 -17
  95. package/dist/schema/Merge.js +13 -18
  96. package/dist/schema/Node.js +2 -5
  97. package/dist/schema/Pair.js +44 -31
  98. package/dist/schema/Scalar.js +6 -11
  99. package/dist/schema/Seq.js +9 -14
  100. package/dist/schema/index.js +22 -27
  101. package/dist/schema/parseMap.js +19 -28
  102. package/dist/schema/parseSeq.js +10 -15
  103. package/dist/schema/parseUtils.js +0 -3
  104. package/dist/stringify.js +6 -12
  105. package/dist/tags/core.js +34 -26
  106. package/dist/tags/failsafe/index.js +6 -11
  107. package/dist/tags/failsafe/map.js +8 -13
  108. package/dist/tags/failsafe/seq.js +8 -13
  109. package/dist/tags/failsafe/string.js +3 -6
  110. package/dist/tags/index.js +20 -29
  111. package/dist/tags/json.js +26 -22
  112. package/dist/tags/options.js +5 -4
  113. package/dist/tags/yaml-1.1/binary.js +11 -11
  114. package/dist/tags/yaml-1.1/index.js +69 -38
  115. package/dist/tags/yaml-1.1/omap.js +19 -24
  116. package/dist/tags/yaml-1.1/pairs.js +12 -17
  117. package/dist/tags/yaml-1.1/set.js +12 -21
  118. package/dist/tags/yaml-1.1/timestamp.js +0 -3
  119. package/dist/test-events.js +4 -9
  120. package/dist/toJSON.js +3 -5
  121. package/dist/warnings.js +31 -22
  122. package/index.d.ts +358 -0
  123. package/index.js +1 -1
  124. package/map.js +1 -1
  125. package/package.json +29 -23
  126. package/pair.js +1 -1
  127. package/parse-cst.d.ts +187 -0
  128. package/parse-cst.js +1 -1
  129. package/scalar.js +1 -1
  130. package/schema.js +2 -2
  131. package/seq.js +1 -1
  132. package/types/binary.js +1 -1
  133. package/types/omap.js +1 -1
  134. package/types/pairs.js +1 -1
  135. package/types/set.js +1 -1
  136. package/types/timestamp.js +1 -1
  137. package/types.d.ts +393 -0
  138. package/types.js +7 -6
  139. package/types.mjs +6 -5
  140. package/util.d.ts +86 -0
  141. package/util.js +6 -5
  142. package/util.mjs +4 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yaml",
3
- "version": "1.8.2",
3
+ "version": "1.9.2",
4
4
  "license": "ISC",
5
5
  "author": "Eemeli Aro <eemeli@gmail.com>",
6
6
  "repository": "github:eemeli/yaml",
@@ -15,6 +15,7 @@
15
15
  "browser/",
16
16
  "dist/",
17
17
  "types/",
18
+ "*.d.ts",
18
19
  "*.js",
19
20
  "*.mjs",
20
21
  "!.*.js"
@@ -30,12 +31,14 @@
30
31
  "./schema.js": "./browser/schema.js",
31
32
  "./seq.js": "./browser/seq.js",
32
33
  "./types.js": "./browser/types.js",
34
+ "./types.mjs": "./browser/types.js",
33
35
  "./types/binary.js": "./browser/types/binary.js",
34
36
  "./types/omap.js": "./browser/types/omap.js",
35
37
  "./types/pairs.js": "./browser/types/pairs.js",
36
38
  "./types/set.js": "./browser/types/set.js",
37
39
  "./types/timestamp.js": "./browser/types/timestamp.js",
38
- "./util.js": "./browser/util.js"
40
+ "./util.js": "./browser/util.js",
41
+ "./util.mjs": "./browser/util.js"
39
42
  },
40
43
  "exports": {
41
44
  ".": "./index.js",
@@ -57,19 +60,19 @@
57
60
  ]
58
61
  },
59
62
  "scripts": {
60
- "browser:build": "BABEL_ENV=browser babel src/ --out-dir browser/dist/",
61
- "browser:copy": "cpy '*.js' '!*.config.js' types/ browser/ --parents",
63
+ "browser:build": "cross-env BABEL_ENV=browser babel src/ --out-dir browser/dist/",
62
64
  "clean": "git clean -fdxe node_modules",
63
65
  "dist:build": "babel src/ --out-dir dist/",
64
- "build": "npm run dist:build && npm run browser:build && npm run browser:copy",
65
- "prettier": "prettier --write \"{src,tests}/**/*.js\"",
66
+ "build": "npm run dist:build && npm run browser:build",
67
+ "prettier": "prettier --write .",
66
68
  "lint": "eslint src/",
67
69
  "start": "npm run dist:build && node -i -e 'YAML=require(\".\")'",
68
- "test": "TRACE_LEVEL=log jest",
69
- "test:trace": "TRACE_LEVEL=trace,log jest --no-cache",
70
- "docs:install": "cd docs/ && bundle install",
71
- "docs:deploy": "cd docs/ && ./deploy.sh",
72
- "docs": "cd docs/ && bundle exec middleman server",
70
+ "test": "cross-env TRACE_LEVEL=log jest",
71
+ "test:trace": "cross-env TRACE_LEVEL=trace,log jest --no-cache",
72
+ "test:types": "tsc --lib ES2017 --noEmit tests/typings.ts",
73
+ "docs:install": "cd docs-slate && bundle install",
74
+ "docs:deploy": "cd docs-slate && ./deploy.sh",
75
+ "docs": "cd docs-slate && bundle exec middleman server",
73
76
  "preversion": "npm test && npm run build",
74
77
  "prepublishOnly": "npm run clean && npm test && npm run build"
75
78
  },
@@ -87,29 +90,32 @@
87
90
  ]
88
91
  },
89
92
  "prettier": {
93
+ "arrowParens": "avoid",
90
94
  "semi": false,
91
- "singleQuote": true
95
+ "singleQuote": true,
96
+ "trailingComma": "none"
92
97
  },
93
98
  "devDependencies": {
94
99
  "@babel/cli": "^7.8.4",
95
- "@babel/core": "^7.8.7",
100
+ "@babel/core": "^7.9.0",
96
101
  "@babel/plugin-proposal-class-properties": "^7.8.3",
97
- "@babel/plugin-transform-runtime": "^7.8.3",
98
- "@babel/preset-env": "^7.8.7",
102
+ "@babel/plugin-transform-runtime": "^7.9.0",
103
+ "@babel/preset-env": "^7.9.5",
99
104
  "babel-eslint": "^10.1.0",
100
- "babel-jest": "^25.1.0",
105
+ "babel-jest": "^25.3.0",
101
106
  "babel-plugin-trace": "^1.1.0",
102
107
  "common-tags": "^1.8.0",
103
- "cpy-cli": "^3.1.0",
108
+ "cross-env": "^7.0.2",
104
109
  "eslint": "^6.8.0",
105
- "eslint-config-prettier": "^6.10.0",
106
- "eslint-plugin-prettier": "^3.1.2",
107
- "fast-check": "^1.23.0",
108
- "jest": "^25.1.0",
109
- "prettier": "^1.19.1"
110
+ "eslint-config-prettier": "^6.10.1",
111
+ "eslint-plugin-prettier": "^3.1.3",
112
+ "fast-check": "^1.24.1",
113
+ "jest": "^25.3.0",
114
+ "prettier": "^2.0.4",
115
+ "typescript": "^3.8.3"
110
116
  },
111
117
  "dependencies": {
112
- "@babel/runtime": "^7.8.7"
118
+ "@babel/runtime": "^7.9.2"
113
119
  },
114
120
  "engines": {
115
121
  "node": ">= 6"
package/pair.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports = require('./dist/schema/Pair').default
1
+ module.exports = require('./dist/schema/Pair').Pair
2
2
  require('./dist/warnings').warnFileDeprecation(__filename)
package/parse-cst.d.ts ADDED
@@ -0,0 +1,187 @@
1
+ import { Type, YAMLSyntaxError } from './util'
2
+
3
+ export default function parseCST(str: string): ParsedCST
4
+
5
+ export interface ParsedCST extends Array<CST.Document> {
6
+ setOrigRanges(): boolean
7
+ }
8
+
9
+ export namespace CST {
10
+ interface Range {
11
+ start: number
12
+ end: number
13
+ origStart?: number
14
+ origEnd?: number
15
+ isEmpty(): boolean
16
+ }
17
+
18
+ interface ParseContext {
19
+ /** Node starts at beginning of line */
20
+ atLineStart: boolean
21
+ /** true if currently in a collection context */
22
+ inCollection: boolean
23
+ /** true if currently in a flow context */
24
+ inFlow: boolean
25
+ /** Current level of indentation */
26
+ indent: number
27
+ /** Start of the current line */
28
+ lineStart: number
29
+ /** The parent of the node */
30
+ parent: Node
31
+ /** Source of the YAML document */
32
+ src: string
33
+ }
34
+
35
+ interface Node {
36
+ context: ParseContext | null
37
+ /** if not null, indicates a parser failure */
38
+ error: YAMLSyntaxError | null
39
+ /** span of context.src parsed into this node */
40
+ range: Range | null
41
+ valueRange: Range | null
42
+ /** anchors, tags and comments */
43
+ props: Range[]
44
+ /** specific node type */
45
+ type: Type
46
+ /** if non-null, overrides source value */
47
+ value: string | null
48
+
49
+ readonly anchor: string | null
50
+ readonly comment: string | null
51
+ readonly hasComment: boolean
52
+ readonly hasProps: boolean
53
+ readonly jsonLike: boolean
54
+ readonly rawValue: string | null
55
+ readonly tag:
56
+ | null
57
+ | { verbatim: string }
58
+ | { handle: string; suffix: string }
59
+ readonly valueRangeContainsNewline: boolean
60
+ }
61
+
62
+ interface Alias extends Node {
63
+ type: Type.ALIAS
64
+ /** contain the anchor without the * prefix */
65
+ readonly rawValue: string
66
+ }
67
+
68
+ type Scalar = BlockValue | PlainValue | QuoteValue
69
+
70
+ interface BlockValue extends Node {
71
+ type: Type.BLOCK_FOLDED | Type.BLOCK_LITERAL
72
+ chomping: 'CLIP' | 'KEEP' | 'STRIP'
73
+ blockIndent: number | null
74
+ header: Range
75
+ readonly strValue: string | null
76
+ }
77
+
78
+ interface BlockFolded extends BlockValue {
79
+ type: Type.BLOCK_FOLDED
80
+ }
81
+
82
+ interface BlockLiteral extends BlockValue {
83
+ type: Type.BLOCK_LITERAL
84
+ }
85
+
86
+ interface PlainValue extends Node {
87
+ type: Type.PLAIN
88
+ readonly strValue: string | null
89
+ }
90
+
91
+ interface QuoteValue extends Node {
92
+ type: Type.QUOTE_DOUBLE | Type.QUOTE_SINGLE
93
+ readonly strValue:
94
+ | null
95
+ | string
96
+ | { str: string; errors: YAMLSyntaxError[] }
97
+ }
98
+
99
+ interface QuoteDouble extends QuoteValue {
100
+ type: Type.QUOTE_DOUBLE
101
+ }
102
+
103
+ interface QuoteSingle extends QuoteValue {
104
+ type: Type.QUOTE_SINGLE
105
+ }
106
+
107
+ interface Comment extends Node {
108
+ type: Type.COMMENT
109
+ readonly anchor: null
110
+ readonly comment: string
111
+ readonly rawValue: null
112
+ readonly tag: null
113
+ }
114
+
115
+ interface BlankLine extends Node {
116
+ type: Type.BLANK_LINE
117
+ }
118
+
119
+ interface MapItem extends Node {
120
+ type: Type.MAP_KEY | Type.MAP_VALUE
121
+ node: ContentNode | null
122
+ }
123
+
124
+ interface MapKey extends MapItem {
125
+ type: Type.MAP_KEY
126
+ }
127
+
128
+ interface MapValue extends MapItem {
129
+ type: Type.MAP_VALUE
130
+ }
131
+
132
+ interface Map extends Node {
133
+ type: Type.MAP
134
+ /** implicit keys are not wrapped */
135
+ items: Array<BlankLine | Comment | Alias | Scalar | MapItem>
136
+ }
137
+
138
+ interface SeqItem extends Node {
139
+ type: Type.SEQ_ITEM
140
+ node: ContentNode | null
141
+ }
142
+
143
+ interface Seq extends Node {
144
+ type: Type.SEQ
145
+ items: Array<BlankLine | Comment | SeqItem>
146
+ }
147
+
148
+ interface FlowChar {
149
+ char: '{' | '}' | '[' | ']' | ',' | '?' | ':'
150
+ offset: number
151
+ origOffset?: number
152
+ }
153
+
154
+ interface FlowCollection extends Node {
155
+ type: Type.FLOW_MAP | Type.FLOW_SEQ
156
+ items: Array<
157
+ FlowChar | BlankLine | Comment | Alias | Scalar | FlowCollection
158
+ >
159
+ }
160
+
161
+ interface FlowMap extends FlowCollection {
162
+ type: Type.FLOW_MAP
163
+ }
164
+
165
+ interface FlowSeq extends FlowCollection {
166
+ type: Type.FLOW_SEQ
167
+ }
168
+
169
+ type ContentNode = Alias | Scalar | Map | Seq | FlowCollection
170
+
171
+ interface Directive extends Node {
172
+ type: Type.DIRECTIVE
173
+ name: string
174
+ readonly anchor: null
175
+ readonly parameters: string[]
176
+ readonly tag: null
177
+ }
178
+
179
+ interface Document extends Node {
180
+ type: Type.DOCUMENT
181
+ directives: Array<BlankLine | Comment | Directive>
182
+ contents: Array<BlankLine | Comment | ContentNode>
183
+ readonly anchor: null
184
+ readonly comment: null
185
+ readonly tag: null
186
+ }
187
+ }
package/parse-cst.js CHANGED
@@ -1 +1 @@
1
- module.exports = require('./dist/cst/parse').default
1
+ module.exports = require('./dist/cst/parse').parse
package/scalar.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports = require('./dist/schema/Scalar').default
1
+ module.exports = require('./dist/schema/Scalar').Scalar
2
2
  require('./dist/warnings').warnFileDeprecation(__filename)
package/schema.js CHANGED
@@ -1,5 +1,5 @@
1
- module.exports = require('./dist/schema').default
2
- var opt = require('./dist/tags/options')
1
+ module.exports = require('./dist/schema').Schema
2
+ const opt = require('./dist/tags/options')
3
3
  module.exports.nullOptions = opt.nullOptions
4
4
  module.exports.strOptions = opt.strOptions
5
5
  module.exports.stringify = require('./dist/stringify').stringifyString
package/seq.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports = require('./dist/schema/Seq').default
1
+ module.exports = require('./dist/schema/Seq').YAMLSeq
2
2
  require('./dist/warnings').warnFileDeprecation(__filename)
package/types/binary.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
  Object.defineProperty(exports, '__esModule', { value: true })
3
3
 
4
- exports.binary = require('../dist/tags/yaml-1.1/binary').default
4
+ exports.binary = require('../dist/tags/yaml-1.1/binary').binary
5
5
  exports.default = [exports.binary]
6
6
 
7
7
  require('../dist/warnings').warnFileDeprecation(__filename)
package/types/omap.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports = require('../dist/tags/yaml-1.1/omap').default
1
+ module.exports = require('../dist/tags/yaml-1.1/omap').omap
2
2
  require('../dist/warnings').warnFileDeprecation(__filename)
package/types/pairs.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports = require('../dist/tags/yaml-1.1/pairs').default
1
+ module.exports = require('../dist/tags/yaml-1.1/pairs').pairs
2
2
  require('../dist/warnings').warnFileDeprecation(__filename)
package/types/set.js CHANGED
@@ -1,2 +1,2 @@
1
- module.exports = require('../dist/tags/yaml-1.1/set').default
1
+ module.exports = require('../dist/tags/yaml-1.1/set').set
2
2
  require('../dist/warnings').warnFileDeprecation(__filename)
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
  Object.defineProperty(exports, '__esModule', { value: true })
3
3
 
4
- var ts = require('../dist/tags/yaml-1.1/timestamp')
4
+ const ts = require('../dist/tags/yaml-1.1/timestamp')
5
5
  exports.default = [ts.intTime, ts.floatTime, ts.timestamp]
6
6
  exports.floatTime = ts.floatTime
7
7
  exports.intTime = ts.intTime