appmap 0.62.0 → 0.62.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (955) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/appmap/version.rb +1 -1
  4. data/node_modules/@appland/cli/CHANGELOG.md +96 -0
  5. data/node_modules/@appland/cli/package.json +49 -0
  6. data/node_modules/@appland/cli/src/appMapCatalog.js +39 -0
  7. data/node_modules/@appland/cli/src/appland/getAppMap.js +55 -0
  8. data/node_modules/@appland/cli/src/appland/listAppMaps.js +58 -0
  9. data/node_modules/@appland/cli/src/appland/settings.js +62 -0
  10. data/node_modules/@appland/cli/src/appland/types.d.ts +16 -0
  11. data/node_modules/@appland/cli/src/cli.js +576 -0
  12. data/node_modules/@appland/cli/src/database.js +197 -0
  13. data/node_modules/@appland/cli/src/depends.js +157 -0
  14. data/node_modules/@appland/cli/src/fingerprint/algorithms.js +71 -0
  15. data/node_modules/@appland/cli/src/fingerprint/canonicalize.js +70 -0
  16. data/node_modules/@appland/cli/src/fingerprint/canonicalize/base.js +58 -0
  17. data/node_modules/@appland/cli/src/fingerprint/canonicalize/classDependencies.js +36 -0
  18. data/node_modules/@appland/cli/src/fingerprint/canonicalize/classes.js +14 -0
  19. data/node_modules/@appland/cli/src/fingerprint/canonicalize/eventTree.js +19 -0
  20. data/node_modules/@appland/cli/src/fingerprint/canonicalize/httpClientRequests.js +18 -0
  21. data/node_modules/@appland/cli/src/fingerprint/canonicalize/httpServerRequests.js +18 -0
  22. data/node_modules/@appland/cli/src/fingerprint/canonicalize/info.js +55 -0
  23. data/node_modules/@appland/cli/src/fingerprint/canonicalize/labels.js +10 -0
  24. data/node_modules/@appland/cli/src/fingerprint/canonicalize/packageDependencies.js +36 -0
  25. data/node_modules/@appland/cli/src/fingerprint/canonicalize/packages.js +14 -0
  26. data/node_modules/@appland/cli/src/fingerprint/canonicalize/sqlNormalized.js +19 -0
  27. data/node_modules/@appland/cli/src/fingerprint/canonicalize/sqlTables.js +24 -0
  28. data/node_modules/@appland/cli/src/fingerprint/canonicalize/trace.js +57 -0
  29. data/node_modules/@appland/cli/src/fingerprint/canonicalize/unique.js +8 -0
  30. data/node_modules/@appland/cli/src/fingerprint/canonicalize/update.js +85 -0
  31. data/node_modules/@appland/cli/src/fingerprint/fingerprintDirectoryCommand.js +30 -0
  32. data/node_modules/@appland/cli/src/fingerprint/fingerprintQueue.js +30 -0
  33. data/node_modules/@appland/cli/src/fingerprint/fingerprintWatchCommand.js +64 -0
  34. data/node_modules/@appland/cli/src/fingerprint/fingerprinter.js +186 -0
  35. data/node_modules/@appland/cli/src/fingerprint/index.js +24 -0
  36. data/node_modules/@appland/cli/src/functionStats.js +168 -0
  37. data/node_modules/@appland/cli/src/inspect.js +7 -0
  38. data/node_modules/@appland/cli/src/inspect/fields.js +66 -0
  39. data/node_modules/@appland/cli/src/inspect/filter.js +105 -0
  40. data/node_modules/@appland/cli/src/inspect/home.js +64 -0
  41. data/node_modules/@appland/cli/src/inspect/print.js +231 -0
  42. data/node_modules/@appland/cli/src/inspect/reset.js +10 -0
  43. data/node_modules/@appland/cli/src/inspect/types.d.ts +11 -0
  44. data/node_modules/@appland/cli/src/inspect/undoFilter.js +10 -0
  45. data/node_modules/@appland/cli/src/inventoryCommand.js +59 -0
  46. data/node_modules/@appland/cli/src/search/codeObjectMatcher.js +75 -0
  47. data/node_modules/@appland/cli/src/search/constants.js +5 -0
  48. data/node_modules/@appland/cli/src/search/findCodeObjects.js +293 -0
  49. data/node_modules/@appland/cli/src/search/findEvents.js +184 -0
  50. data/node_modules/@appland/cli/src/search/matchFilter.js +65 -0
  51. data/node_modules/@appland/cli/src/search/matchSpec.js +198 -0
  52. data/node_modules/@appland/cli/src/search/trigram.js +107 -0
  53. data/node_modules/@appland/cli/src/search/types.d.ts +107 -0
  54. data/node_modules/@appland/cli/src/search/utils.js +4 -0
  55. data/node_modules/@appland/cli/src/swagger/README.md +75 -0
  56. data/node_modules/@appland/cli/src/swagger/command.js +42 -0
  57. data/node_modules/@appland/cli/src/swagger/method.js +173 -0
  58. data/node_modules/@appland/cli/src/swagger/model.js +54 -0
  59. data/node_modules/@appland/cli/src/swagger/path.js +38 -0
  60. data/node_modules/@appland/cli/src/swagger/response.js +34 -0
  61. data/node_modules/@appland/cli/src/swagger/schema.js +38 -0
  62. data/node_modules/@appland/cli/src/swagger/securitySchemes.js +60 -0
  63. data/node_modules/@appland/cli/src/swagger/settings.js +9 -0
  64. data/node_modules/@appland/cli/src/swagger/util.js +79 -0
  65. data/node_modules/@appland/cli/src/utils.js +164 -0
  66. data/node_modules/@appland/cli/tests/unit/depends.spec.js +55 -0
  67. data/node_modules/@appland/cli/tests/unit/fingerprint/canonicalize.spec.js +42 -0
  68. data/node_modules/@appland/cli/tests/unit/fingerprint/sql.spec.js +40 -0
  69. data/node_modules/@appland/cli/tests/unit/fixtures/app/controllers/organizations_controller.rb +1 -0
  70. data/node_modules/@appland/cli/tests/unit/fixtures/app/models/configuration.rb +1 -0
  71. data/node_modules/@appland/cli/tests/unit/fixtures/app/models/show.rb +1 -0
  72. data/node_modules/@appland/cli/tests/unit/fixtures/app/models/user.rb +1 -0
  73. data/node_modules/@appland/cli/tests/unit/fixtures/canonicalize/revoke_api_key.info.json +246 -0
  74. data/node_modules/@appland/cli/tests/unit/fixtures/canonicalize/revoke_api_key.trace.json +289 -0
  75. data/node_modules/@appland/cli/tests/unit/fixtures/canonicalize/revoke_api_key.update.json +78 -0
  76. data/node_modules/@appland/cli/tests/unit/fixtures/revoke_api_key.appmap.json +899 -0
  77. data/node_modules/@appland/cli/tests/unit/fixtures/user_page_scenario.appmap.json +1774 -0
  78. data/node_modules/@appland/cli/tests/unit/inspect.spec.js +94 -0
  79. data/node_modules/@appland/models/CHANGELOG.md +83 -0
  80. data/node_modules/@appland/models/README.md +8 -0
  81. data/node_modules/@appland/models/dist/index.cjs +4250 -0
  82. data/node_modules/@appland/models/dist/index.js +4193 -0
  83. data/node_modules/@appland/models/package.json +50 -0
  84. data/node_modules/@rollup/plugin-alias/CHANGELOG.md +92 -0
  85. data/node_modules/@rollup/plugin-alias/LICENSE +21 -0
  86. data/node_modules/@rollup/plugin-alias/README.md +174 -0
  87. data/node_modules/@rollup/plugin-alias/dist/index.es.js +95 -0
  88. data/node_modules/@rollup/plugin-alias/dist/index.js +101 -0
  89. data/node_modules/@rollup/plugin-alias/package.json +78 -0
  90. data/node_modules/@rollup/plugin-alias/types/index.d.ts +36 -0
  91. data/node_modules/ansi-regex/index.d.ts +37 -0
  92. data/node_modules/ansi-regex/index.js +10 -0
  93. data/node_modules/ansi-regex/license +9 -0
  94. data/node_modules/ansi-regex/package.json +55 -0
  95. data/node_modules/ansi-regex/readme.md +78 -0
  96. data/node_modules/ansi-styles/index.d.ts +345 -0
  97. data/node_modules/ansi-styles/index.js +163 -0
  98. data/node_modules/ansi-styles/license +9 -0
  99. data/node_modules/ansi-styles/package.json +56 -0
  100. data/node_modules/ansi-styles/readme.md +152 -0
  101. data/node_modules/anymatch/LICENSE +15 -0
  102. data/node_modules/anymatch/README.md +87 -0
  103. data/node_modules/anymatch/index.d.ts +19 -0
  104. data/node_modules/anymatch/index.js +104 -0
  105. data/node_modules/anymatch/package.json +48 -0
  106. data/node_modules/argparse/CHANGELOG.md +185 -0
  107. data/node_modules/argparse/LICENSE +21 -0
  108. data/node_modules/argparse/README.md +257 -0
  109. data/node_modules/argparse/index.js +3 -0
  110. data/node_modules/argparse/lib/action.js +146 -0
  111. data/node_modules/argparse/lib/action/append.js +53 -0
  112. data/node_modules/argparse/lib/action/append/constant.js +47 -0
  113. data/node_modules/argparse/lib/action/count.js +40 -0
  114. data/node_modules/argparse/lib/action/help.js +47 -0
  115. data/node_modules/argparse/lib/action/store.js +50 -0
  116. data/node_modules/argparse/lib/action/store/constant.js +43 -0
  117. data/node_modules/argparse/lib/action/store/false.js +27 -0
  118. data/node_modules/argparse/lib/action/store/true.js +26 -0
  119. data/node_modules/argparse/lib/action/subparsers.js +149 -0
  120. data/node_modules/argparse/lib/action/version.js +47 -0
  121. data/node_modules/argparse/lib/action_container.js +482 -0
  122. data/node_modules/argparse/lib/argparse.js +14 -0
  123. data/node_modules/argparse/lib/argument/error.js +50 -0
  124. data/node_modules/argparse/lib/argument/exclusive.js +54 -0
  125. data/node_modules/argparse/lib/argument/group.js +75 -0
  126. data/node_modules/argparse/lib/argument_parser.js +1161 -0
  127. data/node_modules/argparse/lib/const.js +21 -0
  128. data/node_modules/argparse/lib/help/added_formatters.js +87 -0
  129. data/node_modules/argparse/lib/help/formatter.js +795 -0
  130. data/node_modules/argparse/lib/namespace.js +76 -0
  131. data/node_modules/argparse/lib/utils.js +57 -0
  132. data/node_modules/argparse/package.json +34 -0
  133. data/node_modules/async/CHANGELOG.md +331 -0
  134. data/node_modules/async/LICENSE +19 -0
  135. data/node_modules/async/README.md +60 -0
  136. data/node_modules/async/all.js +54 -0
  137. data/node_modules/async/allLimit.js +46 -0
  138. data/node_modules/async/allSeries.js +45 -0
  139. data/node_modules/async/any.js +56 -0
  140. data/node_modules/async/anyLimit.js +47 -0
  141. data/node_modules/async/anySeries.js +46 -0
  142. data/node_modules/async/apply.js +55 -0
  143. data/node_modules/async/applyEach.js +57 -0
  144. data/node_modules/async/applyEachSeries.js +37 -0
  145. data/node_modules/async/asyncify.js +118 -0
  146. data/node_modules/async/auto.js +267 -0
  147. data/node_modules/async/autoInject.js +156 -0
  148. data/node_modules/async/bower.json +17 -0
  149. data/node_modules/async/cargo.js +63 -0
  150. data/node_modules/async/cargoQueue.js +71 -0
  151. data/node_modules/async/compose.js +55 -0
  152. data/node_modules/async/concat.js +47 -0
  153. data/node_modules/async/concatLimit.js +60 -0
  154. data/node_modules/async/concatSeries.js +41 -0
  155. data/node_modules/async/constant.js +55 -0
  156. data/node_modules/async/detect.js +61 -0
  157. data/node_modules/async/detectLimit.js +48 -0
  158. data/node_modules/async/detectSeries.js +47 -0
  159. data/node_modules/async/dir.js +43 -0
  160. data/node_modules/async/dist/async.js +4846 -0
  161. data/node_modules/async/dist/async.min.js +1 -0
  162. data/node_modules/async/dist/async.mjs +4734 -0
  163. data/node_modules/async/doDuring.js +68 -0
  164. data/node_modules/async/doUntil.js +46 -0
  165. data/node_modules/async/doWhilst.js +68 -0
  166. data/node_modules/async/during.js +78 -0
  167. data/node_modules/async/each.js +88 -0
  168. data/node_modules/async/eachLimit.js +50 -0
  169. data/node_modules/async/eachOf.js +116 -0
  170. data/node_modules/async/eachOfLimit.js +47 -0
  171. data/node_modules/async/eachOfSeries.js +39 -0
  172. data/node_modules/async/eachSeries.js +44 -0
  173. data/node_modules/async/ensureAsync.js +67 -0
  174. data/node_modules/async/every.js +54 -0
  175. data/node_modules/async/everyLimit.js +46 -0
  176. data/node_modules/async/everySeries.js +45 -0
  177. data/node_modules/async/filter.js +53 -0
  178. data/node_modules/async/filterLimit.js +45 -0
  179. data/node_modules/async/filterSeries.js +43 -0
  180. data/node_modules/async/find.js +61 -0
  181. data/node_modules/async/findLimit.js +48 -0
  182. data/node_modules/async/findSeries.js +47 -0
  183. data/node_modules/async/flatMap.js +47 -0
  184. data/node_modules/async/flatMapLimit.js +60 -0
  185. data/node_modules/async/flatMapSeries.js +41 -0
  186. data/node_modules/async/foldl.js +77 -0
  187. data/node_modules/async/foldr.js +41 -0
  188. data/node_modules/async/forEach.js +88 -0
  189. data/node_modules/async/forEachLimit.js +50 -0
  190. data/node_modules/async/forEachOf.js +116 -0
  191. data/node_modules/async/forEachOfLimit.js +47 -0
  192. data/node_modules/async/forEachOfSeries.js +39 -0
  193. data/node_modules/async/forEachSeries.js +44 -0
  194. data/node_modules/async/forever.js +68 -0
  195. data/node_modules/async/groupBy.js +54 -0
  196. data/node_modules/async/groupByLimit.js +71 -0
  197. data/node_modules/async/groupBySeries.js +36 -0
  198. data/node_modules/async/index.js +588 -0
  199. data/node_modules/async/inject.js +77 -0
  200. data/node_modules/async/internal/DoublyLinkedList.js +92 -0
  201. data/node_modules/async/internal/Heap.js +120 -0
  202. data/node_modules/async/internal/applyEach.js +29 -0
  203. data/node_modules/async/internal/asyncEachOfLimit.js +75 -0
  204. data/node_modules/async/internal/awaitify.js +27 -0
  205. data/node_modules/async/internal/breakLoop.js +10 -0
  206. data/node_modules/async/internal/consoleFunc.js +27 -0
  207. data/node_modules/async/internal/createTester.js +40 -0
  208. data/node_modules/async/internal/eachOfLimit.js +90 -0
  209. data/node_modules/async/internal/filter.js +55 -0
  210. data/node_modules/async/internal/getIterator.js +11 -0
  211. data/node_modules/async/internal/initialParams.js +14 -0
  212. data/node_modules/async/internal/isArrayLike.js +10 -0
  213. data/node_modules/async/internal/iterator.js +54 -0
  214. data/node_modules/async/internal/map.js +30 -0
  215. data/node_modules/async/internal/once.js +17 -0
  216. data/node_modules/async/internal/onlyOnce.js +15 -0
  217. data/node_modules/async/internal/parallel.js +34 -0
  218. data/node_modules/async/internal/promiseCallback.js +23 -0
  219. data/node_modules/async/internal/queue.js +291 -0
  220. data/node_modules/async/internal/range.js +14 -0
  221. data/node_modules/async/internal/reject.js +26 -0
  222. data/node_modules/async/internal/setImmediate.js +30 -0
  223. data/node_modules/async/internal/withoutIndex.js +10 -0
  224. data/node_modules/async/internal/wrapAsync.js +34 -0
  225. data/node_modules/async/log.js +41 -0
  226. data/node_modules/async/map.js +62 -0
  227. data/node_modules/async/mapLimit.js +45 -0
  228. data/node_modules/async/mapSeries.js +44 -0
  229. data/node_modules/async/mapValues.js +62 -0
  230. data/node_modules/async/mapValuesLimit.js +61 -0
  231. data/node_modules/async/mapValuesSeries.js +37 -0
  232. data/node_modules/async/memoize.js +91 -0
  233. data/node_modules/async/nextTick.js +52 -0
  234. data/node_modules/async/package.json +82 -0
  235. data/node_modules/async/parallel.js +91 -0
  236. data/node_modules/async/parallelLimit.js +41 -0
  237. data/node_modules/async/priorityQueue.js +84 -0
  238. data/node_modules/async/queue.js +167 -0
  239. data/node_modules/async/race.js +67 -0
  240. data/node_modules/async/reduce.js +77 -0
  241. data/node_modules/async/reduceRight.js +41 -0
  242. data/node_modules/async/reflect.js +78 -0
  243. data/node_modules/async/reflectAll.js +93 -0
  244. data/node_modules/async/reject.js +53 -0
  245. data/node_modules/async/rejectLimit.js +45 -0
  246. data/node_modules/async/rejectSeries.js +43 -0
  247. data/node_modules/async/retry.js +159 -0
  248. data/node_modules/async/retryable.js +77 -0
  249. data/node_modules/async/select.js +53 -0
  250. data/node_modules/async/selectLimit.js +45 -0
  251. data/node_modules/async/selectSeries.js +43 -0
  252. data/node_modules/async/seq.js +79 -0
  253. data/node_modules/async/series.js +86 -0
  254. data/node_modules/async/setImmediate.js +45 -0
  255. data/node_modules/async/some.js +56 -0
  256. data/node_modules/async/someLimit.js +47 -0
  257. data/node_modules/async/someSeries.js +46 -0
  258. data/node_modules/async/sortBy.js +88 -0
  259. data/node_modules/async/timeout.js +89 -0
  260. data/node_modules/async/times.js +50 -0
  261. data/node_modules/async/timesLimit.js +43 -0
  262. data/node_modules/async/timesSeries.js +32 -0
  263. data/node_modules/async/transform.js +81 -0
  264. data/node_modules/async/tryEach.js +78 -0
  265. data/node_modules/async/unmemoize.js +25 -0
  266. data/node_modules/async/until.js +61 -0
  267. data/node_modules/async/waterfall.js +105 -0
  268. data/node_modules/async/whilst.js +78 -0
  269. data/node_modules/async/wrapSync.js +118 -0
  270. data/node_modules/at-least-node/LICENSE +6 -0
  271. data/node_modules/at-least-node/README.md +25 -0
  272. data/node_modules/at-least-node/index.js +5 -0
  273. data/node_modules/at-least-node/package.json +32 -0
  274. data/node_modules/balanced-match/LICENSE.md +21 -0
  275. data/node_modules/balanced-match/README.md +97 -0
  276. data/node_modules/balanced-match/index.js +62 -0
  277. data/node_modules/balanced-match/package.json +48 -0
  278. data/node_modules/binary-extensions/binary-extensions.json +260 -0
  279. data/node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0
  280. data/node_modules/binary-extensions/index.d.ts +14 -0
  281. data/node_modules/binary-extensions/index.js +1 -0
  282. data/node_modules/binary-extensions/license +9 -0
  283. data/node_modules/binary-extensions/package.json +38 -0
  284. data/node_modules/binary-extensions/readme.md +41 -0
  285. data/node_modules/brace-expansion/LICENSE +21 -0
  286. data/node_modules/brace-expansion/README.md +129 -0
  287. data/node_modules/brace-expansion/index.js +201 -0
  288. data/node_modules/brace-expansion/package.json +47 -0
  289. data/node_modules/braces/CHANGELOG.md +184 -0
  290. data/node_modules/braces/LICENSE +21 -0
  291. data/node_modules/braces/README.md +593 -0
  292. data/node_modules/braces/index.js +170 -0
  293. data/node_modules/braces/lib/compile.js +57 -0
  294. data/node_modules/braces/lib/constants.js +57 -0
  295. data/node_modules/braces/lib/expand.js +113 -0
  296. data/node_modules/braces/lib/parse.js +333 -0
  297. data/node_modules/braces/lib/stringify.js +32 -0
  298. data/node_modules/braces/lib/utils.js +112 -0
  299. data/node_modules/braces/package.json +77 -0
  300. data/node_modules/chokidar/LICENSE +21 -0
  301. data/node_modules/chokidar/README.md +308 -0
  302. data/node_modules/chokidar/index.js +973 -0
  303. data/node_modules/chokidar/lib/constants.js +65 -0
  304. data/node_modules/chokidar/lib/fsevents-handler.js +524 -0
  305. data/node_modules/chokidar/lib/nodefs-handler.js +646 -0
  306. data/node_modules/chokidar/package.json +78 -0
  307. data/node_modules/chokidar/types/index.d.ts +187 -0
  308. data/node_modules/cli-progress/CHANGES.md +169 -0
  309. data/node_modules/cli-progress/LICENSE.md +24 -0
  310. data/node_modules/cli-progress/README.md +446 -0
  311. data/node_modules/cli-progress/cli-progress.js +21 -0
  312. data/node_modules/cli-progress/lib/eta.js +73 -0
  313. data/node_modules/cli-progress/lib/format-bar.js +11 -0
  314. data/node_modules/cli-progress/lib/format-time.js +34 -0
  315. data/node_modules/cli-progress/lib/format-value.js +22 -0
  316. data/node_modules/cli-progress/lib/formatter.js +80 -0
  317. data/node_modules/cli-progress/lib/generic-bar.js +212 -0
  318. data/node_modules/cli-progress/lib/multi-bar.js +201 -0
  319. data/node_modules/cli-progress/lib/options.js +95 -0
  320. data/node_modules/cli-progress/lib/single-bar.js +124 -0
  321. data/node_modules/cli-progress/lib/terminal.js +159 -0
  322. data/node_modules/cli-progress/package.json +46 -0
  323. data/node_modules/cli-progress/presets/index.js +11 -0
  324. data/node_modules/cli-progress/presets/legacy.js +6 -0
  325. data/node_modules/cli-progress/presets/rect.js +5 -0
  326. data/node_modules/cli-progress/presets/shades-classic.js +6 -0
  327. data/node_modules/cli-progress/presets/shades-grey.js +8 -0
  328. data/node_modules/cliui/CHANGELOG.md +121 -0
  329. data/node_modules/cliui/LICENSE.txt +14 -0
  330. data/node_modules/cliui/README.md +141 -0
  331. data/node_modules/cliui/build/index.cjs +302 -0
  332. data/node_modules/cliui/build/lib/index.js +287 -0
  333. data/node_modules/cliui/build/lib/string-utils.js +27 -0
  334. data/node_modules/cliui/index.mjs +13 -0
  335. data/node_modules/cliui/package.json +83 -0
  336. data/node_modules/color-convert/CHANGELOG.md +54 -0
  337. data/node_modules/color-convert/LICENSE +21 -0
  338. data/node_modules/color-convert/README.md +68 -0
  339. data/node_modules/color-convert/conversions.js +839 -0
  340. data/node_modules/color-convert/index.js +81 -0
  341. data/node_modules/color-convert/package.json +48 -0
  342. data/node_modules/color-convert/route.js +97 -0
  343. data/node_modules/color-name/LICENSE +8 -0
  344. data/node_modules/color-name/README.md +11 -0
  345. data/node_modules/color-name/index.js +152 -0
  346. data/node_modules/color-name/package.json +28 -0
  347. data/node_modules/colors/LICENSE +25 -0
  348. data/node_modules/colors/README.md +221 -0
  349. data/node_modules/colors/examples/normal-usage.js +82 -0
  350. data/node_modules/colors/examples/safe-string.js +79 -0
  351. data/node_modules/colors/index.d.ts +136 -0
  352. data/node_modules/colors/lib/colors.js +211 -0
  353. data/node_modules/colors/lib/custom/trap.js +46 -0
  354. data/node_modules/colors/lib/custom/zalgo.js +110 -0
  355. data/node_modules/colors/lib/extendStringPrototype.js +110 -0
  356. data/node_modules/colors/lib/index.js +13 -0
  357. data/node_modules/colors/lib/maps/america.js +10 -0
  358. data/node_modules/colors/lib/maps/rainbow.js +12 -0
  359. data/node_modules/colors/lib/maps/random.js +11 -0
  360. data/node_modules/colors/lib/maps/zebra.js +5 -0
  361. data/node_modules/colors/lib/styles.js +95 -0
  362. data/node_modules/colors/lib/system/has-flag.js +35 -0
  363. data/node_modules/colors/lib/system/supports-colors.js +151 -0
  364. data/node_modules/colors/package.json +45 -0
  365. data/node_modules/colors/safe.d.ts +48 -0
  366. data/node_modules/colors/safe.js +10 -0
  367. data/node_modules/colors/themes/generic-logging.js +12 -0
  368. data/node_modules/concat-map/LICENSE +18 -0
  369. data/node_modules/concat-map/README.markdown +62 -0
  370. data/node_modules/concat-map/example/map.js +6 -0
  371. data/node_modules/concat-map/index.js +13 -0
  372. data/node_modules/concat-map/package.json +43 -0
  373. data/node_modules/concat-map/test/map.js +39 -0
  374. data/node_modules/console-table-printer/CHANGELOG.md +96 -0
  375. data/node_modules/console-table-printer/LICENSE +21 -0
  376. data/node_modules/console-table-printer/README.md +180 -0
  377. data/node_modules/console-table-printer/dist/index.d.ts +4 -0
  378. data/node_modules/console-table-printer/dist/index.js +10 -0
  379. data/node_modules/console-table-printer/dist/src/console-table-printer.d.ts +14 -0
  380. data/node_modules/console-table-printer/dist/src/console-table-printer.js +32 -0
  381. data/node_modules/console-table-printer/dist/src/internalTable/input-converter.d.ts +6 -0
  382. data/node_modules/console-table-printer/dist/src/internalTable/input-converter.js +15 -0
  383. data/node_modules/console-table-printer/dist/src/internalTable/internal-table-printer.d.ts +4 -0
  384. data/node_modules/console-table-printer/dist/src/internalTable/internal-table-printer.js +115 -0
  385. data/node_modules/console-table-printer/dist/src/internalTable/internal-table.d.ts +25 -0
  386. data/node_modules/console-table-printer/dist/src/internalTable/internal-table.js +80 -0
  387. data/node_modules/console-table-printer/dist/src/internalTable/table-pre-processors.d.ts +3 -0
  388. data/node_modules/console-table-printer/dist/src/internalTable/table-pre-processors.js +43 -0
  389. data/node_modules/console-table-printer/dist/src/models/common.d.ts +10 -0
  390. data/node_modules/console-table-printer/dist/src/models/common.js +2 -0
  391. data/node_modules/console-table-printer/dist/src/models/external-table.d.ts +26 -0
  392. data/node_modules/console-table-printer/dist/src/models/external-table.js +2 -0
  393. data/node_modules/console-table-printer/dist/src/models/internal-table.d.ts +21 -0
  394. data/node_modules/console-table-printer/dist/src/models/internal-table.js +2 -0
  395. data/node_modules/console-table-printer/dist/src/utils/colored-console-line.d.ts +8 -0
  396. data/node_modules/console-table-printer/dist/src/utils/colored-console-line.js +29 -0
  397. data/node_modules/console-table-printer/dist/src/utils/console-utils.d.ts +2 -0
  398. data/node_modules/console-table-printer/dist/src/utils/console-utils.js +8 -0
  399. data/node_modules/console-table-printer/dist/src/utils/string-utils.d.ts +4 -0
  400. data/node_modules/console-table-printer/dist/src/utils/string-utils.js +54 -0
  401. data/node_modules/console-table-printer/dist/src/utils/table-constants.d.ts +10 -0
  402. data/node_modules/console-table-printer/dist/src/utils/table-constants.js +49 -0
  403. data/node_modules/console-table-printer/dist/src/utils/table-helpers.d.ts +26 -0
  404. data/node_modules/console-table-printer/dist/src/utils/table-helpers.js +91 -0
  405. data/node_modules/console-table-printer/package.json +51 -0
  406. data/node_modules/cross-env/CHANGELOG.md +5 -0
  407. data/node_modules/cross-env/LICENSE +20 -0
  408. data/node_modules/cross-env/README.md +291 -0
  409. data/node_modules/cross-env/package.json +54 -0
  410. data/node_modules/cross-env/src/bin/cross-env-shell.js +5 -0
  411. data/node_modules/cross-env/src/bin/cross-env.js +5 -0
  412. data/node_modules/cross-env/src/command.js +32 -0
  413. data/node_modules/cross-env/src/index.js +95 -0
  414. data/node_modules/cross-env/src/is-windows.js +2 -0
  415. data/node_modules/cross-env/src/variable.js +69 -0
  416. data/node_modules/cross-spawn/CHANGELOG.md +130 -0
  417. data/node_modules/cross-spawn/LICENSE +21 -0
  418. data/node_modules/cross-spawn/README.md +96 -0
  419. data/node_modules/cross-spawn/index.js +39 -0
  420. data/node_modules/cross-spawn/lib/enoent.js +59 -0
  421. data/node_modules/cross-spawn/lib/parse.js +91 -0
  422. data/node_modules/cross-spawn/lib/util/escape.js +45 -0
  423. data/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  424. data/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  425. data/node_modules/cross-spawn/package.json +73 -0
  426. data/node_modules/crypto-js/CONTRIBUTING.md +28 -0
  427. data/node_modules/crypto-js/LICENSE +24 -0
  428. data/node_modules/crypto-js/README.md +249 -0
  429. data/node_modules/crypto-js/aes.js +234 -0
  430. data/node_modules/crypto-js/bower.json +35 -0
  431. data/node_modules/crypto-js/cipher-core.js +890 -0
  432. data/node_modules/crypto-js/core.js +797 -0
  433. data/node_modules/crypto-js/crypto-js.js +6059 -0
  434. data/node_modules/crypto-js/docs/QuickStartGuide.wiki +470 -0
  435. data/node_modules/crypto-js/enc-base64.js +136 -0
  436. data/node_modules/crypto-js/enc-hex.js +18 -0
  437. data/node_modules/crypto-js/enc-latin1.js +18 -0
  438. data/node_modules/crypto-js/enc-utf16.js +149 -0
  439. data/node_modules/crypto-js/enc-utf8.js +18 -0
  440. data/node_modules/crypto-js/evpkdf.js +134 -0
  441. data/node_modules/crypto-js/format-hex.js +66 -0
  442. data/node_modules/crypto-js/format-openssl.js +18 -0
  443. data/node_modules/crypto-js/hmac-md5.js +18 -0
  444. data/node_modules/crypto-js/hmac-ripemd160.js +18 -0
  445. data/node_modules/crypto-js/hmac-sha1.js +18 -0
  446. data/node_modules/crypto-js/hmac-sha224.js +18 -0
  447. data/node_modules/crypto-js/hmac-sha256.js +18 -0
  448. data/node_modules/crypto-js/hmac-sha3.js +18 -0
  449. data/node_modules/crypto-js/hmac-sha384.js +18 -0
  450. data/node_modules/crypto-js/hmac-sha512.js +18 -0
  451. data/node_modules/crypto-js/hmac.js +143 -0
  452. data/node_modules/crypto-js/index.js +18 -0
  453. data/node_modules/crypto-js/lib-typedarrays.js +76 -0
  454. data/node_modules/crypto-js/md5.js +268 -0
  455. data/node_modules/crypto-js/mode-cfb.js +80 -0
  456. data/node_modules/crypto-js/mode-ctr-gladman.js +116 -0
  457. data/node_modules/crypto-js/mode-ctr.js +58 -0
  458. data/node_modules/crypto-js/mode-ecb.js +40 -0
  459. data/node_modules/crypto-js/mode-ofb.js +54 -0
  460. data/node_modules/crypto-js/package.json +38 -0
  461. data/node_modules/crypto-js/pad-ansix923.js +49 -0
  462. data/node_modules/crypto-js/pad-iso10126.js +44 -0
  463. data/node_modules/crypto-js/pad-iso97971.js +40 -0
  464. data/node_modules/crypto-js/pad-nopadding.js +30 -0
  465. data/node_modules/crypto-js/pad-pkcs7.js +18 -0
  466. data/node_modules/crypto-js/pad-zeropadding.js +47 -0
  467. data/node_modules/crypto-js/pbkdf2.js +145 -0
  468. data/node_modules/crypto-js/rabbit-legacy.js +190 -0
  469. data/node_modules/crypto-js/rabbit.js +192 -0
  470. data/node_modules/crypto-js/rc4.js +139 -0
  471. data/node_modules/crypto-js/ripemd160.js +267 -0
  472. data/node_modules/crypto-js/sha1.js +150 -0
  473. data/node_modules/crypto-js/sha224.js +80 -0
  474. data/node_modules/crypto-js/sha256.js +199 -0
  475. data/node_modules/crypto-js/sha3.js +326 -0
  476. data/node_modules/crypto-js/sha384.js +83 -0
  477. data/node_modules/crypto-js/sha512.js +326 -0
  478. data/node_modules/crypto-js/tripledes.js +779 -0
  479. data/node_modules/crypto-js/x64-core.js +304 -0
  480. data/node_modules/diff/CONTRIBUTING.md +39 -0
  481. data/node_modules/diff/LICENSE +31 -0
  482. data/node_modules/diff/README.md +208 -0
  483. data/node_modules/diff/dist/diff.js +1582 -0
  484. data/node_modules/diff/lib/convert/dmp.js +32 -0
  485. data/node_modules/diff/lib/convert/xml.js +42 -0
  486. data/node_modules/diff/lib/diff/array.js +45 -0
  487. data/node_modules/diff/lib/diff/base.js +304 -0
  488. data/node_modules/diff/lib/diff/character.js +37 -0
  489. data/node_modules/diff/lib/diff/css.js +41 -0
  490. data/node_modules/diff/lib/diff/json.js +163 -0
  491. data/node_modules/diff/lib/diff/line.js +89 -0
  492. data/node_modules/diff/lib/diff/sentence.js +41 -0
  493. data/node_modules/diff/lib/diff/word.js +108 -0
  494. data/node_modules/diff/lib/index.es6.js +1553 -0
  495. data/node_modules/diff/lib/index.js +216 -0
  496. data/node_modules/diff/lib/index.mjs +1553 -0
  497. data/node_modules/diff/lib/patch/apply.js +238 -0
  498. data/node_modules/diff/lib/patch/create.js +267 -0
  499. data/node_modules/diff/lib/patch/merge.js +613 -0
  500. data/node_modules/diff/lib/patch/parse.js +167 -0
  501. data/node_modules/diff/lib/util/array.js +32 -0
  502. data/node_modules/diff/lib/util/distance-iterator.js +57 -0
  503. data/node_modules/diff/lib/util/params.js +24 -0
  504. data/node_modules/diff/package.json +87 -0
  505. data/node_modules/diff/release-notes.md +303 -0
  506. data/node_modules/diff/runtime.js +3 -0
  507. data/node_modules/emoji-regex/LICENSE-MIT.txt +20 -0
  508. data/node_modules/emoji-regex/README.md +73 -0
  509. data/node_modules/emoji-regex/es2015/index.js +6 -0
  510. data/node_modules/emoji-regex/es2015/text.js +6 -0
  511. data/node_modules/emoji-regex/index.d.ts +23 -0
  512. data/node_modules/emoji-regex/index.js +6 -0
  513. data/node_modules/emoji-regex/package.json +50 -0
  514. data/node_modules/emoji-regex/text.js +6 -0
  515. data/node_modules/escalade/dist/index.js +22 -0
  516. data/node_modules/escalade/dist/index.mjs +22 -0
  517. data/node_modules/escalade/index.d.ts +3 -0
  518. data/node_modules/escalade/license +9 -0
  519. data/node_modules/escalade/package.json +61 -0
  520. data/node_modules/escalade/readme.md +211 -0
  521. data/node_modules/escalade/sync/index.d.ts +2 -0
  522. data/node_modules/escalade/sync/index.js +18 -0
  523. data/node_modules/escalade/sync/index.mjs +18 -0
  524. data/node_modules/esprima/ChangeLog +235 -0
  525. data/node_modules/esprima/LICENSE.BSD +21 -0
  526. data/node_modules/esprima/README.md +46 -0
  527. data/node_modules/esprima/bin/esparse.js +139 -0
  528. data/node_modules/esprima/bin/esvalidate.js +236 -0
  529. data/node_modules/esprima/dist/esprima.js +6709 -0
  530. data/node_modules/esprima/package.json +112 -0
  531. data/node_modules/fill-range/LICENSE +21 -0
  532. data/node_modules/fill-range/README.md +237 -0
  533. data/node_modules/fill-range/index.js +249 -0
  534. data/node_modules/fill-range/package.json +69 -0
  535. data/node_modules/fs-extra/CHANGELOG.md +902 -0
  536. data/node_modules/fs-extra/LICENSE +15 -0
  537. data/node_modules/fs-extra/README.md +264 -0
  538. data/node_modules/fs-extra/lib/copy-sync/copy-sync.js +166 -0
  539. data/node_modules/fs-extra/lib/copy-sync/index.js +5 -0
  540. data/node_modules/fs-extra/lib/copy/copy.js +232 -0
  541. data/node_modules/fs-extra/lib/copy/index.js +6 -0
  542. data/node_modules/fs-extra/lib/empty/index.js +48 -0
  543. data/node_modules/fs-extra/lib/ensure/file.js +69 -0
  544. data/node_modules/fs-extra/lib/ensure/index.js +23 -0
  545. data/node_modules/fs-extra/lib/ensure/link.js +61 -0
  546. data/node_modules/fs-extra/lib/ensure/symlink-paths.js +99 -0
  547. data/node_modules/fs-extra/lib/ensure/symlink-type.js +31 -0
  548. data/node_modules/fs-extra/lib/ensure/symlink.js +63 -0
  549. data/node_modules/fs-extra/lib/fs/index.js +130 -0
  550. data/node_modules/fs-extra/lib/index.js +27 -0
  551. data/node_modules/fs-extra/lib/json/index.js +16 -0
  552. data/node_modules/fs-extra/lib/json/jsonfile.js +11 -0
  553. data/node_modules/fs-extra/lib/json/output-json-sync.js +12 -0
  554. data/node_modules/fs-extra/lib/json/output-json.js +12 -0
  555. data/node_modules/fs-extra/lib/mkdirs/index.js +14 -0
  556. data/node_modules/fs-extra/lib/mkdirs/make-dir.js +141 -0
  557. data/node_modules/fs-extra/lib/move-sync/index.js +5 -0
  558. data/node_modules/fs-extra/lib/move-sync/move-sync.js +47 -0
  559. data/node_modules/fs-extra/lib/move/index.js +6 -0
  560. data/node_modules/fs-extra/lib/move/move.js +65 -0
  561. data/node_modules/fs-extra/lib/output/index.js +40 -0
  562. data/node_modules/fs-extra/lib/path-exists/index.js +12 -0
  563. data/node_modules/fs-extra/lib/remove/index.js +9 -0
  564. data/node_modules/fs-extra/lib/remove/rimraf.js +302 -0
  565. data/node_modules/fs-extra/lib/util/stat.js +139 -0
  566. data/node_modules/fs-extra/lib/util/utimes.js +26 -0
  567. data/node_modules/fs-extra/package.json +70 -0
  568. data/node_modules/fs.realpath/LICENSE +43 -0
  569. data/node_modules/fs.realpath/README.md +33 -0
  570. data/node_modules/fs.realpath/index.js +66 -0
  571. data/node_modules/fs.realpath/old.js +303 -0
  572. data/node_modules/fs.realpath/package.json +26 -0
  573. data/node_modules/fsevents/LICENSE +22 -0
  574. data/node_modules/fsevents/README.md +83 -0
  575. data/node_modules/fsevents/fsevents.d.ts +46 -0
  576. data/node_modules/fsevents/fsevents.js +82 -0
  577. data/node_modules/fsevents/fsevents.node +0 -0
  578. data/node_modules/fsevents/package.json +62 -0
  579. data/node_modules/get-caller-file/LICENSE.md +6 -0
  580. data/node_modules/get-caller-file/README.md +41 -0
  581. data/node_modules/get-caller-file/index.d.ts +2 -0
  582. data/node_modules/get-caller-file/index.js +22 -0
  583. data/node_modules/get-caller-file/index.js.map +1 -0
  584. data/node_modules/get-caller-file/package.json +42 -0
  585. data/node_modules/glob-parent/CHANGELOG.md +110 -0
  586. data/node_modules/glob-parent/LICENSE +15 -0
  587. data/node_modules/glob-parent/README.md +137 -0
  588. data/node_modules/glob-parent/index.js +42 -0
  589. data/node_modules/glob-parent/package.json +48 -0
  590. data/node_modules/glob/LICENSE +21 -0
  591. data/node_modules/glob/README.md +375 -0
  592. data/node_modules/glob/changelog.md +67 -0
  593. data/node_modules/glob/common.js +234 -0
  594. data/node_modules/glob/glob.js +788 -0
  595. data/node_modules/glob/package.json +51 -0
  596. data/node_modules/glob/sync.js +484 -0
  597. data/node_modules/graceful-fs/LICENSE +15 -0
  598. data/node_modules/graceful-fs/README.md +133 -0
  599. data/node_modules/graceful-fs/clone.js +23 -0
  600. data/node_modules/graceful-fs/graceful-fs.js +373 -0
  601. data/node_modules/graceful-fs/legacy-streams.js +118 -0
  602. data/node_modules/graceful-fs/package.json +50 -0
  603. data/node_modules/graceful-fs/polyfills.js +346 -0
  604. data/node_modules/inflight/LICENSE +15 -0
  605. data/node_modules/inflight/README.md +37 -0
  606. data/node_modules/inflight/inflight.js +54 -0
  607. data/node_modules/inflight/package.json +29 -0
  608. data/node_modules/inherits/LICENSE +16 -0
  609. data/node_modules/inherits/README.md +42 -0
  610. data/node_modules/inherits/inherits.js +9 -0
  611. data/node_modules/inherits/inherits_browser.js +27 -0
  612. data/node_modules/inherits/package.json +29 -0
  613. data/node_modules/is-binary-path/index.d.ts +17 -0
  614. data/node_modules/is-binary-path/index.js +7 -0
  615. data/node_modules/is-binary-path/license +9 -0
  616. data/node_modules/is-binary-path/package.json +40 -0
  617. data/node_modules/is-binary-path/readme.md +34 -0
  618. data/node_modules/is-extglob/LICENSE +21 -0
  619. data/node_modules/is-extglob/README.md +107 -0
  620. data/node_modules/is-extglob/index.js +20 -0
  621. data/node_modules/is-extglob/package.json +69 -0
  622. data/node_modules/is-fullwidth-code-point/index.d.ts +17 -0
  623. data/node_modules/is-fullwidth-code-point/index.js +50 -0
  624. data/node_modules/is-fullwidth-code-point/license +9 -0
  625. data/node_modules/is-fullwidth-code-point/package.json +42 -0
  626. data/node_modules/is-fullwidth-code-point/readme.md +39 -0
  627. data/node_modules/is-glob/LICENSE +21 -0
  628. data/node_modules/is-glob/README.md +206 -0
  629. data/node_modules/is-glob/index.js +48 -0
  630. data/node_modules/is-glob/package.json +81 -0
  631. data/node_modules/is-number/LICENSE +21 -0
  632. data/node_modules/is-number/README.md +187 -0
  633. data/node_modules/is-number/index.js +18 -0
  634. data/node_modules/is-number/package.json +82 -0
  635. data/node_modules/isexe/LICENSE +15 -0
  636. data/node_modules/isexe/README.md +51 -0
  637. data/node_modules/isexe/index.js +57 -0
  638. data/node_modules/isexe/mode.js +41 -0
  639. data/node_modules/isexe/package.json +31 -0
  640. data/node_modules/isexe/test/basic.js +221 -0
  641. data/node_modules/isexe/windows.js +42 -0
  642. data/node_modules/js-yaml/CHANGELOG.md +557 -0
  643. data/node_modules/js-yaml/LICENSE +21 -0
  644. data/node_modules/js-yaml/README.md +299 -0
  645. data/node_modules/js-yaml/bin/js-yaml.js +132 -0
  646. data/node_modules/js-yaml/dist/js-yaml.js +3989 -0
  647. data/node_modules/js-yaml/dist/js-yaml.min.js +1 -0
  648. data/node_modules/js-yaml/index.js +7 -0
  649. data/node_modules/js-yaml/lib/js-yaml.js +39 -0
  650. data/node_modules/js-yaml/lib/js-yaml/common.js +59 -0
  651. data/node_modules/js-yaml/lib/js-yaml/dumper.js +850 -0
  652. data/node_modules/js-yaml/lib/js-yaml/exception.js +43 -0
  653. data/node_modules/js-yaml/lib/js-yaml/loader.js +1644 -0
  654. data/node_modules/js-yaml/lib/js-yaml/mark.js +76 -0
  655. data/node_modules/js-yaml/lib/js-yaml/schema.js +108 -0
  656. data/node_modules/js-yaml/lib/js-yaml/schema/core.js +18 -0
  657. data/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +25 -0
  658. data/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +28 -0
  659. data/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +17 -0
  660. data/node_modules/js-yaml/lib/js-yaml/schema/json.js +25 -0
  661. data/node_modules/js-yaml/lib/js-yaml/type.js +61 -0
  662. data/node_modules/js-yaml/lib/js-yaml/type/binary.js +138 -0
  663. data/node_modules/js-yaml/lib/js-yaml/type/bool.js +35 -0
  664. data/node_modules/js-yaml/lib/js-yaml/type/float.js +116 -0
  665. data/node_modules/js-yaml/lib/js-yaml/type/int.js +173 -0
  666. data/node_modules/js-yaml/lib/js-yaml/type/js/function.js +93 -0
  667. data/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +60 -0
  668. data/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
  669. data/node_modules/js-yaml/lib/js-yaml/type/map.js +8 -0
  670. data/node_modules/js-yaml/lib/js-yaml/type/merge.js +12 -0
  671. data/node_modules/js-yaml/lib/js-yaml/type/null.js +34 -0
  672. data/node_modules/js-yaml/lib/js-yaml/type/omap.js +44 -0
  673. data/node_modules/js-yaml/lib/js-yaml/type/pairs.js +53 -0
  674. data/node_modules/js-yaml/lib/js-yaml/type/seq.js +8 -0
  675. data/node_modules/js-yaml/lib/js-yaml/type/set.js +29 -0
  676. data/node_modules/js-yaml/lib/js-yaml/type/str.js +8 -0
  677. data/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +88 -0
  678. data/node_modules/js-yaml/package.json +49 -0
  679. data/node_modules/jsonfile/CHANGELOG.md +171 -0
  680. data/node_modules/jsonfile/LICENSE +15 -0
  681. data/node_modules/jsonfile/README.md +230 -0
  682. data/node_modules/jsonfile/index.js +88 -0
  683. data/node_modules/jsonfile/package.json +40 -0
  684. data/node_modules/jsonfile/utils.js +14 -0
  685. data/node_modules/lru-cache/LICENSE +15 -0
  686. data/node_modules/lru-cache/README.md +166 -0
  687. data/node_modules/lru-cache/index.js +334 -0
  688. data/node_modules/lru-cache/package.json +34 -0
  689. data/node_modules/minimatch/LICENSE +15 -0
  690. data/node_modules/minimatch/README.md +209 -0
  691. data/node_modules/minimatch/minimatch.js +923 -0
  692. data/node_modules/minimatch/package.json +30 -0
  693. data/node_modules/normalize-path/LICENSE +21 -0
  694. data/node_modules/normalize-path/README.md +127 -0
  695. data/node_modules/normalize-path/index.js +35 -0
  696. data/node_modules/normalize-path/package.json +77 -0
  697. data/node_modules/once/LICENSE +15 -0
  698. data/node_modules/once/README.md +79 -0
  699. data/node_modules/once/once.js +42 -0
  700. data/node_modules/once/package.json +33 -0
  701. data/node_modules/path-is-absolute/index.js +20 -0
  702. data/node_modules/path-is-absolute/license +21 -0
  703. data/node_modules/path-is-absolute/package.json +43 -0
  704. data/node_modules/path-is-absolute/readme.md +59 -0
  705. data/node_modules/path-key/index.d.ts +40 -0
  706. data/node_modules/path-key/index.js +16 -0
  707. data/node_modules/path-key/license +9 -0
  708. data/node_modules/path-key/package.json +39 -0
  709. data/node_modules/path-key/readme.md +61 -0
  710. data/node_modules/picomatch/CHANGELOG.md +126 -0
  711. data/node_modules/picomatch/LICENSE +21 -0
  712. data/node_modules/picomatch/README.md +707 -0
  713. data/node_modules/picomatch/index.js +3 -0
  714. data/node_modules/picomatch/lib/constants.js +179 -0
  715. data/node_modules/picomatch/lib/parse.js +1084 -0
  716. data/node_modules/picomatch/lib/picomatch.js +342 -0
  717. data/node_modules/picomatch/lib/scan.js +391 -0
  718. data/node_modules/picomatch/lib/utils.js +64 -0
  719. data/node_modules/picomatch/package.json +81 -0
  720. data/node_modules/readdirp/LICENSE +21 -0
  721. data/node_modules/readdirp/README.md +122 -0
  722. data/node_modules/readdirp/index.d.ts +43 -0
  723. data/node_modules/readdirp/index.js +287 -0
  724. data/node_modules/readdirp/package.json +122 -0
  725. data/node_modules/require-directory/LICENSE +22 -0
  726. data/node_modules/require-directory/README.markdown +184 -0
  727. data/node_modules/require-directory/index.js +86 -0
  728. data/node_modules/require-directory/package.json +40 -0
  729. data/node_modules/semver/CHANGELOG.md +111 -0
  730. data/node_modules/semver/LICENSE +15 -0
  731. data/node_modules/semver/README.md +566 -0
  732. data/node_modules/semver/bin/semver.js +173 -0
  733. data/node_modules/semver/classes/comparator.js +135 -0
  734. data/node_modules/semver/classes/index.js +5 -0
  735. data/node_modules/semver/classes/range.js +510 -0
  736. data/node_modules/semver/classes/semver.js +287 -0
  737. data/node_modules/semver/functions/clean.js +6 -0
  738. data/node_modules/semver/functions/cmp.js +48 -0
  739. data/node_modules/semver/functions/coerce.js +51 -0
  740. data/node_modules/semver/functions/compare-build.js +7 -0
  741. data/node_modules/semver/functions/compare-loose.js +3 -0
  742. data/node_modules/semver/functions/compare.js +5 -0
  743. data/node_modules/semver/functions/diff.js +23 -0
  744. data/node_modules/semver/functions/eq.js +3 -0
  745. data/node_modules/semver/functions/gt.js +3 -0
  746. data/node_modules/semver/functions/gte.js +3 -0
  747. data/node_modules/semver/functions/inc.js +15 -0
  748. data/node_modules/semver/functions/lt.js +3 -0
  749. data/node_modules/semver/functions/lte.js +3 -0
  750. data/node_modules/semver/functions/major.js +3 -0
  751. data/node_modules/semver/functions/minor.js +3 -0
  752. data/node_modules/semver/functions/neq.js +3 -0
  753. data/node_modules/semver/functions/parse.js +33 -0
  754. data/node_modules/semver/functions/patch.js +3 -0
  755. data/node_modules/semver/functions/prerelease.js +6 -0
  756. data/node_modules/semver/functions/rcompare.js +3 -0
  757. data/node_modules/semver/functions/rsort.js +3 -0
  758. data/node_modules/semver/functions/satisfies.js +10 -0
  759. data/node_modules/semver/functions/sort.js +3 -0
  760. data/node_modules/semver/functions/valid.js +6 -0
  761. data/node_modules/semver/index.js +48 -0
  762. data/node_modules/semver/internal/constants.js +17 -0
  763. data/node_modules/semver/internal/debug.js +9 -0
  764. data/node_modules/semver/internal/identifiers.js +23 -0
  765. data/node_modules/semver/internal/parse-options.js +11 -0
  766. data/node_modules/semver/internal/re.js +182 -0
  767. data/node_modules/semver/package.json +41 -0
  768. data/node_modules/semver/preload.js +2 -0
  769. data/node_modules/semver/range.bnf +16 -0
  770. data/node_modules/semver/ranges/gtr.js +4 -0
  771. data/node_modules/semver/ranges/intersects.js +7 -0
  772. data/node_modules/semver/ranges/ltr.js +4 -0
  773. data/node_modules/semver/ranges/max-satisfying.js +25 -0
  774. data/node_modules/semver/ranges/min-satisfying.js +24 -0
  775. data/node_modules/semver/ranges/min-version.js +60 -0
  776. data/node_modules/semver/ranges/outside.js +80 -0
  777. data/node_modules/semver/ranges/simplify.js +44 -0
  778. data/node_modules/semver/ranges/subset.js +222 -0
  779. data/node_modules/semver/ranges/to-comparators.js +8 -0
  780. data/node_modules/semver/ranges/valid.js +11 -0
  781. data/node_modules/shebang-command/index.js +19 -0
  782. data/node_modules/shebang-command/license +9 -0
  783. data/node_modules/shebang-command/package.json +34 -0
  784. data/node_modules/shebang-command/readme.md +34 -0
  785. data/node_modules/shebang-regex/index.d.ts +22 -0
  786. data/node_modules/shebang-regex/index.js +2 -0
  787. data/node_modules/shebang-regex/license +9 -0
  788. data/node_modules/shebang-regex/package.json +35 -0
  789. data/node_modules/shebang-regex/readme.md +33 -0
  790. data/node_modules/simple-wcswidth/CHANGELOG.md +13 -0
  791. data/node_modules/simple-wcswidth/LICENSE +21 -0
  792. data/node_modules/simple-wcswidth/README.md +100 -0
  793. data/node_modules/simple-wcswidth/dist/index.d.ts +3 -0
  794. data/node_modules/simple-wcswidth/dist/index.js +10 -0
  795. data/node_modules/simple-wcswidth/dist/src/binary-search.d.ts +3 -0
  796. data/node_modules/simple-wcswidth/dist/src/binary-search.js +24 -0
  797. data/node_modules/simple-wcswidth/dist/src/models.d.ts +4 -0
  798. data/node_modules/simple-wcswidth/dist/src/models.js +2 -0
  799. data/node_modules/simple-wcswidth/dist/src/non-spacing-chars.d.ts +3 -0
  800. data/node_modules/simple-wcswidth/dist/src/non-spacing-chars.js +149 -0
  801. data/node_modules/simple-wcswidth/dist/src/wcswidth.d.ts +2 -0
  802. data/node_modules/simple-wcswidth/dist/src/wcswidth.js +20 -0
  803. data/node_modules/simple-wcswidth/dist/src/wcwidth.d.ts +2 -0
  804. data/node_modules/simple-wcswidth/dist/src/wcwidth.js +67 -0
  805. data/node_modules/simple-wcswidth/package.json +44 -0
  806. data/node_modules/slash/index.d.ts +25 -0
  807. data/node_modules/slash/index.js +11 -0
  808. data/node_modules/slash/license +9 -0
  809. data/node_modules/slash/package.json +35 -0
  810. data/node_modules/slash/readme.md +44 -0
  811. data/node_modules/sprintf-js/LICENSE +24 -0
  812. data/node_modules/sprintf-js/README.md +88 -0
  813. data/node_modules/sprintf-js/bower.json +14 -0
  814. data/node_modules/sprintf-js/demo/angular.html +20 -0
  815. data/node_modules/sprintf-js/dist/angular-sprintf.min.js +4 -0
  816. data/node_modules/sprintf-js/dist/angular-sprintf.min.js.map +1 -0
  817. data/node_modules/sprintf-js/dist/angular-sprintf.min.map +1 -0
  818. data/node_modules/sprintf-js/dist/sprintf.min.js +4 -0
  819. data/node_modules/sprintf-js/dist/sprintf.min.js.map +1 -0
  820. data/node_modules/sprintf-js/dist/sprintf.min.map +1 -0
  821. data/node_modules/sprintf-js/gruntfile.js +36 -0
  822. data/node_modules/sprintf-js/package.json +22 -0
  823. data/node_modules/sprintf-js/src/angular-sprintf.js +18 -0
  824. data/node_modules/sprintf-js/src/sprintf.js +208 -0
  825. data/node_modules/sprintf-js/test/test.js +82 -0
  826. data/node_modules/sqlite-parser/CHANGELOG.md +1263 -0
  827. data/node_modules/sqlite-parser/LICENSE +22 -0
  828. data/node_modules/sqlite-parser/README.md +187 -0
  829. data/node_modules/sqlite-parser/bin/sqlite-parser +7 -0
  830. data/node_modules/sqlite-parser/dist/sqlite-parser.js +19 -0
  831. data/node_modules/sqlite-parser/lib/index.js +6 -0
  832. data/node_modules/sqlite-parser/lib/parser.js +6 -0
  833. data/node_modules/sqlite-parser/lib/streaming-shim.js +6 -0
  834. data/node_modules/sqlite-parser/lib/streaming.js +6 -0
  835. data/node_modules/sqlite-parser/lib/tracer.js +6 -0
  836. data/node_modules/sqlite-parser/package.json +75 -0
  837. data/node_modules/string-width/index.d.ts +29 -0
  838. data/node_modules/string-width/index.js +47 -0
  839. data/node_modules/string-width/license +9 -0
  840. data/node_modules/string-width/package.json +56 -0
  841. data/node_modules/string-width/readme.md +50 -0
  842. data/node_modules/strip-ansi/index.d.ts +17 -0
  843. data/node_modules/strip-ansi/index.js +4 -0
  844. data/node_modules/strip-ansi/license +9 -0
  845. data/node_modules/strip-ansi/package.json +54 -0
  846. data/node_modules/strip-ansi/readme.md +46 -0
  847. data/node_modules/to-regex-range/LICENSE +21 -0
  848. data/node_modules/to-regex-range/README.md +305 -0
  849. data/node_modules/to-regex-range/index.js +288 -0
  850. data/node_modules/to-regex-range/package.json +88 -0
  851. data/node_modules/universalify/LICENSE +20 -0
  852. data/node_modules/universalify/README.md +76 -0
  853. data/node_modules/universalify/index.js +24 -0
  854. data/node_modules/universalify/package.json +34 -0
  855. data/node_modules/which/CHANGELOG.md +166 -0
  856. data/node_modules/which/LICENSE +15 -0
  857. data/node_modules/which/README.md +54 -0
  858. data/node_modules/which/bin/node-which +52 -0
  859. data/node_modules/which/package.json +43 -0
  860. data/node_modules/which/which.js +125 -0
  861. data/node_modules/wrap-ansi/index.js +216 -0
  862. data/node_modules/wrap-ansi/license +9 -0
  863. data/node_modules/wrap-ansi/package.json +62 -0
  864. data/node_modules/wrap-ansi/readme.md +91 -0
  865. data/node_modules/wrappy/LICENSE +15 -0
  866. data/node_modules/wrappy/README.md +36 -0
  867. data/node_modules/wrappy/package.json +29 -0
  868. data/node_modules/wrappy/wrappy.js +33 -0
  869. data/node_modules/y18n/CHANGELOG.md +100 -0
  870. data/node_modules/y18n/LICENSE +13 -0
  871. data/node_modules/y18n/README.md +127 -0
  872. data/node_modules/y18n/build/index.cjs +203 -0
  873. data/node_modules/y18n/build/lib/cjs.js +6 -0
  874. data/node_modules/y18n/build/lib/index.js +174 -0
  875. data/node_modules/y18n/build/lib/platform-shims/node.js +19 -0
  876. data/node_modules/y18n/index.mjs +8 -0
  877. data/node_modules/y18n/package.json +70 -0
  878. data/node_modules/yallist/LICENSE +15 -0
  879. data/node_modules/yallist/README.md +204 -0
  880. data/node_modules/yallist/iterator.js +8 -0
  881. data/node_modules/yallist/package.json +29 -0
  882. data/node_modules/yallist/yallist.js +426 -0
  883. data/node_modules/yargs-parser/CHANGELOG.md +263 -0
  884. data/node_modules/yargs-parser/LICENSE.txt +14 -0
  885. data/node_modules/yargs-parser/README.md +518 -0
  886. data/node_modules/yargs-parser/browser.js +29 -0
  887. data/node_modules/yargs-parser/build/index.cjs +1042 -0
  888. data/node_modules/yargs-parser/build/lib/index.js +59 -0
  889. data/node_modules/yargs-parser/build/lib/string-utils.js +65 -0
  890. data/node_modules/yargs-parser/build/lib/tokenize-arg-string.js +40 -0
  891. data/node_modules/yargs-parser/build/lib/yargs-parser-types.js +12 -0
  892. data/node_modules/yargs-parser/build/lib/yargs-parser.js +1037 -0
  893. data/node_modules/yargs-parser/package.json +87 -0
  894. data/node_modules/yargs/CHANGELOG.md +151 -0
  895. data/node_modules/yargs/LICENSE +21 -0
  896. data/node_modules/yargs/README.md +204 -0
  897. data/node_modules/yargs/browser.mjs +7 -0
  898. data/node_modules/yargs/build/index.cjs +1 -0
  899. data/node_modules/yargs/build/lib/argsert.js +62 -0
  900. data/node_modules/yargs/build/lib/command.js +436 -0
  901. data/node_modules/yargs/build/lib/completion-templates.js +48 -0
  902. data/node_modules/yargs/build/lib/completion.js +166 -0
  903. data/node_modules/yargs/build/lib/middleware.js +85 -0
  904. data/node_modules/yargs/build/lib/parse-command.js +32 -0
  905. data/node_modules/yargs/build/lib/typings/common-types.js +9 -0
  906. data/node_modules/yargs/build/lib/typings/yargs-parser-types.js +1 -0
  907. data/node_modules/yargs/build/lib/usage.js +567 -0
  908. data/node_modules/yargs/build/lib/utils/apply-extends.js +59 -0
  909. data/node_modules/yargs/build/lib/utils/is-promise.js +5 -0
  910. data/node_modules/yargs/build/lib/utils/levenshtein.js +26 -0
  911. data/node_modules/yargs/build/lib/utils/maybe-async-result.js +17 -0
  912. data/node_modules/yargs/build/lib/utils/obj-filter.js +10 -0
  913. data/node_modules/yargs/build/lib/utils/process-argv.js +17 -0
  914. data/node_modules/yargs/build/lib/utils/set-blocking.js +12 -0
  915. data/node_modules/yargs/build/lib/utils/which-module.js +10 -0
  916. data/node_modules/yargs/build/lib/validation.js +279 -0
  917. data/node_modules/yargs/build/lib/yargs-factory.js +1452 -0
  918. data/node_modules/yargs/build/lib/yerror.js +7 -0
  919. data/node_modules/yargs/helpers/helpers.mjs +10 -0
  920. data/node_modules/yargs/helpers/index.js +14 -0
  921. data/node_modules/yargs/helpers/package.json +3 -0
  922. data/node_modules/yargs/index.cjs +43 -0
  923. data/node_modules/yargs/index.mjs +8 -0
  924. data/node_modules/yargs/lib/platform-shims/browser.mjs +94 -0
  925. data/node_modules/yargs/lib/platform-shims/esm.mjs +67 -0
  926. data/node_modules/yargs/locales/be.json +46 -0
  927. data/node_modules/yargs/locales/de.json +46 -0
  928. data/node_modules/yargs/locales/en.json +51 -0
  929. data/node_modules/yargs/locales/es.json +46 -0
  930. data/node_modules/yargs/locales/fi.json +49 -0
  931. data/node_modules/yargs/locales/fr.json +53 -0
  932. data/node_modules/yargs/locales/hi.json +49 -0
  933. data/node_modules/yargs/locales/hu.json +46 -0
  934. data/node_modules/yargs/locales/id.json +50 -0
  935. data/node_modules/yargs/locales/it.json +46 -0
  936. data/node_modules/yargs/locales/ja.json +51 -0
  937. data/node_modules/yargs/locales/ko.json +49 -0
  938. data/node_modules/yargs/locales/nb.json +44 -0
  939. data/node_modules/yargs/locales/nl.json +49 -0
  940. data/node_modules/yargs/locales/nn.json +44 -0
  941. data/node_modules/yargs/locales/pirate.json +13 -0
  942. data/node_modules/yargs/locales/pl.json +49 -0
  943. data/node_modules/yargs/locales/pt.json +45 -0
  944. data/node_modules/yargs/locales/pt_BR.json +48 -0
  945. data/node_modules/yargs/locales/ru.json +46 -0
  946. data/node_modules/yargs/locales/th.json +46 -0
  947. data/node_modules/yargs/locales/tr.json +48 -0
  948. data/node_modules/yargs/locales/uk_UA.json +51 -0
  949. data/node_modules/yargs/locales/zh_CN.json +48 -0
  950. data/node_modules/yargs/locales/zh_TW.json +47 -0
  951. data/node_modules/yargs/package.json +116 -0
  952. data/node_modules/yargs/yargs +9 -0
  953. data/spec/fixtures/depends/revoke_api_key.appmap.json +3 -3
  954. data/spec/fixtures/depends/user_page_scenario.appmap.json +3 -3
  955. metadata +956 -7
@@ -0,0 +1,3989 @@
1
+ /*! js-yaml 3.14.1 https://github.com/nodeca/js-yaml */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.jsyaml = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
+ 'use strict';
3
+
4
+
5
+ var loader = require('./js-yaml/loader');
6
+ var dumper = require('./js-yaml/dumper');
7
+
8
+
9
+ function deprecated(name) {
10
+ return function () {
11
+ throw new Error('Function ' + name + ' is deprecated and cannot be used.');
12
+ };
13
+ }
14
+
15
+
16
+ module.exports.Type = require('./js-yaml/type');
17
+ module.exports.Schema = require('./js-yaml/schema');
18
+ module.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');
19
+ module.exports.JSON_SCHEMA = require('./js-yaml/schema/json');
20
+ module.exports.CORE_SCHEMA = require('./js-yaml/schema/core');
21
+ module.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');
22
+ module.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');
23
+ module.exports.load = loader.load;
24
+ module.exports.loadAll = loader.loadAll;
25
+ module.exports.safeLoad = loader.safeLoad;
26
+ module.exports.safeLoadAll = loader.safeLoadAll;
27
+ module.exports.dump = dumper.dump;
28
+ module.exports.safeDump = dumper.safeDump;
29
+ module.exports.YAMLException = require('./js-yaml/exception');
30
+
31
+ // Deprecated schema names from JS-YAML 2.0.x
32
+ module.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');
33
+ module.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');
34
+ module.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');
35
+
36
+ // Deprecated functions from JS-YAML 1.x.x
37
+ module.exports.scan = deprecated('scan');
38
+ module.exports.parse = deprecated('parse');
39
+ module.exports.compose = deprecated('compose');
40
+ module.exports.addConstructor = deprecated('addConstructor');
41
+
42
+ },{"./js-yaml/dumper":3,"./js-yaml/exception":4,"./js-yaml/loader":5,"./js-yaml/schema":7,"./js-yaml/schema/core":8,"./js-yaml/schema/default_full":9,"./js-yaml/schema/default_safe":10,"./js-yaml/schema/failsafe":11,"./js-yaml/schema/json":12,"./js-yaml/type":13}],2:[function(require,module,exports){
43
+ 'use strict';
44
+
45
+
46
+ function isNothing(subject) {
47
+ return (typeof subject === 'undefined') || (subject === null);
48
+ }
49
+
50
+
51
+ function isObject(subject) {
52
+ return (typeof subject === 'object') && (subject !== null);
53
+ }
54
+
55
+
56
+ function toArray(sequence) {
57
+ if (Array.isArray(sequence)) return sequence;
58
+ else if (isNothing(sequence)) return [];
59
+
60
+ return [ sequence ];
61
+ }
62
+
63
+
64
+ function extend(target, source) {
65
+ var index, length, key, sourceKeys;
66
+
67
+ if (source) {
68
+ sourceKeys = Object.keys(source);
69
+
70
+ for (index = 0, length = sourceKeys.length; index < length; index += 1) {
71
+ key = sourceKeys[index];
72
+ target[key] = source[key];
73
+ }
74
+ }
75
+
76
+ return target;
77
+ }
78
+
79
+
80
+ function repeat(string, count) {
81
+ var result = '', cycle;
82
+
83
+ for (cycle = 0; cycle < count; cycle += 1) {
84
+ result += string;
85
+ }
86
+
87
+ return result;
88
+ }
89
+
90
+
91
+ function isNegativeZero(number) {
92
+ return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);
93
+ }
94
+
95
+
96
+ module.exports.isNothing = isNothing;
97
+ module.exports.isObject = isObject;
98
+ module.exports.toArray = toArray;
99
+ module.exports.repeat = repeat;
100
+ module.exports.isNegativeZero = isNegativeZero;
101
+ module.exports.extend = extend;
102
+
103
+ },{}],3:[function(require,module,exports){
104
+ 'use strict';
105
+
106
+ /*eslint-disable no-use-before-define*/
107
+
108
+ var common = require('./common');
109
+ var YAMLException = require('./exception');
110
+ var DEFAULT_FULL_SCHEMA = require('./schema/default_full');
111
+ var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');
112
+
113
+ var _toString = Object.prototype.toString;
114
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
115
+
116
+ var CHAR_TAB = 0x09; /* Tab */
117
+ var CHAR_LINE_FEED = 0x0A; /* LF */
118
+ var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */
119
+ var CHAR_SPACE = 0x20; /* Space */
120
+ var CHAR_EXCLAMATION = 0x21; /* ! */
121
+ var CHAR_DOUBLE_QUOTE = 0x22; /* " */
122
+ var CHAR_SHARP = 0x23; /* # */
123
+ var CHAR_PERCENT = 0x25; /* % */
124
+ var CHAR_AMPERSAND = 0x26; /* & */
125
+ var CHAR_SINGLE_QUOTE = 0x27; /* ' */
126
+ var CHAR_ASTERISK = 0x2A; /* * */
127
+ var CHAR_COMMA = 0x2C; /* , */
128
+ var CHAR_MINUS = 0x2D; /* - */
129
+ var CHAR_COLON = 0x3A; /* : */
130
+ var CHAR_EQUALS = 0x3D; /* = */
131
+ var CHAR_GREATER_THAN = 0x3E; /* > */
132
+ var CHAR_QUESTION = 0x3F; /* ? */
133
+ var CHAR_COMMERCIAL_AT = 0x40; /* @ */
134
+ var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */
135
+ var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */
136
+ var CHAR_GRAVE_ACCENT = 0x60; /* ` */
137
+ var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */
138
+ var CHAR_VERTICAL_LINE = 0x7C; /* | */
139
+ var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */
140
+
141
+ var ESCAPE_SEQUENCES = {};
142
+
143
+ ESCAPE_SEQUENCES[0x00] = '\\0';
144
+ ESCAPE_SEQUENCES[0x07] = '\\a';
145
+ ESCAPE_SEQUENCES[0x08] = '\\b';
146
+ ESCAPE_SEQUENCES[0x09] = '\\t';
147
+ ESCAPE_SEQUENCES[0x0A] = '\\n';
148
+ ESCAPE_SEQUENCES[0x0B] = '\\v';
149
+ ESCAPE_SEQUENCES[0x0C] = '\\f';
150
+ ESCAPE_SEQUENCES[0x0D] = '\\r';
151
+ ESCAPE_SEQUENCES[0x1B] = '\\e';
152
+ ESCAPE_SEQUENCES[0x22] = '\\"';
153
+ ESCAPE_SEQUENCES[0x5C] = '\\\\';
154
+ ESCAPE_SEQUENCES[0x85] = '\\N';
155
+ ESCAPE_SEQUENCES[0xA0] = '\\_';
156
+ ESCAPE_SEQUENCES[0x2028] = '\\L';
157
+ ESCAPE_SEQUENCES[0x2029] = '\\P';
158
+
159
+ var DEPRECATED_BOOLEANS_SYNTAX = [
160
+ 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',
161
+ 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
162
+ ];
163
+
164
+ function compileStyleMap(schema, map) {
165
+ var result, keys, index, length, tag, style, type;
166
+
167
+ if (map === null) return {};
168
+
169
+ result = {};
170
+ keys = Object.keys(map);
171
+
172
+ for (index = 0, length = keys.length; index < length; index += 1) {
173
+ tag = keys[index];
174
+ style = String(map[tag]);
175
+
176
+ if (tag.slice(0, 2) === '!!') {
177
+ tag = 'tag:yaml.org,2002:' + tag.slice(2);
178
+ }
179
+ type = schema.compiledTypeMap['fallback'][tag];
180
+
181
+ if (type && _hasOwnProperty.call(type.styleAliases, style)) {
182
+ style = type.styleAliases[style];
183
+ }
184
+
185
+ result[tag] = style;
186
+ }
187
+
188
+ return result;
189
+ }
190
+
191
+ function encodeHex(character) {
192
+ var string, handle, length;
193
+
194
+ string = character.toString(16).toUpperCase();
195
+
196
+ if (character <= 0xFF) {
197
+ handle = 'x';
198
+ length = 2;
199
+ } else if (character <= 0xFFFF) {
200
+ handle = 'u';
201
+ length = 4;
202
+ } else if (character <= 0xFFFFFFFF) {
203
+ handle = 'U';
204
+ length = 8;
205
+ } else {
206
+ throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');
207
+ }
208
+
209
+ return '\\' + handle + common.repeat('0', length - string.length) + string;
210
+ }
211
+
212
+ function State(options) {
213
+ this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;
214
+ this.indent = Math.max(1, (options['indent'] || 2));
215
+ this.noArrayIndent = options['noArrayIndent'] || false;
216
+ this.skipInvalid = options['skipInvalid'] || false;
217
+ this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);
218
+ this.styleMap = compileStyleMap(this.schema, options['styles'] || null);
219
+ this.sortKeys = options['sortKeys'] || false;
220
+ this.lineWidth = options['lineWidth'] || 80;
221
+ this.noRefs = options['noRefs'] || false;
222
+ this.noCompatMode = options['noCompatMode'] || false;
223
+ this.condenseFlow = options['condenseFlow'] || false;
224
+
225
+ this.implicitTypes = this.schema.compiledImplicit;
226
+ this.explicitTypes = this.schema.compiledExplicit;
227
+
228
+ this.tag = null;
229
+ this.result = '';
230
+
231
+ this.duplicates = [];
232
+ this.usedDuplicates = null;
233
+ }
234
+
235
+ // Indents every line in a string. Empty lines (\n only) are not indented.
236
+ function indentString(string, spaces) {
237
+ var ind = common.repeat(' ', spaces),
238
+ position = 0,
239
+ next = -1,
240
+ result = '',
241
+ line,
242
+ length = string.length;
243
+
244
+ while (position < length) {
245
+ next = string.indexOf('\n', position);
246
+ if (next === -1) {
247
+ line = string.slice(position);
248
+ position = length;
249
+ } else {
250
+ line = string.slice(position, next + 1);
251
+ position = next + 1;
252
+ }
253
+
254
+ if (line.length && line !== '\n') result += ind;
255
+
256
+ result += line;
257
+ }
258
+
259
+ return result;
260
+ }
261
+
262
+ function generateNextLine(state, level) {
263
+ return '\n' + common.repeat(' ', state.indent * level);
264
+ }
265
+
266
+ function testImplicitResolving(state, str) {
267
+ var index, length, type;
268
+
269
+ for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
270
+ type = state.implicitTypes[index];
271
+
272
+ if (type.resolve(str)) {
273
+ return true;
274
+ }
275
+ }
276
+
277
+ return false;
278
+ }
279
+
280
+ // [33] s-white ::= s-space | s-tab
281
+ function isWhitespace(c) {
282
+ return c === CHAR_SPACE || c === CHAR_TAB;
283
+ }
284
+
285
+ // Returns true if the character can be printed without escaping.
286
+ // From YAML 1.2: "any allowed characters known to be non-printable
287
+ // should also be escaped. [However,] This isn’t mandatory"
288
+ // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029.
289
+ function isPrintable(c) {
290
+ return (0x00020 <= c && c <= 0x00007E)
291
+ || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)
292
+ || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)
293
+ || (0x10000 <= c && c <= 0x10FFFF);
294
+ }
295
+
296
+ // [34] ns-char ::= nb-char - s-white
297
+ // [27] nb-char ::= c-printable - b-char - c-byte-order-mark
298
+ // [26] b-char ::= b-line-feed | b-carriage-return
299
+ // [24] b-line-feed ::= #xA /* LF */
300
+ // [25] b-carriage-return ::= #xD /* CR */
301
+ // [3] c-byte-order-mark ::= #xFEFF
302
+ function isNsChar(c) {
303
+ return isPrintable(c) && !isWhitespace(c)
304
+ // byte-order-mark
305
+ && c !== 0xFEFF
306
+ // b-char
307
+ && c !== CHAR_CARRIAGE_RETURN
308
+ && c !== CHAR_LINE_FEED;
309
+ }
310
+
311
+ // Simplified test for values allowed after the first character in plain style.
312
+ function isPlainSafe(c, prev) {
313
+ // Uses a subset of nb-char - c-flow-indicator - ":" - "#"
314
+ // where nb-char ::= c-printable - b-char - c-byte-order-mark.
315
+ return isPrintable(c) && c !== 0xFEFF
316
+ // - c-flow-indicator
317
+ && c !== CHAR_COMMA
318
+ && c !== CHAR_LEFT_SQUARE_BRACKET
319
+ && c !== CHAR_RIGHT_SQUARE_BRACKET
320
+ && c !== CHAR_LEFT_CURLY_BRACKET
321
+ && c !== CHAR_RIGHT_CURLY_BRACKET
322
+ // - ":" - "#"
323
+ // /* An ns-char preceding */ "#"
324
+ && c !== CHAR_COLON
325
+ && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));
326
+ }
327
+
328
+ // Simplified test for values allowed as the first character in plain style.
329
+ function isPlainSafeFirst(c) {
330
+ // Uses a subset of ns-char - c-indicator
331
+ // where ns-char = nb-char - s-white.
332
+ return isPrintable(c) && c !== 0xFEFF
333
+ && !isWhitespace(c) // - s-white
334
+ // - (c-indicator ::=
335
+ // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”
336
+ && c !== CHAR_MINUS
337
+ && c !== CHAR_QUESTION
338
+ && c !== CHAR_COLON
339
+ && c !== CHAR_COMMA
340
+ && c !== CHAR_LEFT_SQUARE_BRACKET
341
+ && c !== CHAR_RIGHT_SQUARE_BRACKET
342
+ && c !== CHAR_LEFT_CURLY_BRACKET
343
+ && c !== CHAR_RIGHT_CURLY_BRACKET
344
+ // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"”
345
+ && c !== CHAR_SHARP
346
+ && c !== CHAR_AMPERSAND
347
+ && c !== CHAR_ASTERISK
348
+ && c !== CHAR_EXCLAMATION
349
+ && c !== CHAR_VERTICAL_LINE
350
+ && c !== CHAR_EQUALS
351
+ && c !== CHAR_GREATER_THAN
352
+ && c !== CHAR_SINGLE_QUOTE
353
+ && c !== CHAR_DOUBLE_QUOTE
354
+ // | “%” | “@” | “`”)
355
+ && c !== CHAR_PERCENT
356
+ && c !== CHAR_COMMERCIAL_AT
357
+ && c !== CHAR_GRAVE_ACCENT;
358
+ }
359
+
360
+ // Determines whether block indentation indicator is required.
361
+ function needIndentIndicator(string) {
362
+ var leadingSpaceRe = /^\n* /;
363
+ return leadingSpaceRe.test(string);
364
+ }
365
+
366
+ var STYLE_PLAIN = 1,
367
+ STYLE_SINGLE = 2,
368
+ STYLE_LITERAL = 3,
369
+ STYLE_FOLDED = 4,
370
+ STYLE_DOUBLE = 5;
371
+
372
+ // Determines which scalar styles are possible and returns the preferred style.
373
+ // lineWidth = -1 => no limit.
374
+ // Pre-conditions: str.length > 0.
375
+ // Post-conditions:
376
+ // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string.
377
+ // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).
378
+ // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).
379
+ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {
380
+ var i;
381
+ var char, prev_char;
382
+ var hasLineBreak = false;
383
+ var hasFoldableLine = false; // only checked if shouldTrackWidth
384
+ var shouldTrackWidth = lineWidth !== -1;
385
+ var previousLineBreak = -1; // count the first line correctly
386
+ var plain = isPlainSafeFirst(string.charCodeAt(0))
387
+ && !isWhitespace(string.charCodeAt(string.length - 1));
388
+
389
+ if (singleLineOnly) {
390
+ // Case: no block styles.
391
+ // Check for disallowed characters to rule out plain and single.
392
+ for (i = 0; i < string.length; i++) {
393
+ char = string.charCodeAt(i);
394
+ if (!isPrintable(char)) {
395
+ return STYLE_DOUBLE;
396
+ }
397
+ prev_char = i > 0 ? string.charCodeAt(i - 1) : null;
398
+ plain = plain && isPlainSafe(char, prev_char);
399
+ }
400
+ } else {
401
+ // Case: block styles permitted.
402
+ for (i = 0; i < string.length; i++) {
403
+ char = string.charCodeAt(i);
404
+ if (char === CHAR_LINE_FEED) {
405
+ hasLineBreak = true;
406
+ // Check if any line can be folded.
407
+ if (shouldTrackWidth) {
408
+ hasFoldableLine = hasFoldableLine ||
409
+ // Foldable line = too long, and not more-indented.
410
+ (i - previousLineBreak - 1 > lineWidth &&
411
+ string[previousLineBreak + 1] !== ' ');
412
+ previousLineBreak = i;
413
+ }
414
+ } else if (!isPrintable(char)) {
415
+ return STYLE_DOUBLE;
416
+ }
417
+ prev_char = i > 0 ? string.charCodeAt(i - 1) : null;
418
+ plain = plain && isPlainSafe(char, prev_char);
419
+ }
420
+ // in case the end is missing a \n
421
+ hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&
422
+ (i - previousLineBreak - 1 > lineWidth &&
423
+ string[previousLineBreak + 1] !== ' '));
424
+ }
425
+ // Although every style can represent \n without escaping, prefer block styles
426
+ // for multiline, since they're more readable and they don't add empty lines.
427
+ // Also prefer folding a super-long line.
428
+ if (!hasLineBreak && !hasFoldableLine) {
429
+ // Strings interpretable as another type have to be quoted;
430
+ // e.g. the string 'true' vs. the boolean true.
431
+ return plain && !testAmbiguousType(string)
432
+ ? STYLE_PLAIN : STYLE_SINGLE;
433
+ }
434
+ // Edge case: block indentation indicator can only have one digit.
435
+ if (indentPerLevel > 9 && needIndentIndicator(string)) {
436
+ return STYLE_DOUBLE;
437
+ }
438
+ // At this point we know block styles are valid.
439
+ // Prefer literal style unless we want to fold.
440
+ return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
441
+ }
442
+
443
+ // Note: line breaking/folding is implemented for only the folded style.
444
+ // NB. We drop the last trailing newline (if any) of a returned block scalar
445
+ // since the dumper adds its own newline. This always works:
446
+ // • No ending newline => unaffected; already using strip "-" chomping.
447
+ // • Ending newline => removed then restored.
448
+ // Importantly, this keeps the "+" chomp indicator from gaining an extra line.
449
+ function writeScalar(state, string, level, iskey) {
450
+ state.dump = (function () {
451
+ if (string.length === 0) {
452
+ return "''";
453
+ }
454
+ if (!state.noCompatMode &&
455
+ DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {
456
+ return "'" + string + "'";
457
+ }
458
+
459
+ var indent = state.indent * Math.max(1, level); // no 0-indent scalars
460
+ // As indentation gets deeper, let the width decrease monotonically
461
+ // to the lower bound min(state.lineWidth, 40).
462
+ // Note that this implies
463
+ // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.
464
+ // state.lineWidth > 40 + state.indent: width decreases until the lower bound.
465
+ // This behaves better than a constant minimum width which disallows narrower options,
466
+ // or an indent threshold which causes the width to suddenly increase.
467
+ var lineWidth = state.lineWidth === -1
468
+ ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);
469
+
470
+ // Without knowing if keys are implicit/explicit, assume implicit for safety.
471
+ var singleLineOnly = iskey
472
+ // No block styles in flow mode.
473
+ || (state.flowLevel > -1 && level >= state.flowLevel);
474
+ function testAmbiguity(string) {
475
+ return testImplicitResolving(state, string);
476
+ }
477
+
478
+ switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {
479
+ case STYLE_PLAIN:
480
+ return string;
481
+ case STYLE_SINGLE:
482
+ return "'" + string.replace(/'/g, "''") + "'";
483
+ case STYLE_LITERAL:
484
+ return '|' + blockHeader(string, state.indent)
485
+ + dropEndingNewline(indentString(string, indent));
486
+ case STYLE_FOLDED:
487
+ return '>' + blockHeader(string, state.indent)
488
+ + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
489
+ case STYLE_DOUBLE:
490
+ return '"' + escapeString(string, lineWidth) + '"';
491
+ default:
492
+ throw new YAMLException('impossible error: invalid scalar style');
493
+ }
494
+ }());
495
+ }
496
+
497
+ // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.
498
+ function blockHeader(string, indentPerLevel) {
499
+ var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';
500
+
501
+ // note the special case: the string '\n' counts as a "trailing" empty line.
502
+ var clip = string[string.length - 1] === '\n';
503
+ var keep = clip && (string[string.length - 2] === '\n' || string === '\n');
504
+ var chomp = keep ? '+' : (clip ? '' : '-');
505
+
506
+ return indentIndicator + chomp + '\n';
507
+ }
508
+
509
+ // (See the note for writeScalar.)
510
+ function dropEndingNewline(string) {
511
+ return string[string.length - 1] === '\n' ? string.slice(0, -1) : string;
512
+ }
513
+
514
+ // Note: a long line without a suitable break point will exceed the width limit.
515
+ // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.
516
+ function foldString(string, width) {
517
+ // In folded style, $k$ consecutive newlines output as $k+1$ newlines—
518
+ // unless they're before or after a more-indented line, or at the very
519
+ // beginning or end, in which case $k$ maps to $k$.
520
+ // Therefore, parse each chunk as newline(s) followed by a content line.
521
+ var lineRe = /(\n+)([^\n]*)/g;
522
+
523
+ // first line (possibly an empty line)
524
+ var result = (function () {
525
+ var nextLF = string.indexOf('\n');
526
+ nextLF = nextLF !== -1 ? nextLF : string.length;
527
+ lineRe.lastIndex = nextLF;
528
+ return foldLine(string.slice(0, nextLF), width);
529
+ }());
530
+ // If we haven't reached the first content line yet, don't add an extra \n.
531
+ var prevMoreIndented = string[0] === '\n' || string[0] === ' ';
532
+ var moreIndented;
533
+
534
+ // rest of the lines
535
+ var match;
536
+ while ((match = lineRe.exec(string))) {
537
+ var prefix = match[1], line = match[2];
538
+ moreIndented = (line[0] === ' ');
539
+ result += prefix
540
+ + (!prevMoreIndented && !moreIndented && line !== ''
541
+ ? '\n' : '')
542
+ + foldLine(line, width);
543
+ prevMoreIndented = moreIndented;
544
+ }
545
+
546
+ return result;
547
+ }
548
+
549
+ // Greedy line breaking.
550
+ // Picks the longest line under the limit each time,
551
+ // otherwise settles for the shortest line over the limit.
552
+ // NB. More-indented lines *cannot* be folded, as that would add an extra \n.
553
+ function foldLine(line, width) {
554
+ if (line === '' || line[0] === ' ') return line;
555
+
556
+ // Since a more-indented line adds a \n, breaks can't be followed by a space.
557
+ var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.
558
+ var match;
559
+ // start is an inclusive index. end, curr, and next are exclusive.
560
+ var start = 0, end, curr = 0, next = 0;
561
+ var result = '';
562
+
563
+ // Invariants: 0 <= start <= length-1.
564
+ // 0 <= curr <= next <= max(0, length-2). curr - start <= width.
565
+ // Inside the loop:
566
+ // A match implies length >= 2, so curr and next are <= length-2.
567
+ while ((match = breakRe.exec(line))) {
568
+ next = match.index;
569
+ // maintain invariant: curr - start <= width
570
+ if (next - start > width) {
571
+ end = (curr > start) ? curr : next; // derive end <= length-2
572
+ result += '\n' + line.slice(start, end);
573
+ // skip the space that was output as \n
574
+ start = end + 1; // derive start <= length-1
575
+ }
576
+ curr = next;
577
+ }
578
+
579
+ // By the invariants, start <= length-1, so there is something left over.
580
+ // It is either the whole string or a part starting from non-whitespace.
581
+ result += '\n';
582
+ // Insert a break if the remainder is too long and there is a break available.
583
+ if (line.length - start > width && curr > start) {
584
+ result += line.slice(start, curr) + '\n' + line.slice(curr + 1);
585
+ } else {
586
+ result += line.slice(start);
587
+ }
588
+
589
+ return result.slice(1); // drop extra \n joiner
590
+ }
591
+
592
+ // Escapes a double-quoted string.
593
+ function escapeString(string) {
594
+ var result = '';
595
+ var char, nextChar;
596
+ var escapeSeq;
597
+
598
+ for (var i = 0; i < string.length; i++) {
599
+ char = string.charCodeAt(i);
600
+ // Check for surrogate pairs (reference Unicode 3.0 section "3.7 Surrogates").
601
+ if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {
602
+ nextChar = string.charCodeAt(i + 1);
603
+ if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {
604
+ // Combine the surrogate pair and store it escaped.
605
+ result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);
606
+ // Advance index one extra since we already used that char here.
607
+ i++; continue;
608
+ }
609
+ }
610
+ escapeSeq = ESCAPE_SEQUENCES[char];
611
+ result += !escapeSeq && isPrintable(char)
612
+ ? string[i]
613
+ : escapeSeq || encodeHex(char);
614
+ }
615
+
616
+ return result;
617
+ }
618
+
619
+ function writeFlowSequence(state, level, object) {
620
+ var _result = '',
621
+ _tag = state.tag,
622
+ index,
623
+ length;
624
+
625
+ for (index = 0, length = object.length; index < length; index += 1) {
626
+ // Write only valid elements.
627
+ if (writeNode(state, level, object[index], false, false)) {
628
+ if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');
629
+ _result += state.dump;
630
+ }
631
+ }
632
+
633
+ state.tag = _tag;
634
+ state.dump = '[' + _result + ']';
635
+ }
636
+
637
+ function writeBlockSequence(state, level, object, compact) {
638
+ var _result = '',
639
+ _tag = state.tag,
640
+ index,
641
+ length;
642
+
643
+ for (index = 0, length = object.length; index < length; index += 1) {
644
+ // Write only valid elements.
645
+ if (writeNode(state, level + 1, object[index], true, true)) {
646
+ if (!compact || index !== 0) {
647
+ _result += generateNextLine(state, level);
648
+ }
649
+
650
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
651
+ _result += '-';
652
+ } else {
653
+ _result += '- ';
654
+ }
655
+
656
+ _result += state.dump;
657
+ }
658
+ }
659
+
660
+ state.tag = _tag;
661
+ state.dump = _result || '[]'; // Empty sequence if no valid values.
662
+ }
663
+
664
+ function writeFlowMapping(state, level, object) {
665
+ var _result = '',
666
+ _tag = state.tag,
667
+ objectKeyList = Object.keys(object),
668
+ index,
669
+ length,
670
+ objectKey,
671
+ objectValue,
672
+ pairBuffer;
673
+
674
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
675
+
676
+ pairBuffer = '';
677
+ if (index !== 0) pairBuffer += ', ';
678
+
679
+ if (state.condenseFlow) pairBuffer += '"';
680
+
681
+ objectKey = objectKeyList[index];
682
+ objectValue = object[objectKey];
683
+
684
+ if (!writeNode(state, level, objectKey, false, false)) {
685
+ continue; // Skip this pair because of invalid key;
686
+ }
687
+
688
+ if (state.dump.length > 1024) pairBuffer += '? ';
689
+
690
+ pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' ');
691
+
692
+ if (!writeNode(state, level, objectValue, false, false)) {
693
+ continue; // Skip this pair because of invalid value.
694
+ }
695
+
696
+ pairBuffer += state.dump;
697
+
698
+ // Both key and value are valid.
699
+ _result += pairBuffer;
700
+ }
701
+
702
+ state.tag = _tag;
703
+ state.dump = '{' + _result + '}';
704
+ }
705
+
706
+ function writeBlockMapping(state, level, object, compact) {
707
+ var _result = '',
708
+ _tag = state.tag,
709
+ objectKeyList = Object.keys(object),
710
+ index,
711
+ length,
712
+ objectKey,
713
+ objectValue,
714
+ explicitPair,
715
+ pairBuffer;
716
+
717
+ // Allow sorting keys so that the output file is deterministic
718
+ if (state.sortKeys === true) {
719
+ // Default sorting
720
+ objectKeyList.sort();
721
+ } else if (typeof state.sortKeys === 'function') {
722
+ // Custom sort function
723
+ objectKeyList.sort(state.sortKeys);
724
+ } else if (state.sortKeys) {
725
+ // Something is wrong
726
+ throw new YAMLException('sortKeys must be a boolean or a function');
727
+ }
728
+
729
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
730
+ pairBuffer = '';
731
+
732
+ if (!compact || index !== 0) {
733
+ pairBuffer += generateNextLine(state, level);
734
+ }
735
+
736
+ objectKey = objectKeyList[index];
737
+ objectValue = object[objectKey];
738
+
739
+ if (!writeNode(state, level + 1, objectKey, true, true, true)) {
740
+ continue; // Skip this pair because of invalid key.
741
+ }
742
+
743
+ explicitPair = (state.tag !== null && state.tag !== '?') ||
744
+ (state.dump && state.dump.length > 1024);
745
+
746
+ if (explicitPair) {
747
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
748
+ pairBuffer += '?';
749
+ } else {
750
+ pairBuffer += '? ';
751
+ }
752
+ }
753
+
754
+ pairBuffer += state.dump;
755
+
756
+ if (explicitPair) {
757
+ pairBuffer += generateNextLine(state, level);
758
+ }
759
+
760
+ if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
761
+ continue; // Skip this pair because of invalid value.
762
+ }
763
+
764
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
765
+ pairBuffer += ':';
766
+ } else {
767
+ pairBuffer += ': ';
768
+ }
769
+
770
+ pairBuffer += state.dump;
771
+
772
+ // Both key and value are valid.
773
+ _result += pairBuffer;
774
+ }
775
+
776
+ state.tag = _tag;
777
+ state.dump = _result || '{}'; // Empty mapping if no valid pairs.
778
+ }
779
+
780
+ function detectType(state, object, explicit) {
781
+ var _result, typeList, index, length, type, style;
782
+
783
+ typeList = explicit ? state.explicitTypes : state.implicitTypes;
784
+
785
+ for (index = 0, length = typeList.length; index < length; index += 1) {
786
+ type = typeList[index];
787
+
788
+ if ((type.instanceOf || type.predicate) &&
789
+ (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&
790
+ (!type.predicate || type.predicate(object))) {
791
+
792
+ state.tag = explicit ? type.tag : '?';
793
+
794
+ if (type.represent) {
795
+ style = state.styleMap[type.tag] || type.defaultStyle;
796
+
797
+ if (_toString.call(type.represent) === '[object Function]') {
798
+ _result = type.represent(object, style);
799
+ } else if (_hasOwnProperty.call(type.represent, style)) {
800
+ _result = type.represent[style](object, style);
801
+ } else {
802
+ throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style');
803
+ }
804
+
805
+ state.dump = _result;
806
+ }
807
+
808
+ return true;
809
+ }
810
+ }
811
+
812
+ return false;
813
+ }
814
+
815
+ // Serializes `object` and writes it to global `result`.
816
+ // Returns true on success, or false on invalid object.
817
+ //
818
+ function writeNode(state, level, object, block, compact, iskey) {
819
+ state.tag = null;
820
+ state.dump = object;
821
+
822
+ if (!detectType(state, object, false)) {
823
+ detectType(state, object, true);
824
+ }
825
+
826
+ var type = _toString.call(state.dump);
827
+
828
+ if (block) {
829
+ block = (state.flowLevel < 0 || state.flowLevel > level);
830
+ }
831
+
832
+ var objectOrArray = type === '[object Object]' || type === '[object Array]',
833
+ duplicateIndex,
834
+ duplicate;
835
+
836
+ if (objectOrArray) {
837
+ duplicateIndex = state.duplicates.indexOf(object);
838
+ duplicate = duplicateIndex !== -1;
839
+ }
840
+
841
+ if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {
842
+ compact = false;
843
+ }
844
+
845
+ if (duplicate && state.usedDuplicates[duplicateIndex]) {
846
+ state.dump = '*ref_' + duplicateIndex;
847
+ } else {
848
+ if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
849
+ state.usedDuplicates[duplicateIndex] = true;
850
+ }
851
+ if (type === '[object Object]') {
852
+ if (block && (Object.keys(state.dump).length !== 0)) {
853
+ writeBlockMapping(state, level, state.dump, compact);
854
+ if (duplicate) {
855
+ state.dump = '&ref_' + duplicateIndex + state.dump;
856
+ }
857
+ } else {
858
+ writeFlowMapping(state, level, state.dump);
859
+ if (duplicate) {
860
+ state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
861
+ }
862
+ }
863
+ } else if (type === '[object Array]') {
864
+ var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;
865
+ if (block && (state.dump.length !== 0)) {
866
+ writeBlockSequence(state, arrayLevel, state.dump, compact);
867
+ if (duplicate) {
868
+ state.dump = '&ref_' + duplicateIndex + state.dump;
869
+ }
870
+ } else {
871
+ writeFlowSequence(state, arrayLevel, state.dump);
872
+ if (duplicate) {
873
+ state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
874
+ }
875
+ }
876
+ } else if (type === '[object String]') {
877
+ if (state.tag !== '?') {
878
+ writeScalar(state, state.dump, level, iskey);
879
+ }
880
+ } else {
881
+ if (state.skipInvalid) return false;
882
+ throw new YAMLException('unacceptable kind of an object to dump ' + type);
883
+ }
884
+
885
+ if (state.tag !== null && state.tag !== '?') {
886
+ state.dump = '!<' + state.tag + '> ' + state.dump;
887
+ }
888
+ }
889
+
890
+ return true;
891
+ }
892
+
893
+ function getDuplicateReferences(object, state) {
894
+ var objects = [],
895
+ duplicatesIndexes = [],
896
+ index,
897
+ length;
898
+
899
+ inspectNode(object, objects, duplicatesIndexes);
900
+
901
+ for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
902
+ state.duplicates.push(objects[duplicatesIndexes[index]]);
903
+ }
904
+ state.usedDuplicates = new Array(length);
905
+ }
906
+
907
+ function inspectNode(object, objects, duplicatesIndexes) {
908
+ var objectKeyList,
909
+ index,
910
+ length;
911
+
912
+ if (object !== null && typeof object === 'object') {
913
+ index = objects.indexOf(object);
914
+ if (index !== -1) {
915
+ if (duplicatesIndexes.indexOf(index) === -1) {
916
+ duplicatesIndexes.push(index);
917
+ }
918
+ } else {
919
+ objects.push(object);
920
+
921
+ if (Array.isArray(object)) {
922
+ for (index = 0, length = object.length; index < length; index += 1) {
923
+ inspectNode(object[index], objects, duplicatesIndexes);
924
+ }
925
+ } else {
926
+ objectKeyList = Object.keys(object);
927
+
928
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
929
+ inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
930
+ }
931
+ }
932
+ }
933
+ }
934
+ }
935
+
936
+ function dump(input, options) {
937
+ options = options || {};
938
+
939
+ var state = new State(options);
940
+
941
+ if (!state.noRefs) getDuplicateReferences(input, state);
942
+
943
+ if (writeNode(state, 0, input, true, true)) return state.dump + '\n';
944
+
945
+ return '';
946
+ }
947
+
948
+ function safeDump(input, options) {
949
+ return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));
950
+ }
951
+
952
+ module.exports.dump = dump;
953
+ module.exports.safeDump = safeDump;
954
+
955
+ },{"./common":2,"./exception":4,"./schema/default_full":9,"./schema/default_safe":10}],4:[function(require,module,exports){
956
+ // YAML error class. http://stackoverflow.com/questions/8458984
957
+ //
958
+ 'use strict';
959
+
960
+ function YAMLException(reason, mark) {
961
+ // Super constructor
962
+ Error.call(this);
963
+
964
+ this.name = 'YAMLException';
965
+ this.reason = reason;
966
+ this.mark = mark;
967
+ this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');
968
+
969
+ // Include stack trace in error object
970
+ if (Error.captureStackTrace) {
971
+ // Chrome and NodeJS
972
+ Error.captureStackTrace(this, this.constructor);
973
+ } else {
974
+ // FF, IE 10+ and Safari 6+. Fallback for others
975
+ this.stack = (new Error()).stack || '';
976
+ }
977
+ }
978
+
979
+
980
+ // Inherit from Error
981
+ YAMLException.prototype = Object.create(Error.prototype);
982
+ YAMLException.prototype.constructor = YAMLException;
983
+
984
+
985
+ YAMLException.prototype.toString = function toString(compact) {
986
+ var result = this.name + ': ';
987
+
988
+ result += this.reason || '(unknown reason)';
989
+
990
+ if (!compact && this.mark) {
991
+ result += ' ' + this.mark.toString();
992
+ }
993
+
994
+ return result;
995
+ };
996
+
997
+
998
+ module.exports = YAMLException;
999
+
1000
+ },{}],5:[function(require,module,exports){
1001
+ 'use strict';
1002
+
1003
+ /*eslint-disable max-len,no-use-before-define*/
1004
+
1005
+ var common = require('./common');
1006
+ var YAMLException = require('./exception');
1007
+ var Mark = require('./mark');
1008
+ var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');
1009
+ var DEFAULT_FULL_SCHEMA = require('./schema/default_full');
1010
+
1011
+
1012
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
1013
+
1014
+
1015
+ var CONTEXT_FLOW_IN = 1;
1016
+ var CONTEXT_FLOW_OUT = 2;
1017
+ var CONTEXT_BLOCK_IN = 3;
1018
+ var CONTEXT_BLOCK_OUT = 4;
1019
+
1020
+
1021
+ var CHOMPING_CLIP = 1;
1022
+ var CHOMPING_STRIP = 2;
1023
+ var CHOMPING_KEEP = 3;
1024
+
1025
+
1026
+ var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
1027
+ var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
1028
+ var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
1029
+ var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
1030
+ var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
1031
+
1032
+
1033
+ function _class(obj) { return Object.prototype.toString.call(obj); }
1034
+
1035
+ function is_EOL(c) {
1036
+ return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);
1037
+ }
1038
+
1039
+ function is_WHITE_SPACE(c) {
1040
+ return (c === 0x09/* Tab */) || (c === 0x20/* Space */);
1041
+ }
1042
+
1043
+ function is_WS_OR_EOL(c) {
1044
+ return (c === 0x09/* Tab */) ||
1045
+ (c === 0x20/* Space */) ||
1046
+ (c === 0x0A/* LF */) ||
1047
+ (c === 0x0D/* CR */);
1048
+ }
1049
+
1050
+ function is_FLOW_INDICATOR(c) {
1051
+ return c === 0x2C/* , */ ||
1052
+ c === 0x5B/* [ */ ||
1053
+ c === 0x5D/* ] */ ||
1054
+ c === 0x7B/* { */ ||
1055
+ c === 0x7D/* } */;
1056
+ }
1057
+
1058
+ function fromHexCode(c) {
1059
+ var lc;
1060
+
1061
+ if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
1062
+ return c - 0x30;
1063
+ }
1064
+
1065
+ /*eslint-disable no-bitwise*/
1066
+ lc = c | 0x20;
1067
+
1068
+ if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {
1069
+ return lc - 0x61 + 10;
1070
+ }
1071
+
1072
+ return -1;
1073
+ }
1074
+
1075
+ function escapedHexLen(c) {
1076
+ if (c === 0x78/* x */) { return 2; }
1077
+ if (c === 0x75/* u */) { return 4; }
1078
+ if (c === 0x55/* U */) { return 8; }
1079
+ return 0;
1080
+ }
1081
+
1082
+ function fromDecimalCode(c) {
1083
+ if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {
1084
+ return c - 0x30;
1085
+ }
1086
+
1087
+ return -1;
1088
+ }
1089
+
1090
+ function simpleEscapeSequence(c) {
1091
+ /* eslint-disable indent */
1092
+ return (c === 0x30/* 0 */) ? '\x00' :
1093
+ (c === 0x61/* a */) ? '\x07' :
1094
+ (c === 0x62/* b */) ? '\x08' :
1095
+ (c === 0x74/* t */) ? '\x09' :
1096
+ (c === 0x09/* Tab */) ? '\x09' :
1097
+ (c === 0x6E/* n */) ? '\x0A' :
1098
+ (c === 0x76/* v */) ? '\x0B' :
1099
+ (c === 0x66/* f */) ? '\x0C' :
1100
+ (c === 0x72/* r */) ? '\x0D' :
1101
+ (c === 0x65/* e */) ? '\x1B' :
1102
+ (c === 0x20/* Space */) ? ' ' :
1103
+ (c === 0x22/* " */) ? '\x22' :
1104
+ (c === 0x2F/* / */) ? '/' :
1105
+ (c === 0x5C/* \ */) ? '\x5C' :
1106
+ (c === 0x4E/* N */) ? '\x85' :
1107
+ (c === 0x5F/* _ */) ? '\xA0' :
1108
+ (c === 0x4C/* L */) ? '\u2028' :
1109
+ (c === 0x50/* P */) ? '\u2029' : '';
1110
+ }
1111
+
1112
+ function charFromCodepoint(c) {
1113
+ if (c <= 0xFFFF) {
1114
+ return String.fromCharCode(c);
1115
+ }
1116
+ // Encode UTF-16 surrogate pair
1117
+ // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF
1118
+ return String.fromCharCode(
1119
+ ((c - 0x010000) >> 10) + 0xD800,
1120
+ ((c - 0x010000) & 0x03FF) + 0xDC00
1121
+ );
1122
+ }
1123
+
1124
+ var simpleEscapeCheck = new Array(256); // integer, for fast access
1125
+ var simpleEscapeMap = new Array(256);
1126
+ for (var i = 0; i < 256; i++) {
1127
+ simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
1128
+ simpleEscapeMap[i] = simpleEscapeSequence(i);
1129
+ }
1130
+
1131
+
1132
+ function State(input, options) {
1133
+ this.input = input;
1134
+
1135
+ this.filename = options['filename'] || null;
1136
+ this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;
1137
+ this.onWarning = options['onWarning'] || null;
1138
+ this.legacy = options['legacy'] || false;
1139
+ this.json = options['json'] || false;
1140
+ this.listener = options['listener'] || null;
1141
+
1142
+ this.implicitTypes = this.schema.compiledImplicit;
1143
+ this.typeMap = this.schema.compiledTypeMap;
1144
+
1145
+ this.length = input.length;
1146
+ this.position = 0;
1147
+ this.line = 0;
1148
+ this.lineStart = 0;
1149
+ this.lineIndent = 0;
1150
+
1151
+ this.documents = [];
1152
+
1153
+ /*
1154
+ this.version;
1155
+ this.checkLineBreaks;
1156
+ this.tagMap;
1157
+ this.anchorMap;
1158
+ this.tag;
1159
+ this.anchor;
1160
+ this.kind;
1161
+ this.result;*/
1162
+
1163
+ }
1164
+
1165
+
1166
+ function generateError(state, message) {
1167
+ return new YAMLException(
1168
+ message,
1169
+ new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));
1170
+ }
1171
+
1172
+ function throwError(state, message) {
1173
+ throw generateError(state, message);
1174
+ }
1175
+
1176
+ function throwWarning(state, message) {
1177
+ if (state.onWarning) {
1178
+ state.onWarning.call(null, generateError(state, message));
1179
+ }
1180
+ }
1181
+
1182
+
1183
+ var directiveHandlers = {
1184
+
1185
+ YAML: function handleYamlDirective(state, name, args) {
1186
+
1187
+ var match, major, minor;
1188
+
1189
+ if (state.version !== null) {
1190
+ throwError(state, 'duplication of %YAML directive');
1191
+ }
1192
+
1193
+ if (args.length !== 1) {
1194
+ throwError(state, 'YAML directive accepts exactly one argument');
1195
+ }
1196
+
1197
+ match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
1198
+
1199
+ if (match === null) {
1200
+ throwError(state, 'ill-formed argument of the YAML directive');
1201
+ }
1202
+
1203
+ major = parseInt(match[1], 10);
1204
+ minor = parseInt(match[2], 10);
1205
+
1206
+ if (major !== 1) {
1207
+ throwError(state, 'unacceptable YAML version of the document');
1208
+ }
1209
+
1210
+ state.version = args[0];
1211
+ state.checkLineBreaks = (minor < 2);
1212
+
1213
+ if (minor !== 1 && minor !== 2) {
1214
+ throwWarning(state, 'unsupported YAML version of the document');
1215
+ }
1216
+ },
1217
+
1218
+ TAG: function handleTagDirective(state, name, args) {
1219
+
1220
+ var handle, prefix;
1221
+
1222
+ if (args.length !== 2) {
1223
+ throwError(state, 'TAG directive accepts exactly two arguments');
1224
+ }
1225
+
1226
+ handle = args[0];
1227
+ prefix = args[1];
1228
+
1229
+ if (!PATTERN_TAG_HANDLE.test(handle)) {
1230
+ throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');
1231
+ }
1232
+
1233
+ if (_hasOwnProperty.call(state.tagMap, handle)) {
1234
+ throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle');
1235
+ }
1236
+
1237
+ if (!PATTERN_TAG_URI.test(prefix)) {
1238
+ throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');
1239
+ }
1240
+
1241
+ state.tagMap[handle] = prefix;
1242
+ }
1243
+ };
1244
+
1245
+
1246
+ function captureSegment(state, start, end, checkJson) {
1247
+ var _position, _length, _character, _result;
1248
+
1249
+ if (start < end) {
1250
+ _result = state.input.slice(start, end);
1251
+
1252
+ if (checkJson) {
1253
+ for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
1254
+ _character = _result.charCodeAt(_position);
1255
+ if (!(_character === 0x09 ||
1256
+ (0x20 <= _character && _character <= 0x10FFFF))) {
1257
+ throwError(state, 'expected valid JSON character');
1258
+ }
1259
+ }
1260
+ } else if (PATTERN_NON_PRINTABLE.test(_result)) {
1261
+ throwError(state, 'the stream contains non-printable characters');
1262
+ }
1263
+
1264
+ state.result += _result;
1265
+ }
1266
+ }
1267
+
1268
+ function mergeMappings(state, destination, source, overridableKeys) {
1269
+ var sourceKeys, key, index, quantity;
1270
+
1271
+ if (!common.isObject(source)) {
1272
+ throwError(state, 'cannot merge mappings; the provided source object is unacceptable');
1273
+ }
1274
+
1275
+ sourceKeys = Object.keys(source);
1276
+
1277
+ for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
1278
+ key = sourceKeys[index];
1279
+
1280
+ if (!_hasOwnProperty.call(destination, key)) {
1281
+ destination[key] = source[key];
1282
+ overridableKeys[key] = true;
1283
+ }
1284
+ }
1285
+ }
1286
+
1287
+ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {
1288
+ var index, quantity;
1289
+
1290
+ // The output is a plain object here, so keys can only be strings.
1291
+ // We need to convert keyNode to a string, but doing so can hang the process
1292
+ // (deeply nested arrays that explode exponentially using aliases).
1293
+ if (Array.isArray(keyNode)) {
1294
+ keyNode = Array.prototype.slice.call(keyNode);
1295
+
1296
+ for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {
1297
+ if (Array.isArray(keyNode[index])) {
1298
+ throwError(state, 'nested arrays are not supported inside keys');
1299
+ }
1300
+
1301
+ if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {
1302
+ keyNode[index] = '[object Object]';
1303
+ }
1304
+ }
1305
+ }
1306
+
1307
+ // Avoid code execution in load() via toString property
1308
+ // (still use its own toString for arrays, timestamps,
1309
+ // and whatever user schema extensions happen to have @@toStringTag)
1310
+ if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {
1311
+ keyNode = '[object Object]';
1312
+ }
1313
+
1314
+
1315
+ keyNode = String(keyNode);
1316
+
1317
+ if (_result === null) {
1318
+ _result = {};
1319
+ }
1320
+
1321
+ if (keyTag === 'tag:yaml.org,2002:merge') {
1322
+ if (Array.isArray(valueNode)) {
1323
+ for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {
1324
+ mergeMappings(state, _result, valueNode[index], overridableKeys);
1325
+ }
1326
+ } else {
1327
+ mergeMappings(state, _result, valueNode, overridableKeys);
1328
+ }
1329
+ } else {
1330
+ if (!state.json &&
1331
+ !_hasOwnProperty.call(overridableKeys, keyNode) &&
1332
+ _hasOwnProperty.call(_result, keyNode)) {
1333
+ state.line = startLine || state.line;
1334
+ state.position = startPos || state.position;
1335
+ throwError(state, 'duplicated mapping key');
1336
+ }
1337
+ _result[keyNode] = valueNode;
1338
+ delete overridableKeys[keyNode];
1339
+ }
1340
+
1341
+ return _result;
1342
+ }
1343
+
1344
+ function readLineBreak(state) {
1345
+ var ch;
1346
+
1347
+ ch = state.input.charCodeAt(state.position);
1348
+
1349
+ if (ch === 0x0A/* LF */) {
1350
+ state.position++;
1351
+ } else if (ch === 0x0D/* CR */) {
1352
+ state.position++;
1353
+ if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {
1354
+ state.position++;
1355
+ }
1356
+ } else {
1357
+ throwError(state, 'a line break is expected');
1358
+ }
1359
+
1360
+ state.line += 1;
1361
+ state.lineStart = state.position;
1362
+ }
1363
+
1364
+ function skipSeparationSpace(state, allowComments, checkIndent) {
1365
+ var lineBreaks = 0,
1366
+ ch = state.input.charCodeAt(state.position);
1367
+
1368
+ while (ch !== 0) {
1369
+ while (is_WHITE_SPACE(ch)) {
1370
+ ch = state.input.charCodeAt(++state.position);
1371
+ }
1372
+
1373
+ if (allowComments && ch === 0x23/* # */) {
1374
+ do {
1375
+ ch = state.input.charCodeAt(++state.position);
1376
+ } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);
1377
+ }
1378
+
1379
+ if (is_EOL(ch)) {
1380
+ readLineBreak(state);
1381
+
1382
+ ch = state.input.charCodeAt(state.position);
1383
+ lineBreaks++;
1384
+ state.lineIndent = 0;
1385
+
1386
+ while (ch === 0x20/* Space */) {
1387
+ state.lineIndent++;
1388
+ ch = state.input.charCodeAt(++state.position);
1389
+ }
1390
+ } else {
1391
+ break;
1392
+ }
1393
+ }
1394
+
1395
+ if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {
1396
+ throwWarning(state, 'deficient indentation');
1397
+ }
1398
+
1399
+ return lineBreaks;
1400
+ }
1401
+
1402
+ function testDocumentSeparator(state) {
1403
+ var _position = state.position,
1404
+ ch;
1405
+
1406
+ ch = state.input.charCodeAt(_position);
1407
+
1408
+ // Condition state.position === state.lineStart is tested
1409
+ // in parent on each call, for efficiency. No needs to test here again.
1410
+ if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&
1411
+ ch === state.input.charCodeAt(_position + 1) &&
1412
+ ch === state.input.charCodeAt(_position + 2)) {
1413
+
1414
+ _position += 3;
1415
+
1416
+ ch = state.input.charCodeAt(_position);
1417
+
1418
+ if (ch === 0 || is_WS_OR_EOL(ch)) {
1419
+ return true;
1420
+ }
1421
+ }
1422
+
1423
+ return false;
1424
+ }
1425
+
1426
+ function writeFoldedLines(state, count) {
1427
+ if (count === 1) {
1428
+ state.result += ' ';
1429
+ } else if (count > 1) {
1430
+ state.result += common.repeat('\n', count - 1);
1431
+ }
1432
+ }
1433
+
1434
+
1435
+ function readPlainScalar(state, nodeIndent, withinFlowCollection) {
1436
+ var preceding,
1437
+ following,
1438
+ captureStart,
1439
+ captureEnd,
1440
+ hasPendingContent,
1441
+ _line,
1442
+ _lineStart,
1443
+ _lineIndent,
1444
+ _kind = state.kind,
1445
+ _result = state.result,
1446
+ ch;
1447
+
1448
+ ch = state.input.charCodeAt(state.position);
1449
+
1450
+ if (is_WS_OR_EOL(ch) ||
1451
+ is_FLOW_INDICATOR(ch) ||
1452
+ ch === 0x23/* # */ ||
1453
+ ch === 0x26/* & */ ||
1454
+ ch === 0x2A/* * */ ||
1455
+ ch === 0x21/* ! */ ||
1456
+ ch === 0x7C/* | */ ||
1457
+ ch === 0x3E/* > */ ||
1458
+ ch === 0x27/* ' */ ||
1459
+ ch === 0x22/* " */ ||
1460
+ ch === 0x25/* % */ ||
1461
+ ch === 0x40/* @ */ ||
1462
+ ch === 0x60/* ` */) {
1463
+ return false;
1464
+ }
1465
+
1466
+ if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {
1467
+ following = state.input.charCodeAt(state.position + 1);
1468
+
1469
+ if (is_WS_OR_EOL(following) ||
1470
+ withinFlowCollection && is_FLOW_INDICATOR(following)) {
1471
+ return false;
1472
+ }
1473
+ }
1474
+
1475
+ state.kind = 'scalar';
1476
+ state.result = '';
1477
+ captureStart = captureEnd = state.position;
1478
+ hasPendingContent = false;
1479
+
1480
+ while (ch !== 0) {
1481
+ if (ch === 0x3A/* : */) {
1482
+ following = state.input.charCodeAt(state.position + 1);
1483
+
1484
+ if (is_WS_OR_EOL(following) ||
1485
+ withinFlowCollection && is_FLOW_INDICATOR(following)) {
1486
+ break;
1487
+ }
1488
+
1489
+ } else if (ch === 0x23/* # */) {
1490
+ preceding = state.input.charCodeAt(state.position - 1);
1491
+
1492
+ if (is_WS_OR_EOL(preceding)) {
1493
+ break;
1494
+ }
1495
+
1496
+ } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||
1497
+ withinFlowCollection && is_FLOW_INDICATOR(ch)) {
1498
+ break;
1499
+
1500
+ } else if (is_EOL(ch)) {
1501
+ _line = state.line;
1502
+ _lineStart = state.lineStart;
1503
+ _lineIndent = state.lineIndent;
1504
+ skipSeparationSpace(state, false, -1);
1505
+
1506
+ if (state.lineIndent >= nodeIndent) {
1507
+ hasPendingContent = true;
1508
+ ch = state.input.charCodeAt(state.position);
1509
+ continue;
1510
+ } else {
1511
+ state.position = captureEnd;
1512
+ state.line = _line;
1513
+ state.lineStart = _lineStart;
1514
+ state.lineIndent = _lineIndent;
1515
+ break;
1516
+ }
1517
+ }
1518
+
1519
+ if (hasPendingContent) {
1520
+ captureSegment(state, captureStart, captureEnd, false);
1521
+ writeFoldedLines(state, state.line - _line);
1522
+ captureStart = captureEnd = state.position;
1523
+ hasPendingContent = false;
1524
+ }
1525
+
1526
+ if (!is_WHITE_SPACE(ch)) {
1527
+ captureEnd = state.position + 1;
1528
+ }
1529
+
1530
+ ch = state.input.charCodeAt(++state.position);
1531
+ }
1532
+
1533
+ captureSegment(state, captureStart, captureEnd, false);
1534
+
1535
+ if (state.result) {
1536
+ return true;
1537
+ }
1538
+
1539
+ state.kind = _kind;
1540
+ state.result = _result;
1541
+ return false;
1542
+ }
1543
+
1544
+ function readSingleQuotedScalar(state, nodeIndent) {
1545
+ var ch,
1546
+ captureStart, captureEnd;
1547
+
1548
+ ch = state.input.charCodeAt(state.position);
1549
+
1550
+ if (ch !== 0x27/* ' */) {
1551
+ return false;
1552
+ }
1553
+
1554
+ state.kind = 'scalar';
1555
+ state.result = '';
1556
+ state.position++;
1557
+ captureStart = captureEnd = state.position;
1558
+
1559
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
1560
+ if (ch === 0x27/* ' */) {
1561
+ captureSegment(state, captureStart, state.position, true);
1562
+ ch = state.input.charCodeAt(++state.position);
1563
+
1564
+ if (ch === 0x27/* ' */) {
1565
+ captureStart = state.position;
1566
+ state.position++;
1567
+ captureEnd = state.position;
1568
+ } else {
1569
+ return true;
1570
+ }
1571
+
1572
+ } else if (is_EOL(ch)) {
1573
+ captureSegment(state, captureStart, captureEnd, true);
1574
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
1575
+ captureStart = captureEnd = state.position;
1576
+
1577
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
1578
+ throwError(state, 'unexpected end of the document within a single quoted scalar');
1579
+
1580
+ } else {
1581
+ state.position++;
1582
+ captureEnd = state.position;
1583
+ }
1584
+ }
1585
+
1586
+ throwError(state, 'unexpected end of the stream within a single quoted scalar');
1587
+ }
1588
+
1589
+ function readDoubleQuotedScalar(state, nodeIndent) {
1590
+ var captureStart,
1591
+ captureEnd,
1592
+ hexLength,
1593
+ hexResult,
1594
+ tmp,
1595
+ ch;
1596
+
1597
+ ch = state.input.charCodeAt(state.position);
1598
+
1599
+ if (ch !== 0x22/* " */) {
1600
+ return false;
1601
+ }
1602
+
1603
+ state.kind = 'scalar';
1604
+ state.result = '';
1605
+ state.position++;
1606
+ captureStart = captureEnd = state.position;
1607
+
1608
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
1609
+ if (ch === 0x22/* " */) {
1610
+ captureSegment(state, captureStart, state.position, true);
1611
+ state.position++;
1612
+ return true;
1613
+
1614
+ } else if (ch === 0x5C/* \ */) {
1615
+ captureSegment(state, captureStart, state.position, true);
1616
+ ch = state.input.charCodeAt(++state.position);
1617
+
1618
+ if (is_EOL(ch)) {
1619
+ skipSeparationSpace(state, false, nodeIndent);
1620
+
1621
+ // TODO: rework to inline fn with no type cast?
1622
+ } else if (ch < 256 && simpleEscapeCheck[ch]) {
1623
+ state.result += simpleEscapeMap[ch];
1624
+ state.position++;
1625
+
1626
+ } else if ((tmp = escapedHexLen(ch)) > 0) {
1627
+ hexLength = tmp;
1628
+ hexResult = 0;
1629
+
1630
+ for (; hexLength > 0; hexLength--) {
1631
+ ch = state.input.charCodeAt(++state.position);
1632
+
1633
+ if ((tmp = fromHexCode(ch)) >= 0) {
1634
+ hexResult = (hexResult << 4) + tmp;
1635
+
1636
+ } else {
1637
+ throwError(state, 'expected hexadecimal character');
1638
+ }
1639
+ }
1640
+
1641
+ state.result += charFromCodepoint(hexResult);
1642
+
1643
+ state.position++;
1644
+
1645
+ } else {
1646
+ throwError(state, 'unknown escape sequence');
1647
+ }
1648
+
1649
+ captureStart = captureEnd = state.position;
1650
+
1651
+ } else if (is_EOL(ch)) {
1652
+ captureSegment(state, captureStart, captureEnd, true);
1653
+ writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));
1654
+ captureStart = captureEnd = state.position;
1655
+
1656
+ } else if (state.position === state.lineStart && testDocumentSeparator(state)) {
1657
+ throwError(state, 'unexpected end of the document within a double quoted scalar');
1658
+
1659
+ } else {
1660
+ state.position++;
1661
+ captureEnd = state.position;
1662
+ }
1663
+ }
1664
+
1665
+ throwError(state, 'unexpected end of the stream within a double quoted scalar');
1666
+ }
1667
+
1668
+ function readFlowCollection(state, nodeIndent) {
1669
+ var readNext = true,
1670
+ _line,
1671
+ _tag = state.tag,
1672
+ _result,
1673
+ _anchor = state.anchor,
1674
+ following,
1675
+ terminator,
1676
+ isPair,
1677
+ isExplicitPair,
1678
+ isMapping,
1679
+ overridableKeys = {},
1680
+ keyNode,
1681
+ keyTag,
1682
+ valueNode,
1683
+ ch;
1684
+
1685
+ ch = state.input.charCodeAt(state.position);
1686
+
1687
+ if (ch === 0x5B/* [ */) {
1688
+ terminator = 0x5D;/* ] */
1689
+ isMapping = false;
1690
+ _result = [];
1691
+ } else if (ch === 0x7B/* { */) {
1692
+ terminator = 0x7D;/* } */
1693
+ isMapping = true;
1694
+ _result = {};
1695
+ } else {
1696
+ return false;
1697
+ }
1698
+
1699
+ if (state.anchor !== null) {
1700
+ state.anchorMap[state.anchor] = _result;
1701
+ }
1702
+
1703
+ ch = state.input.charCodeAt(++state.position);
1704
+
1705
+ while (ch !== 0) {
1706
+ skipSeparationSpace(state, true, nodeIndent);
1707
+
1708
+ ch = state.input.charCodeAt(state.position);
1709
+
1710
+ if (ch === terminator) {
1711
+ state.position++;
1712
+ state.tag = _tag;
1713
+ state.anchor = _anchor;
1714
+ state.kind = isMapping ? 'mapping' : 'sequence';
1715
+ state.result = _result;
1716
+ return true;
1717
+ } else if (!readNext) {
1718
+ throwError(state, 'missed comma between flow collection entries');
1719
+ }
1720
+
1721
+ keyTag = keyNode = valueNode = null;
1722
+ isPair = isExplicitPair = false;
1723
+
1724
+ if (ch === 0x3F/* ? */) {
1725
+ following = state.input.charCodeAt(state.position + 1);
1726
+
1727
+ if (is_WS_OR_EOL(following)) {
1728
+ isPair = isExplicitPair = true;
1729
+ state.position++;
1730
+ skipSeparationSpace(state, true, nodeIndent);
1731
+ }
1732
+ }
1733
+
1734
+ _line = state.line;
1735
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
1736
+ keyTag = state.tag;
1737
+ keyNode = state.result;
1738
+ skipSeparationSpace(state, true, nodeIndent);
1739
+
1740
+ ch = state.input.charCodeAt(state.position);
1741
+
1742
+ if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {
1743
+ isPair = true;
1744
+ ch = state.input.charCodeAt(++state.position);
1745
+ skipSeparationSpace(state, true, nodeIndent);
1746
+ composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);
1747
+ valueNode = state.result;
1748
+ }
1749
+
1750
+ if (isMapping) {
1751
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);
1752
+ } else if (isPair) {
1753
+ _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));
1754
+ } else {
1755
+ _result.push(keyNode);
1756
+ }
1757
+
1758
+ skipSeparationSpace(state, true, nodeIndent);
1759
+
1760
+ ch = state.input.charCodeAt(state.position);
1761
+
1762
+ if (ch === 0x2C/* , */) {
1763
+ readNext = true;
1764
+ ch = state.input.charCodeAt(++state.position);
1765
+ } else {
1766
+ readNext = false;
1767
+ }
1768
+ }
1769
+
1770
+ throwError(state, 'unexpected end of the stream within a flow collection');
1771
+ }
1772
+
1773
+ function readBlockScalar(state, nodeIndent) {
1774
+ var captureStart,
1775
+ folding,
1776
+ chomping = CHOMPING_CLIP,
1777
+ didReadContent = false,
1778
+ detectedIndent = false,
1779
+ textIndent = nodeIndent,
1780
+ emptyLines = 0,
1781
+ atMoreIndented = false,
1782
+ tmp,
1783
+ ch;
1784
+
1785
+ ch = state.input.charCodeAt(state.position);
1786
+
1787
+ if (ch === 0x7C/* | */) {
1788
+ folding = false;
1789
+ } else if (ch === 0x3E/* > */) {
1790
+ folding = true;
1791
+ } else {
1792
+ return false;
1793
+ }
1794
+
1795
+ state.kind = 'scalar';
1796
+ state.result = '';
1797
+
1798
+ while (ch !== 0) {
1799
+ ch = state.input.charCodeAt(++state.position);
1800
+
1801
+ if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {
1802
+ if (CHOMPING_CLIP === chomping) {
1803
+ chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;
1804
+ } else {
1805
+ throwError(state, 'repeat of a chomping mode identifier');
1806
+ }
1807
+
1808
+ } else if ((tmp = fromDecimalCode(ch)) >= 0) {
1809
+ if (tmp === 0) {
1810
+ throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');
1811
+ } else if (!detectedIndent) {
1812
+ textIndent = nodeIndent + tmp - 1;
1813
+ detectedIndent = true;
1814
+ } else {
1815
+ throwError(state, 'repeat of an indentation width identifier');
1816
+ }
1817
+
1818
+ } else {
1819
+ break;
1820
+ }
1821
+ }
1822
+
1823
+ if (is_WHITE_SPACE(ch)) {
1824
+ do { ch = state.input.charCodeAt(++state.position); }
1825
+ while (is_WHITE_SPACE(ch));
1826
+
1827
+ if (ch === 0x23/* # */) {
1828
+ do { ch = state.input.charCodeAt(++state.position); }
1829
+ while (!is_EOL(ch) && (ch !== 0));
1830
+ }
1831
+ }
1832
+
1833
+ while (ch !== 0) {
1834
+ readLineBreak(state);
1835
+ state.lineIndent = 0;
1836
+
1837
+ ch = state.input.charCodeAt(state.position);
1838
+
1839
+ while ((!detectedIndent || state.lineIndent < textIndent) &&
1840
+ (ch === 0x20/* Space */)) {
1841
+ state.lineIndent++;
1842
+ ch = state.input.charCodeAt(++state.position);
1843
+ }
1844
+
1845
+ if (!detectedIndent && state.lineIndent > textIndent) {
1846
+ textIndent = state.lineIndent;
1847
+ }
1848
+
1849
+ if (is_EOL(ch)) {
1850
+ emptyLines++;
1851
+ continue;
1852
+ }
1853
+
1854
+ // End of the scalar.
1855
+ if (state.lineIndent < textIndent) {
1856
+
1857
+ // Perform the chomping.
1858
+ if (chomping === CHOMPING_KEEP) {
1859
+ state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
1860
+ } else if (chomping === CHOMPING_CLIP) {
1861
+ if (didReadContent) { // i.e. only if the scalar is not empty.
1862
+ state.result += '\n';
1863
+ }
1864
+ }
1865
+
1866
+ // Break this `while` cycle and go to the funciton's epilogue.
1867
+ break;
1868
+ }
1869
+
1870
+ // Folded style: use fancy rules to handle line breaks.
1871
+ if (folding) {
1872
+
1873
+ // Lines starting with white space characters (more-indented lines) are not folded.
1874
+ if (is_WHITE_SPACE(ch)) {
1875
+ atMoreIndented = true;
1876
+ // except for the first content line (cf. Example 8.1)
1877
+ state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
1878
+
1879
+ // End of more-indented block.
1880
+ } else if (atMoreIndented) {
1881
+ atMoreIndented = false;
1882
+ state.result += common.repeat('\n', emptyLines + 1);
1883
+
1884
+ // Just one line break - perceive as the same line.
1885
+ } else if (emptyLines === 0) {
1886
+ if (didReadContent) { // i.e. only if we have already read some scalar content.
1887
+ state.result += ' ';
1888
+ }
1889
+
1890
+ // Several line breaks - perceive as different lines.
1891
+ } else {
1892
+ state.result += common.repeat('\n', emptyLines);
1893
+ }
1894
+
1895
+ // Literal style: just add exact number of line breaks between content lines.
1896
+ } else {
1897
+ // Keep all line breaks except the header line break.
1898
+ state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines);
1899
+ }
1900
+
1901
+ didReadContent = true;
1902
+ detectedIndent = true;
1903
+ emptyLines = 0;
1904
+ captureStart = state.position;
1905
+
1906
+ while (!is_EOL(ch) && (ch !== 0)) {
1907
+ ch = state.input.charCodeAt(++state.position);
1908
+ }
1909
+
1910
+ captureSegment(state, captureStart, state.position, false);
1911
+ }
1912
+
1913
+ return true;
1914
+ }
1915
+
1916
+ function readBlockSequence(state, nodeIndent) {
1917
+ var _line,
1918
+ _tag = state.tag,
1919
+ _anchor = state.anchor,
1920
+ _result = [],
1921
+ following,
1922
+ detected = false,
1923
+ ch;
1924
+
1925
+ if (state.anchor !== null) {
1926
+ state.anchorMap[state.anchor] = _result;
1927
+ }
1928
+
1929
+ ch = state.input.charCodeAt(state.position);
1930
+
1931
+ while (ch !== 0) {
1932
+
1933
+ if (ch !== 0x2D/* - */) {
1934
+ break;
1935
+ }
1936
+
1937
+ following = state.input.charCodeAt(state.position + 1);
1938
+
1939
+ if (!is_WS_OR_EOL(following)) {
1940
+ break;
1941
+ }
1942
+
1943
+ detected = true;
1944
+ state.position++;
1945
+
1946
+ if (skipSeparationSpace(state, true, -1)) {
1947
+ if (state.lineIndent <= nodeIndent) {
1948
+ _result.push(null);
1949
+ ch = state.input.charCodeAt(state.position);
1950
+ continue;
1951
+ }
1952
+ }
1953
+
1954
+ _line = state.line;
1955
+ composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);
1956
+ _result.push(state.result);
1957
+ skipSeparationSpace(state, true, -1);
1958
+
1959
+ ch = state.input.charCodeAt(state.position);
1960
+
1961
+ if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {
1962
+ throwError(state, 'bad indentation of a sequence entry');
1963
+ } else if (state.lineIndent < nodeIndent) {
1964
+ break;
1965
+ }
1966
+ }
1967
+
1968
+ if (detected) {
1969
+ state.tag = _tag;
1970
+ state.anchor = _anchor;
1971
+ state.kind = 'sequence';
1972
+ state.result = _result;
1973
+ return true;
1974
+ }
1975
+ return false;
1976
+ }
1977
+
1978
+ function readBlockMapping(state, nodeIndent, flowIndent) {
1979
+ var following,
1980
+ allowCompact,
1981
+ _line,
1982
+ _pos,
1983
+ _tag = state.tag,
1984
+ _anchor = state.anchor,
1985
+ _result = {},
1986
+ overridableKeys = {},
1987
+ keyTag = null,
1988
+ keyNode = null,
1989
+ valueNode = null,
1990
+ atExplicitKey = false,
1991
+ detected = false,
1992
+ ch;
1993
+
1994
+ if (state.anchor !== null) {
1995
+ state.anchorMap[state.anchor] = _result;
1996
+ }
1997
+
1998
+ ch = state.input.charCodeAt(state.position);
1999
+
2000
+ while (ch !== 0) {
2001
+ following = state.input.charCodeAt(state.position + 1);
2002
+ _line = state.line; // Save the current line.
2003
+ _pos = state.position;
2004
+
2005
+ //
2006
+ // Explicit notation case. There are two separate blocks:
2007
+ // first for the key (denoted by "?") and second for the value (denoted by ":")
2008
+ //
2009
+ if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {
2010
+
2011
+ if (ch === 0x3F/* ? */) {
2012
+ if (atExplicitKey) {
2013
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);
2014
+ keyTag = keyNode = valueNode = null;
2015
+ }
2016
+
2017
+ detected = true;
2018
+ atExplicitKey = true;
2019
+ allowCompact = true;
2020
+
2021
+ } else if (atExplicitKey) {
2022
+ // i.e. 0x3A/* : */ === character after the explicit key.
2023
+ atExplicitKey = false;
2024
+ allowCompact = true;
2025
+
2026
+ } else {
2027
+ throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');
2028
+ }
2029
+
2030
+ state.position += 1;
2031
+ ch = following;
2032
+
2033
+ //
2034
+ // Implicit notation case. Flow-style node as the key first, then ":", and the value.
2035
+ //
2036
+ } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
2037
+
2038
+ if (state.line === _line) {
2039
+ ch = state.input.charCodeAt(state.position);
2040
+
2041
+ while (is_WHITE_SPACE(ch)) {
2042
+ ch = state.input.charCodeAt(++state.position);
2043
+ }
2044
+
2045
+ if (ch === 0x3A/* : */) {
2046
+ ch = state.input.charCodeAt(++state.position);
2047
+
2048
+ if (!is_WS_OR_EOL(ch)) {
2049
+ throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');
2050
+ }
2051
+
2052
+ if (atExplicitKey) {
2053
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);
2054
+ keyTag = keyNode = valueNode = null;
2055
+ }
2056
+
2057
+ detected = true;
2058
+ atExplicitKey = false;
2059
+ allowCompact = false;
2060
+ keyTag = state.tag;
2061
+ keyNode = state.result;
2062
+
2063
+ } else if (detected) {
2064
+ throwError(state, 'can not read an implicit mapping pair; a colon is missed');
2065
+
2066
+ } else {
2067
+ state.tag = _tag;
2068
+ state.anchor = _anchor;
2069
+ return true; // Keep the result of `composeNode`.
2070
+ }
2071
+
2072
+ } else if (detected) {
2073
+ throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');
2074
+
2075
+ } else {
2076
+ state.tag = _tag;
2077
+ state.anchor = _anchor;
2078
+ return true; // Keep the result of `composeNode`.
2079
+ }
2080
+
2081
+ } else {
2082
+ break; // Reading is done. Go to the epilogue.
2083
+ }
2084
+
2085
+ //
2086
+ // Common reading code for both explicit and implicit notations.
2087
+ //
2088
+ if (state.line === _line || state.lineIndent > nodeIndent) {
2089
+ if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
2090
+ if (atExplicitKey) {
2091
+ keyNode = state.result;
2092
+ } else {
2093
+ valueNode = state.result;
2094
+ }
2095
+ }
2096
+
2097
+ if (!atExplicitKey) {
2098
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);
2099
+ keyTag = keyNode = valueNode = null;
2100
+ }
2101
+
2102
+ skipSeparationSpace(state, true, -1);
2103
+ ch = state.input.charCodeAt(state.position);
2104
+ }
2105
+
2106
+ if (state.lineIndent > nodeIndent && (ch !== 0)) {
2107
+ throwError(state, 'bad indentation of a mapping entry');
2108
+ } else if (state.lineIndent < nodeIndent) {
2109
+ break;
2110
+ }
2111
+ }
2112
+
2113
+ //
2114
+ // Epilogue.
2115
+ //
2116
+
2117
+ // Special case: last mapping's node contains only the key in explicit notation.
2118
+ if (atExplicitKey) {
2119
+ storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);
2120
+ }
2121
+
2122
+ // Expose the resulting mapping.
2123
+ if (detected) {
2124
+ state.tag = _tag;
2125
+ state.anchor = _anchor;
2126
+ state.kind = 'mapping';
2127
+ state.result = _result;
2128
+ }
2129
+
2130
+ return detected;
2131
+ }
2132
+
2133
+ function readTagProperty(state) {
2134
+ var _position,
2135
+ isVerbatim = false,
2136
+ isNamed = false,
2137
+ tagHandle,
2138
+ tagName,
2139
+ ch;
2140
+
2141
+ ch = state.input.charCodeAt(state.position);
2142
+
2143
+ if (ch !== 0x21/* ! */) return false;
2144
+
2145
+ if (state.tag !== null) {
2146
+ throwError(state, 'duplication of a tag property');
2147
+ }
2148
+
2149
+ ch = state.input.charCodeAt(++state.position);
2150
+
2151
+ if (ch === 0x3C/* < */) {
2152
+ isVerbatim = true;
2153
+ ch = state.input.charCodeAt(++state.position);
2154
+
2155
+ } else if (ch === 0x21/* ! */) {
2156
+ isNamed = true;
2157
+ tagHandle = '!!';
2158
+ ch = state.input.charCodeAt(++state.position);
2159
+
2160
+ } else {
2161
+ tagHandle = '!';
2162
+ }
2163
+
2164
+ _position = state.position;
2165
+
2166
+ if (isVerbatim) {
2167
+ do { ch = state.input.charCodeAt(++state.position); }
2168
+ while (ch !== 0 && ch !== 0x3E/* > */);
2169
+
2170
+ if (state.position < state.length) {
2171
+ tagName = state.input.slice(_position, state.position);
2172
+ ch = state.input.charCodeAt(++state.position);
2173
+ } else {
2174
+ throwError(state, 'unexpected end of the stream within a verbatim tag');
2175
+ }
2176
+ } else {
2177
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
2178
+
2179
+ if (ch === 0x21/* ! */) {
2180
+ if (!isNamed) {
2181
+ tagHandle = state.input.slice(_position - 1, state.position + 1);
2182
+
2183
+ if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
2184
+ throwError(state, 'named tag handle cannot contain such characters');
2185
+ }
2186
+
2187
+ isNamed = true;
2188
+ _position = state.position + 1;
2189
+ } else {
2190
+ throwError(state, 'tag suffix cannot contain exclamation marks');
2191
+ }
2192
+ }
2193
+
2194
+ ch = state.input.charCodeAt(++state.position);
2195
+ }
2196
+
2197
+ tagName = state.input.slice(_position, state.position);
2198
+
2199
+ if (PATTERN_FLOW_INDICATORS.test(tagName)) {
2200
+ throwError(state, 'tag suffix cannot contain flow indicator characters');
2201
+ }
2202
+ }
2203
+
2204
+ if (tagName && !PATTERN_TAG_URI.test(tagName)) {
2205
+ throwError(state, 'tag name cannot contain such characters: ' + tagName);
2206
+ }
2207
+
2208
+ if (isVerbatim) {
2209
+ state.tag = tagName;
2210
+
2211
+ } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {
2212
+ state.tag = state.tagMap[tagHandle] + tagName;
2213
+
2214
+ } else if (tagHandle === '!') {
2215
+ state.tag = '!' + tagName;
2216
+
2217
+ } else if (tagHandle === '!!') {
2218
+ state.tag = 'tag:yaml.org,2002:' + tagName;
2219
+
2220
+ } else {
2221
+ throwError(state, 'undeclared tag handle "' + tagHandle + '"');
2222
+ }
2223
+
2224
+ return true;
2225
+ }
2226
+
2227
+ function readAnchorProperty(state) {
2228
+ var _position,
2229
+ ch;
2230
+
2231
+ ch = state.input.charCodeAt(state.position);
2232
+
2233
+ if (ch !== 0x26/* & */) return false;
2234
+
2235
+ if (state.anchor !== null) {
2236
+ throwError(state, 'duplication of an anchor property');
2237
+ }
2238
+
2239
+ ch = state.input.charCodeAt(++state.position);
2240
+ _position = state.position;
2241
+
2242
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
2243
+ ch = state.input.charCodeAt(++state.position);
2244
+ }
2245
+
2246
+ if (state.position === _position) {
2247
+ throwError(state, 'name of an anchor node must contain at least one character');
2248
+ }
2249
+
2250
+ state.anchor = state.input.slice(_position, state.position);
2251
+ return true;
2252
+ }
2253
+
2254
+ function readAlias(state) {
2255
+ var _position, alias,
2256
+ ch;
2257
+
2258
+ ch = state.input.charCodeAt(state.position);
2259
+
2260
+ if (ch !== 0x2A/* * */) return false;
2261
+
2262
+ ch = state.input.charCodeAt(++state.position);
2263
+ _position = state.position;
2264
+
2265
+ while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
2266
+ ch = state.input.charCodeAt(++state.position);
2267
+ }
2268
+
2269
+ if (state.position === _position) {
2270
+ throwError(state, 'name of an alias node must contain at least one character');
2271
+ }
2272
+
2273
+ alias = state.input.slice(_position, state.position);
2274
+
2275
+ if (!_hasOwnProperty.call(state.anchorMap, alias)) {
2276
+ throwError(state, 'unidentified alias "' + alias + '"');
2277
+ }
2278
+
2279
+ state.result = state.anchorMap[alias];
2280
+ skipSeparationSpace(state, true, -1);
2281
+ return true;
2282
+ }
2283
+
2284
+ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {
2285
+ var allowBlockStyles,
2286
+ allowBlockScalars,
2287
+ allowBlockCollections,
2288
+ indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent
2289
+ atNewLine = false,
2290
+ hasContent = false,
2291
+ typeIndex,
2292
+ typeQuantity,
2293
+ type,
2294
+ flowIndent,
2295
+ blockIndent;
2296
+
2297
+ if (state.listener !== null) {
2298
+ state.listener('open', state);
2299
+ }
2300
+
2301
+ state.tag = null;
2302
+ state.anchor = null;
2303
+ state.kind = null;
2304
+ state.result = null;
2305
+
2306
+ allowBlockStyles = allowBlockScalars = allowBlockCollections =
2307
+ CONTEXT_BLOCK_OUT === nodeContext ||
2308
+ CONTEXT_BLOCK_IN === nodeContext;
2309
+
2310
+ if (allowToSeek) {
2311
+ if (skipSeparationSpace(state, true, -1)) {
2312
+ atNewLine = true;
2313
+
2314
+ if (state.lineIndent > parentIndent) {
2315
+ indentStatus = 1;
2316
+ } else if (state.lineIndent === parentIndent) {
2317
+ indentStatus = 0;
2318
+ } else if (state.lineIndent < parentIndent) {
2319
+ indentStatus = -1;
2320
+ }
2321
+ }
2322
+ }
2323
+
2324
+ if (indentStatus === 1) {
2325
+ while (readTagProperty(state) || readAnchorProperty(state)) {
2326
+ if (skipSeparationSpace(state, true, -1)) {
2327
+ atNewLine = true;
2328
+ allowBlockCollections = allowBlockStyles;
2329
+
2330
+ if (state.lineIndent > parentIndent) {
2331
+ indentStatus = 1;
2332
+ } else if (state.lineIndent === parentIndent) {
2333
+ indentStatus = 0;
2334
+ } else if (state.lineIndent < parentIndent) {
2335
+ indentStatus = -1;
2336
+ }
2337
+ } else {
2338
+ allowBlockCollections = false;
2339
+ }
2340
+ }
2341
+ }
2342
+
2343
+ if (allowBlockCollections) {
2344
+ allowBlockCollections = atNewLine || allowCompact;
2345
+ }
2346
+
2347
+ if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
2348
+ if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
2349
+ flowIndent = parentIndent;
2350
+ } else {
2351
+ flowIndent = parentIndent + 1;
2352
+ }
2353
+
2354
+ blockIndent = state.position - state.lineStart;
2355
+
2356
+ if (indentStatus === 1) {
2357
+ if (allowBlockCollections &&
2358
+ (readBlockSequence(state, blockIndent) ||
2359
+ readBlockMapping(state, blockIndent, flowIndent)) ||
2360
+ readFlowCollection(state, flowIndent)) {
2361
+ hasContent = true;
2362
+ } else {
2363
+ if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||
2364
+ readSingleQuotedScalar(state, flowIndent) ||
2365
+ readDoubleQuotedScalar(state, flowIndent)) {
2366
+ hasContent = true;
2367
+
2368
+ } else if (readAlias(state)) {
2369
+ hasContent = true;
2370
+
2371
+ if (state.tag !== null || state.anchor !== null) {
2372
+ throwError(state, 'alias node should not have any properties');
2373
+ }
2374
+
2375
+ } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
2376
+ hasContent = true;
2377
+
2378
+ if (state.tag === null) {
2379
+ state.tag = '?';
2380
+ }
2381
+ }
2382
+
2383
+ if (state.anchor !== null) {
2384
+ state.anchorMap[state.anchor] = state.result;
2385
+ }
2386
+ }
2387
+ } else if (indentStatus === 0) {
2388
+ // Special case: block sequences are allowed to have same indentation level as the parent.
2389
+ // http://www.yaml.org/spec/1.2/spec.html#id2799784
2390
+ hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);
2391
+ }
2392
+ }
2393
+
2394
+ if (state.tag !== null && state.tag !== '!') {
2395
+ if (state.tag === '?') {
2396
+ // Implicit resolving is not allowed for non-scalar types, and '?'
2397
+ // non-specific tag is only automatically assigned to plain scalars.
2398
+ //
2399
+ // We only need to check kind conformity in case user explicitly assigns '?'
2400
+ // tag, for example like this: "!<?> [0]"
2401
+ //
2402
+ if (state.result !== null && state.kind !== 'scalar') {
2403
+ throwError(state, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state.kind + '"');
2404
+ }
2405
+
2406
+ for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
2407
+ type = state.implicitTypes[typeIndex];
2408
+
2409
+ if (type.resolve(state.result)) { // `state.result` updated in resolver if matched
2410
+ state.result = type.construct(state.result);
2411
+ state.tag = type.tag;
2412
+ if (state.anchor !== null) {
2413
+ state.anchorMap[state.anchor] = state.result;
2414
+ }
2415
+ break;
2416
+ }
2417
+ }
2418
+ } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {
2419
+ type = state.typeMap[state.kind || 'fallback'][state.tag];
2420
+
2421
+ if (state.result !== null && type.kind !== state.kind) {
2422
+ throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"');
2423
+ }
2424
+
2425
+ if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched
2426
+ throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');
2427
+ } else {
2428
+ state.result = type.construct(state.result);
2429
+ if (state.anchor !== null) {
2430
+ state.anchorMap[state.anchor] = state.result;
2431
+ }
2432
+ }
2433
+ } else {
2434
+ throwError(state, 'unknown tag !<' + state.tag + '>');
2435
+ }
2436
+ }
2437
+
2438
+ if (state.listener !== null) {
2439
+ state.listener('close', state);
2440
+ }
2441
+ return state.tag !== null || state.anchor !== null || hasContent;
2442
+ }
2443
+
2444
+ function readDocument(state) {
2445
+ var documentStart = state.position,
2446
+ _position,
2447
+ directiveName,
2448
+ directiveArgs,
2449
+ hasDirectives = false,
2450
+ ch;
2451
+
2452
+ state.version = null;
2453
+ state.checkLineBreaks = state.legacy;
2454
+ state.tagMap = {};
2455
+ state.anchorMap = {};
2456
+
2457
+ while ((ch = state.input.charCodeAt(state.position)) !== 0) {
2458
+ skipSeparationSpace(state, true, -1);
2459
+
2460
+ ch = state.input.charCodeAt(state.position);
2461
+
2462
+ if (state.lineIndent > 0 || ch !== 0x25/* % */) {
2463
+ break;
2464
+ }
2465
+
2466
+ hasDirectives = true;
2467
+ ch = state.input.charCodeAt(++state.position);
2468
+ _position = state.position;
2469
+
2470
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
2471
+ ch = state.input.charCodeAt(++state.position);
2472
+ }
2473
+
2474
+ directiveName = state.input.slice(_position, state.position);
2475
+ directiveArgs = [];
2476
+
2477
+ if (directiveName.length < 1) {
2478
+ throwError(state, 'directive name must not be less than one character in length');
2479
+ }
2480
+
2481
+ while (ch !== 0) {
2482
+ while (is_WHITE_SPACE(ch)) {
2483
+ ch = state.input.charCodeAt(++state.position);
2484
+ }
2485
+
2486
+ if (ch === 0x23/* # */) {
2487
+ do { ch = state.input.charCodeAt(++state.position); }
2488
+ while (ch !== 0 && !is_EOL(ch));
2489
+ break;
2490
+ }
2491
+
2492
+ if (is_EOL(ch)) break;
2493
+
2494
+ _position = state.position;
2495
+
2496
+ while (ch !== 0 && !is_WS_OR_EOL(ch)) {
2497
+ ch = state.input.charCodeAt(++state.position);
2498
+ }
2499
+
2500
+ directiveArgs.push(state.input.slice(_position, state.position));
2501
+ }
2502
+
2503
+ if (ch !== 0) readLineBreak(state);
2504
+
2505
+ if (_hasOwnProperty.call(directiveHandlers, directiveName)) {
2506
+ directiveHandlers[directiveName](state, directiveName, directiveArgs);
2507
+ } else {
2508
+ throwWarning(state, 'unknown document directive "' + directiveName + '"');
2509
+ }
2510
+ }
2511
+
2512
+ skipSeparationSpace(state, true, -1);
2513
+
2514
+ if (state.lineIndent === 0 &&
2515
+ state.input.charCodeAt(state.position) === 0x2D/* - */ &&
2516
+ state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&
2517
+ state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {
2518
+ state.position += 3;
2519
+ skipSeparationSpace(state, true, -1);
2520
+
2521
+ } else if (hasDirectives) {
2522
+ throwError(state, 'directives end mark is expected');
2523
+ }
2524
+
2525
+ composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
2526
+ skipSeparationSpace(state, true, -1);
2527
+
2528
+ if (state.checkLineBreaks &&
2529
+ PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {
2530
+ throwWarning(state, 'non-ASCII line breaks are interpreted as content');
2531
+ }
2532
+
2533
+ state.documents.push(state.result);
2534
+
2535
+ if (state.position === state.lineStart && testDocumentSeparator(state)) {
2536
+
2537
+ if (state.input.charCodeAt(state.position) === 0x2E/* . */) {
2538
+ state.position += 3;
2539
+ skipSeparationSpace(state, true, -1);
2540
+ }
2541
+ return;
2542
+ }
2543
+
2544
+ if (state.position < (state.length - 1)) {
2545
+ throwError(state, 'end of the stream or a document separator is expected');
2546
+ } else {
2547
+ return;
2548
+ }
2549
+ }
2550
+
2551
+
2552
+ function loadDocuments(input, options) {
2553
+ input = String(input);
2554
+ options = options || {};
2555
+
2556
+ if (input.length !== 0) {
2557
+
2558
+ // Add tailing `\n` if not exists
2559
+ if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&
2560
+ input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {
2561
+ input += '\n';
2562
+ }
2563
+
2564
+ // Strip BOM
2565
+ if (input.charCodeAt(0) === 0xFEFF) {
2566
+ input = input.slice(1);
2567
+ }
2568
+ }
2569
+
2570
+ var state = new State(input, options);
2571
+
2572
+ var nullpos = input.indexOf('\0');
2573
+
2574
+ if (nullpos !== -1) {
2575
+ state.position = nullpos;
2576
+ throwError(state, 'null byte is not allowed in input');
2577
+ }
2578
+
2579
+ // Use 0 as string terminator. That significantly simplifies bounds check.
2580
+ state.input += '\0';
2581
+
2582
+ while (state.input.charCodeAt(state.position) === 0x20/* Space */) {
2583
+ state.lineIndent += 1;
2584
+ state.position += 1;
2585
+ }
2586
+
2587
+ while (state.position < (state.length - 1)) {
2588
+ readDocument(state);
2589
+ }
2590
+
2591
+ return state.documents;
2592
+ }
2593
+
2594
+
2595
+ function loadAll(input, iterator, options) {
2596
+ if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {
2597
+ options = iterator;
2598
+ iterator = null;
2599
+ }
2600
+
2601
+ var documents = loadDocuments(input, options);
2602
+
2603
+ if (typeof iterator !== 'function') {
2604
+ return documents;
2605
+ }
2606
+
2607
+ for (var index = 0, length = documents.length; index < length; index += 1) {
2608
+ iterator(documents[index]);
2609
+ }
2610
+ }
2611
+
2612
+
2613
+ function load(input, options) {
2614
+ var documents = loadDocuments(input, options);
2615
+
2616
+ if (documents.length === 0) {
2617
+ /*eslint-disable no-undefined*/
2618
+ return undefined;
2619
+ } else if (documents.length === 1) {
2620
+ return documents[0];
2621
+ }
2622
+ throw new YAMLException('expected a single document in the stream, but found more');
2623
+ }
2624
+
2625
+
2626
+ function safeLoadAll(input, iterator, options) {
2627
+ if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {
2628
+ options = iterator;
2629
+ iterator = null;
2630
+ }
2631
+
2632
+ return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));
2633
+ }
2634
+
2635
+
2636
+ function safeLoad(input, options) {
2637
+ return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));
2638
+ }
2639
+
2640
+
2641
+ module.exports.loadAll = loadAll;
2642
+ module.exports.load = load;
2643
+ module.exports.safeLoadAll = safeLoadAll;
2644
+ module.exports.safeLoad = safeLoad;
2645
+
2646
+ },{"./common":2,"./exception":4,"./mark":6,"./schema/default_full":9,"./schema/default_safe":10}],6:[function(require,module,exports){
2647
+ 'use strict';
2648
+
2649
+
2650
+ var common = require('./common');
2651
+
2652
+
2653
+ function Mark(name, buffer, position, line, column) {
2654
+ this.name = name;
2655
+ this.buffer = buffer;
2656
+ this.position = position;
2657
+ this.line = line;
2658
+ this.column = column;
2659
+ }
2660
+
2661
+
2662
+ Mark.prototype.getSnippet = function getSnippet(indent, maxLength) {
2663
+ var head, start, tail, end, snippet;
2664
+
2665
+ if (!this.buffer) return null;
2666
+
2667
+ indent = indent || 4;
2668
+ maxLength = maxLength || 75;
2669
+
2670
+ head = '';
2671
+ start = this.position;
2672
+
2673
+ while (start > 0 && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {
2674
+ start -= 1;
2675
+ if (this.position - start > (maxLength / 2 - 1)) {
2676
+ head = ' ... ';
2677
+ start += 5;
2678
+ break;
2679
+ }
2680
+ }
2681
+
2682
+ tail = '';
2683
+ end = this.position;
2684
+
2685
+ while (end < this.buffer.length && '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end)) === -1) {
2686
+ end += 1;
2687
+ if (end - this.position > (maxLength / 2 - 1)) {
2688
+ tail = ' ... ';
2689
+ end -= 5;
2690
+ break;
2691
+ }
2692
+ }
2693
+
2694
+ snippet = this.buffer.slice(start, end);
2695
+
2696
+ return common.repeat(' ', indent) + head + snippet + tail + '\n' +
2697
+ common.repeat(' ', indent + this.position - start + head.length) + '^';
2698
+ };
2699
+
2700
+
2701
+ Mark.prototype.toString = function toString(compact) {
2702
+ var snippet, where = '';
2703
+
2704
+ if (this.name) {
2705
+ where += 'in "' + this.name + '" ';
2706
+ }
2707
+
2708
+ where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);
2709
+
2710
+ if (!compact) {
2711
+ snippet = this.getSnippet();
2712
+
2713
+ if (snippet) {
2714
+ where += ':\n' + snippet;
2715
+ }
2716
+ }
2717
+
2718
+ return where;
2719
+ };
2720
+
2721
+
2722
+ module.exports = Mark;
2723
+
2724
+ },{"./common":2}],7:[function(require,module,exports){
2725
+ 'use strict';
2726
+
2727
+ /*eslint-disable max-len*/
2728
+
2729
+ var common = require('./common');
2730
+ var YAMLException = require('./exception');
2731
+ var Type = require('./type');
2732
+
2733
+
2734
+ function compileList(schema, name, result) {
2735
+ var exclude = [];
2736
+
2737
+ schema.include.forEach(function (includedSchema) {
2738
+ result = compileList(includedSchema, name, result);
2739
+ });
2740
+
2741
+ schema[name].forEach(function (currentType) {
2742
+ result.forEach(function (previousType, previousIndex) {
2743
+ if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {
2744
+ exclude.push(previousIndex);
2745
+ }
2746
+ });
2747
+
2748
+ result.push(currentType);
2749
+ });
2750
+
2751
+ return result.filter(function (type, index) {
2752
+ return exclude.indexOf(index) === -1;
2753
+ });
2754
+ }
2755
+
2756
+
2757
+ function compileMap(/* lists... */) {
2758
+ var result = {
2759
+ scalar: {},
2760
+ sequence: {},
2761
+ mapping: {},
2762
+ fallback: {}
2763
+ }, index, length;
2764
+
2765
+ function collectType(type) {
2766
+ result[type.kind][type.tag] = result['fallback'][type.tag] = type;
2767
+ }
2768
+
2769
+ for (index = 0, length = arguments.length; index < length; index += 1) {
2770
+ arguments[index].forEach(collectType);
2771
+ }
2772
+ return result;
2773
+ }
2774
+
2775
+
2776
+ function Schema(definition) {
2777
+ this.include = definition.include || [];
2778
+ this.implicit = definition.implicit || [];
2779
+ this.explicit = definition.explicit || [];
2780
+
2781
+ this.implicit.forEach(function (type) {
2782
+ if (type.loadKind && type.loadKind !== 'scalar') {
2783
+ throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');
2784
+ }
2785
+ });
2786
+
2787
+ this.compiledImplicit = compileList(this, 'implicit', []);
2788
+ this.compiledExplicit = compileList(this, 'explicit', []);
2789
+ this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);
2790
+ }
2791
+
2792
+
2793
+ Schema.DEFAULT = null;
2794
+
2795
+
2796
+ Schema.create = function createSchema() {
2797
+ var schemas, types;
2798
+
2799
+ switch (arguments.length) {
2800
+ case 1:
2801
+ schemas = Schema.DEFAULT;
2802
+ types = arguments[0];
2803
+ break;
2804
+
2805
+ case 2:
2806
+ schemas = arguments[0];
2807
+ types = arguments[1];
2808
+ break;
2809
+
2810
+ default:
2811
+ throw new YAMLException('Wrong number of arguments for Schema.create function');
2812
+ }
2813
+
2814
+ schemas = common.toArray(schemas);
2815
+ types = common.toArray(types);
2816
+
2817
+ if (!schemas.every(function (schema) { return schema instanceof Schema; })) {
2818
+ throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');
2819
+ }
2820
+
2821
+ if (!types.every(function (type) { return type instanceof Type; })) {
2822
+ throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');
2823
+ }
2824
+
2825
+ return new Schema({
2826
+ include: schemas,
2827
+ explicit: types
2828
+ });
2829
+ };
2830
+
2831
+
2832
+ module.exports = Schema;
2833
+
2834
+ },{"./common":2,"./exception":4,"./type":13}],8:[function(require,module,exports){
2835
+ // Standard YAML's Core schema.
2836
+ // http://www.yaml.org/spec/1.2/spec.html#id2804923
2837
+ //
2838
+ // NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
2839
+ // So, Core schema has no distinctions from JSON schema is JS-YAML.
2840
+
2841
+
2842
+ 'use strict';
2843
+
2844
+
2845
+ var Schema = require('../schema');
2846
+
2847
+
2848
+ module.exports = new Schema({
2849
+ include: [
2850
+ require('./json')
2851
+ ]
2852
+ });
2853
+
2854
+ },{"../schema":7,"./json":12}],9:[function(require,module,exports){
2855
+ // JS-YAML's default schema for `load` function.
2856
+ // It is not described in the YAML specification.
2857
+ //
2858
+ // This schema is based on JS-YAML's default safe schema and includes
2859
+ // JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.
2860
+ //
2861
+ // Also this schema is used as default base schema at `Schema.create` function.
2862
+
2863
+
2864
+ 'use strict';
2865
+
2866
+
2867
+ var Schema = require('../schema');
2868
+
2869
+
2870
+ module.exports = Schema.DEFAULT = new Schema({
2871
+ include: [
2872
+ require('./default_safe')
2873
+ ],
2874
+ explicit: [
2875
+ require('../type/js/undefined'),
2876
+ require('../type/js/regexp'),
2877
+ require('../type/js/function')
2878
+ ]
2879
+ });
2880
+
2881
+ },{"../schema":7,"../type/js/function":18,"../type/js/regexp":19,"../type/js/undefined":20,"./default_safe":10}],10:[function(require,module,exports){
2882
+ // JS-YAML's default schema for `safeLoad` function.
2883
+ // It is not described in the YAML specification.
2884
+ //
2885
+ // This schema is based on standard YAML's Core schema and includes most of
2886
+ // extra types described at YAML tag repository. (http://yaml.org/type/)
2887
+
2888
+
2889
+ 'use strict';
2890
+
2891
+
2892
+ var Schema = require('../schema');
2893
+
2894
+
2895
+ module.exports = new Schema({
2896
+ include: [
2897
+ require('./core')
2898
+ ],
2899
+ implicit: [
2900
+ require('../type/timestamp'),
2901
+ require('../type/merge')
2902
+ ],
2903
+ explicit: [
2904
+ require('../type/binary'),
2905
+ require('../type/omap'),
2906
+ require('../type/pairs'),
2907
+ require('../type/set')
2908
+ ]
2909
+ });
2910
+
2911
+ },{"../schema":7,"../type/binary":14,"../type/merge":22,"../type/omap":24,"../type/pairs":25,"../type/set":27,"../type/timestamp":29,"./core":8}],11:[function(require,module,exports){
2912
+ // Standard YAML's Failsafe schema.
2913
+ // http://www.yaml.org/spec/1.2/spec.html#id2802346
2914
+
2915
+
2916
+ 'use strict';
2917
+
2918
+
2919
+ var Schema = require('../schema');
2920
+
2921
+
2922
+ module.exports = new Schema({
2923
+ explicit: [
2924
+ require('../type/str'),
2925
+ require('../type/seq'),
2926
+ require('../type/map')
2927
+ ]
2928
+ });
2929
+
2930
+ },{"../schema":7,"../type/map":21,"../type/seq":26,"../type/str":28}],12:[function(require,module,exports){
2931
+ // Standard YAML's JSON schema.
2932
+ // http://www.yaml.org/spec/1.2/spec.html#id2803231
2933
+ //
2934
+ // NOTE: JS-YAML does not support schema-specific tag resolution restrictions.
2935
+ // So, this schema is not such strict as defined in the YAML specification.
2936
+ // It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.
2937
+
2938
+
2939
+ 'use strict';
2940
+
2941
+
2942
+ var Schema = require('../schema');
2943
+
2944
+
2945
+ module.exports = new Schema({
2946
+ include: [
2947
+ require('./failsafe')
2948
+ ],
2949
+ implicit: [
2950
+ require('../type/null'),
2951
+ require('../type/bool'),
2952
+ require('../type/int'),
2953
+ require('../type/float')
2954
+ ]
2955
+ });
2956
+
2957
+ },{"../schema":7,"../type/bool":15,"../type/float":16,"../type/int":17,"../type/null":23,"./failsafe":11}],13:[function(require,module,exports){
2958
+ 'use strict';
2959
+
2960
+ var YAMLException = require('./exception');
2961
+
2962
+ var TYPE_CONSTRUCTOR_OPTIONS = [
2963
+ 'kind',
2964
+ 'resolve',
2965
+ 'construct',
2966
+ 'instanceOf',
2967
+ 'predicate',
2968
+ 'represent',
2969
+ 'defaultStyle',
2970
+ 'styleAliases'
2971
+ ];
2972
+
2973
+ var YAML_NODE_KINDS = [
2974
+ 'scalar',
2975
+ 'sequence',
2976
+ 'mapping'
2977
+ ];
2978
+
2979
+ function compileStyleAliases(map) {
2980
+ var result = {};
2981
+
2982
+ if (map !== null) {
2983
+ Object.keys(map).forEach(function (style) {
2984
+ map[style].forEach(function (alias) {
2985
+ result[String(alias)] = style;
2986
+ });
2987
+ });
2988
+ }
2989
+
2990
+ return result;
2991
+ }
2992
+
2993
+ function Type(tag, options) {
2994
+ options = options || {};
2995
+
2996
+ Object.keys(options).forEach(function (name) {
2997
+ if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {
2998
+ throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.');
2999
+ }
3000
+ });
3001
+
3002
+ // TODO: Add tag format check.
3003
+ this.tag = tag;
3004
+ this.kind = options['kind'] || null;
3005
+ this.resolve = options['resolve'] || function () { return true; };
3006
+ this.construct = options['construct'] || function (data) { return data; };
3007
+ this.instanceOf = options['instanceOf'] || null;
3008
+ this.predicate = options['predicate'] || null;
3009
+ this.represent = options['represent'] || null;
3010
+ this.defaultStyle = options['defaultStyle'] || null;
3011
+ this.styleAliases = compileStyleAliases(options['styleAliases'] || null);
3012
+
3013
+ if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
3014
+ throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
3015
+ }
3016
+ }
3017
+
3018
+ module.exports = Type;
3019
+
3020
+ },{"./exception":4}],14:[function(require,module,exports){
3021
+ 'use strict';
3022
+
3023
+ /*eslint-disable no-bitwise*/
3024
+
3025
+ var NodeBuffer;
3026
+
3027
+ try {
3028
+ // A trick for browserified version, to not include `Buffer` shim
3029
+ var _require = require;
3030
+ NodeBuffer = _require('buffer').Buffer;
3031
+ } catch (__) {}
3032
+
3033
+ var Type = require('../type');
3034
+
3035
+
3036
+ // [ 64, 65, 66 ] -> [ padding, CR, LF ]
3037
+ var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r';
3038
+
3039
+
3040
+ function resolveYamlBinary(data) {
3041
+ if (data === null) return false;
3042
+
3043
+ var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;
3044
+
3045
+ // Convert one by one.
3046
+ for (idx = 0; idx < max; idx++) {
3047
+ code = map.indexOf(data.charAt(idx));
3048
+
3049
+ // Skip CR/LF
3050
+ if (code > 64) continue;
3051
+
3052
+ // Fail on illegal characters
3053
+ if (code < 0) return false;
3054
+
3055
+ bitlen += 6;
3056
+ }
3057
+
3058
+ // If there are any bits left, source was corrupted
3059
+ return (bitlen % 8) === 0;
3060
+ }
3061
+
3062
+ function constructYamlBinary(data) {
3063
+ var idx, tailbits,
3064
+ input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan
3065
+ max = input.length,
3066
+ map = BASE64_MAP,
3067
+ bits = 0,
3068
+ result = [];
3069
+
3070
+ // Collect by 6*4 bits (3 bytes)
3071
+
3072
+ for (idx = 0; idx < max; idx++) {
3073
+ if ((idx % 4 === 0) && idx) {
3074
+ result.push((bits >> 16) & 0xFF);
3075
+ result.push((bits >> 8) & 0xFF);
3076
+ result.push(bits & 0xFF);
3077
+ }
3078
+
3079
+ bits = (bits << 6) | map.indexOf(input.charAt(idx));
3080
+ }
3081
+
3082
+ // Dump tail
3083
+
3084
+ tailbits = (max % 4) * 6;
3085
+
3086
+ if (tailbits === 0) {
3087
+ result.push((bits >> 16) & 0xFF);
3088
+ result.push((bits >> 8) & 0xFF);
3089
+ result.push(bits & 0xFF);
3090
+ } else if (tailbits === 18) {
3091
+ result.push((bits >> 10) & 0xFF);
3092
+ result.push((bits >> 2) & 0xFF);
3093
+ } else if (tailbits === 12) {
3094
+ result.push((bits >> 4) & 0xFF);
3095
+ }
3096
+
3097
+ // Wrap into Buffer for NodeJS and leave Array for browser
3098
+ if (NodeBuffer) {
3099
+ // Support node 6.+ Buffer API when available
3100
+ return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);
3101
+ }
3102
+
3103
+ return result;
3104
+ }
3105
+
3106
+ function representYamlBinary(object /*, style*/) {
3107
+ var result = '', bits = 0, idx, tail,
3108
+ max = object.length,
3109
+ map = BASE64_MAP;
3110
+
3111
+ // Convert every three bytes to 4 ASCII characters.
3112
+
3113
+ for (idx = 0; idx < max; idx++) {
3114
+ if ((idx % 3 === 0) && idx) {
3115
+ result += map[(bits >> 18) & 0x3F];
3116
+ result += map[(bits >> 12) & 0x3F];
3117
+ result += map[(bits >> 6) & 0x3F];
3118
+ result += map[bits & 0x3F];
3119
+ }
3120
+
3121
+ bits = (bits << 8) + object[idx];
3122
+ }
3123
+
3124
+ // Dump tail
3125
+
3126
+ tail = max % 3;
3127
+
3128
+ if (tail === 0) {
3129
+ result += map[(bits >> 18) & 0x3F];
3130
+ result += map[(bits >> 12) & 0x3F];
3131
+ result += map[(bits >> 6) & 0x3F];
3132
+ result += map[bits & 0x3F];
3133
+ } else if (tail === 2) {
3134
+ result += map[(bits >> 10) & 0x3F];
3135
+ result += map[(bits >> 4) & 0x3F];
3136
+ result += map[(bits << 2) & 0x3F];
3137
+ result += map[64];
3138
+ } else if (tail === 1) {
3139
+ result += map[(bits >> 2) & 0x3F];
3140
+ result += map[(bits << 4) & 0x3F];
3141
+ result += map[64];
3142
+ result += map[64];
3143
+ }
3144
+
3145
+ return result;
3146
+ }
3147
+
3148
+ function isBinary(object) {
3149
+ return NodeBuffer && NodeBuffer.isBuffer(object);
3150
+ }
3151
+
3152
+ module.exports = new Type('tag:yaml.org,2002:binary', {
3153
+ kind: 'scalar',
3154
+ resolve: resolveYamlBinary,
3155
+ construct: constructYamlBinary,
3156
+ predicate: isBinary,
3157
+ represent: representYamlBinary
3158
+ });
3159
+
3160
+ },{"../type":13}],15:[function(require,module,exports){
3161
+ 'use strict';
3162
+
3163
+ var Type = require('../type');
3164
+
3165
+ function resolveYamlBoolean(data) {
3166
+ if (data === null) return false;
3167
+
3168
+ var max = data.length;
3169
+
3170
+ return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||
3171
+ (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));
3172
+ }
3173
+
3174
+ function constructYamlBoolean(data) {
3175
+ return data === 'true' ||
3176
+ data === 'True' ||
3177
+ data === 'TRUE';
3178
+ }
3179
+
3180
+ function isBoolean(object) {
3181
+ return Object.prototype.toString.call(object) === '[object Boolean]';
3182
+ }
3183
+
3184
+ module.exports = new Type('tag:yaml.org,2002:bool', {
3185
+ kind: 'scalar',
3186
+ resolve: resolveYamlBoolean,
3187
+ construct: constructYamlBoolean,
3188
+ predicate: isBoolean,
3189
+ represent: {
3190
+ lowercase: function (object) { return object ? 'true' : 'false'; },
3191
+ uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },
3192
+ camelcase: function (object) { return object ? 'True' : 'False'; }
3193
+ },
3194
+ defaultStyle: 'lowercase'
3195
+ });
3196
+
3197
+ },{"../type":13}],16:[function(require,module,exports){
3198
+ 'use strict';
3199
+
3200
+ var common = require('../common');
3201
+ var Type = require('../type');
3202
+
3203
+ var YAML_FLOAT_PATTERN = new RegExp(
3204
+ // 2.5e4, 2.5 and integers
3205
+ '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +
3206
+ // .2e4, .2
3207
+ // special case, seems not from spec
3208
+ '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +
3209
+ // 20:59
3210
+ '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' +
3211
+ // .inf
3212
+ '|[-+]?\\.(?:inf|Inf|INF)' +
3213
+ // .nan
3214
+ '|\\.(?:nan|NaN|NAN))$');
3215
+
3216
+ function resolveYamlFloat(data) {
3217
+ if (data === null) return false;
3218
+
3219
+ if (!YAML_FLOAT_PATTERN.test(data) ||
3220
+ // Quick hack to not allow integers end with `_`
3221
+ // Probably should update regexp & check speed
3222
+ data[data.length - 1] === '_') {
3223
+ return false;
3224
+ }
3225
+
3226
+ return true;
3227
+ }
3228
+
3229
+ function constructYamlFloat(data) {
3230
+ var value, sign, base, digits;
3231
+
3232
+ value = data.replace(/_/g, '').toLowerCase();
3233
+ sign = value[0] === '-' ? -1 : 1;
3234
+ digits = [];
3235
+
3236
+ if ('+-'.indexOf(value[0]) >= 0) {
3237
+ value = value.slice(1);
3238
+ }
3239
+
3240
+ if (value === '.inf') {
3241
+ return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
3242
+
3243
+ } else if (value === '.nan') {
3244
+ return NaN;
3245
+
3246
+ } else if (value.indexOf(':') >= 0) {
3247
+ value.split(':').forEach(function (v) {
3248
+ digits.unshift(parseFloat(v, 10));
3249
+ });
3250
+
3251
+ value = 0.0;
3252
+ base = 1;
3253
+
3254
+ digits.forEach(function (d) {
3255
+ value += d * base;
3256
+ base *= 60;
3257
+ });
3258
+
3259
+ return sign * value;
3260
+
3261
+ }
3262
+ return sign * parseFloat(value, 10);
3263
+ }
3264
+
3265
+
3266
+ var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
3267
+
3268
+ function representYamlFloat(object, style) {
3269
+ var res;
3270
+
3271
+ if (isNaN(object)) {
3272
+ switch (style) {
3273
+ case 'lowercase': return '.nan';
3274
+ case 'uppercase': return '.NAN';
3275
+ case 'camelcase': return '.NaN';
3276
+ }
3277
+ } else if (Number.POSITIVE_INFINITY === object) {
3278
+ switch (style) {
3279
+ case 'lowercase': return '.inf';
3280
+ case 'uppercase': return '.INF';
3281
+ case 'camelcase': return '.Inf';
3282
+ }
3283
+ } else if (Number.NEGATIVE_INFINITY === object) {
3284
+ switch (style) {
3285
+ case 'lowercase': return '-.inf';
3286
+ case 'uppercase': return '-.INF';
3287
+ case 'camelcase': return '-.Inf';
3288
+ }
3289
+ } else if (common.isNegativeZero(object)) {
3290
+ return '-0.0';
3291
+ }
3292
+
3293
+ res = object.toString(10);
3294
+
3295
+ // JS stringifier can build scientific format without dots: 5e-100,
3296
+ // while YAML requres dot: 5.e-100. Fix it with simple hack
3297
+
3298
+ return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;
3299
+ }
3300
+
3301
+ function isFloat(object) {
3302
+ return (Object.prototype.toString.call(object) === '[object Number]') &&
3303
+ (object % 1 !== 0 || common.isNegativeZero(object));
3304
+ }
3305
+
3306
+ module.exports = new Type('tag:yaml.org,2002:float', {
3307
+ kind: 'scalar',
3308
+ resolve: resolveYamlFloat,
3309
+ construct: constructYamlFloat,
3310
+ predicate: isFloat,
3311
+ represent: representYamlFloat,
3312
+ defaultStyle: 'lowercase'
3313
+ });
3314
+
3315
+ },{"../common":2,"../type":13}],17:[function(require,module,exports){
3316
+ 'use strict';
3317
+
3318
+ var common = require('../common');
3319
+ var Type = require('../type');
3320
+
3321
+ function isHexCode(c) {
3322
+ return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||
3323
+ ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||
3324
+ ((0x61/* a */ <= c) && (c <= 0x66/* f */));
3325
+ }
3326
+
3327
+ function isOctCode(c) {
3328
+ return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));
3329
+ }
3330
+
3331
+ function isDecCode(c) {
3332
+ return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));
3333
+ }
3334
+
3335
+ function resolveYamlInteger(data) {
3336
+ if (data === null) return false;
3337
+
3338
+ var max = data.length,
3339
+ index = 0,
3340
+ hasDigits = false,
3341
+ ch;
3342
+
3343
+ if (!max) return false;
3344
+
3345
+ ch = data[index];
3346
+
3347
+ // sign
3348
+ if (ch === '-' || ch === '+') {
3349
+ ch = data[++index];
3350
+ }
3351
+
3352
+ if (ch === '0') {
3353
+ // 0
3354
+ if (index + 1 === max) return true;
3355
+ ch = data[++index];
3356
+
3357
+ // base 2, base 8, base 16
3358
+
3359
+ if (ch === 'b') {
3360
+ // base 2
3361
+ index++;
3362
+
3363
+ for (; index < max; index++) {
3364
+ ch = data[index];
3365
+ if (ch === '_') continue;
3366
+ if (ch !== '0' && ch !== '1') return false;
3367
+ hasDigits = true;
3368
+ }
3369
+ return hasDigits && ch !== '_';
3370
+ }
3371
+
3372
+
3373
+ if (ch === 'x') {
3374
+ // base 16
3375
+ index++;
3376
+
3377
+ for (; index < max; index++) {
3378
+ ch = data[index];
3379
+ if (ch === '_') continue;
3380
+ if (!isHexCode(data.charCodeAt(index))) return false;
3381
+ hasDigits = true;
3382
+ }
3383
+ return hasDigits && ch !== '_';
3384
+ }
3385
+
3386
+ // base 8
3387
+ for (; index < max; index++) {
3388
+ ch = data[index];
3389
+ if (ch === '_') continue;
3390
+ if (!isOctCode(data.charCodeAt(index))) return false;
3391
+ hasDigits = true;
3392
+ }
3393
+ return hasDigits && ch !== '_';
3394
+ }
3395
+
3396
+ // base 10 (except 0) or base 60
3397
+
3398
+ // value should not start with `_`;
3399
+ if (ch === '_') return false;
3400
+
3401
+ for (; index < max; index++) {
3402
+ ch = data[index];
3403
+ if (ch === '_') continue;
3404
+ if (ch === ':') break;
3405
+ if (!isDecCode(data.charCodeAt(index))) {
3406
+ return false;
3407
+ }
3408
+ hasDigits = true;
3409
+ }
3410
+
3411
+ // Should have digits and should not end with `_`
3412
+ if (!hasDigits || ch === '_') return false;
3413
+
3414
+ // if !base60 - done;
3415
+ if (ch !== ':') return true;
3416
+
3417
+ // base60 almost not used, no needs to optimize
3418
+ return /^(:[0-5]?[0-9])+$/.test(data.slice(index));
3419
+ }
3420
+
3421
+ function constructYamlInteger(data) {
3422
+ var value = data, sign = 1, ch, base, digits = [];
3423
+
3424
+ if (value.indexOf('_') !== -1) {
3425
+ value = value.replace(/_/g, '');
3426
+ }
3427
+
3428
+ ch = value[0];
3429
+
3430
+ if (ch === '-' || ch === '+') {
3431
+ if (ch === '-') sign = -1;
3432
+ value = value.slice(1);
3433
+ ch = value[0];
3434
+ }
3435
+
3436
+ if (value === '0') return 0;
3437
+
3438
+ if (ch === '0') {
3439
+ if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);
3440
+ if (value[1] === 'x') return sign * parseInt(value, 16);
3441
+ return sign * parseInt(value, 8);
3442
+ }
3443
+
3444
+ if (value.indexOf(':') !== -1) {
3445
+ value.split(':').forEach(function (v) {
3446
+ digits.unshift(parseInt(v, 10));
3447
+ });
3448
+
3449
+ value = 0;
3450
+ base = 1;
3451
+
3452
+ digits.forEach(function (d) {
3453
+ value += (d * base);
3454
+ base *= 60;
3455
+ });
3456
+
3457
+ return sign * value;
3458
+
3459
+ }
3460
+
3461
+ return sign * parseInt(value, 10);
3462
+ }
3463
+
3464
+ function isInteger(object) {
3465
+ return (Object.prototype.toString.call(object)) === '[object Number]' &&
3466
+ (object % 1 === 0 && !common.isNegativeZero(object));
3467
+ }
3468
+
3469
+ module.exports = new Type('tag:yaml.org,2002:int', {
3470
+ kind: 'scalar',
3471
+ resolve: resolveYamlInteger,
3472
+ construct: constructYamlInteger,
3473
+ predicate: isInteger,
3474
+ represent: {
3475
+ binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },
3476
+ octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },
3477
+ decimal: function (obj) { return obj.toString(10); },
3478
+ /* eslint-disable max-len */
3479
+ hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }
3480
+ },
3481
+ defaultStyle: 'decimal',
3482
+ styleAliases: {
3483
+ binary: [ 2, 'bin' ],
3484
+ octal: [ 8, 'oct' ],
3485
+ decimal: [ 10, 'dec' ],
3486
+ hexadecimal: [ 16, 'hex' ]
3487
+ }
3488
+ });
3489
+
3490
+ },{"../common":2,"../type":13}],18:[function(require,module,exports){
3491
+ 'use strict';
3492
+
3493
+ var esprima;
3494
+
3495
+ // Browserified version does not have esprima
3496
+ //
3497
+ // 1. For node.js just require module as deps
3498
+ // 2. For browser try to require mudule via external AMD system.
3499
+ // If not found - try to fallback to window.esprima. If not
3500
+ // found too - then fail to parse.
3501
+ //
3502
+ try {
3503
+ // workaround to exclude package from browserify list.
3504
+ var _require = require;
3505
+ esprima = _require('esprima');
3506
+ } catch (_) {
3507
+ /* eslint-disable no-redeclare */
3508
+ /* global window */
3509
+ if (typeof window !== 'undefined') esprima = window.esprima;
3510
+ }
3511
+
3512
+ var Type = require('../../type');
3513
+
3514
+ function resolveJavascriptFunction(data) {
3515
+ if (data === null) return false;
3516
+
3517
+ try {
3518
+ var source = '(' + data + ')',
3519
+ ast = esprima.parse(source, { range: true });
3520
+
3521
+ if (ast.type !== 'Program' ||
3522
+ ast.body.length !== 1 ||
3523
+ ast.body[0].type !== 'ExpressionStatement' ||
3524
+ (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
3525
+ ast.body[0].expression.type !== 'FunctionExpression')) {
3526
+ return false;
3527
+ }
3528
+
3529
+ return true;
3530
+ } catch (err) {
3531
+ return false;
3532
+ }
3533
+ }
3534
+
3535
+ function constructJavascriptFunction(data) {
3536
+ /*jslint evil:true*/
3537
+
3538
+ var source = '(' + data + ')',
3539
+ ast = esprima.parse(source, { range: true }),
3540
+ params = [],
3541
+ body;
3542
+
3543
+ if (ast.type !== 'Program' ||
3544
+ ast.body.length !== 1 ||
3545
+ ast.body[0].type !== 'ExpressionStatement' ||
3546
+ (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&
3547
+ ast.body[0].expression.type !== 'FunctionExpression')) {
3548
+ throw new Error('Failed to resolve function');
3549
+ }
3550
+
3551
+ ast.body[0].expression.params.forEach(function (param) {
3552
+ params.push(param.name);
3553
+ });
3554
+
3555
+ body = ast.body[0].expression.body.range;
3556
+
3557
+ // Esprima's ranges include the first '{' and the last '}' characters on
3558
+ // function expressions. So cut them out.
3559
+ if (ast.body[0].expression.body.type === 'BlockStatement') {
3560
+ /*eslint-disable no-new-func*/
3561
+ return new Function(params, source.slice(body[0] + 1, body[1] - 1));
3562
+ }
3563
+ // ES6 arrow functions can omit the BlockStatement. In that case, just return
3564
+ // the body.
3565
+ /*eslint-disable no-new-func*/
3566
+ return new Function(params, 'return ' + source.slice(body[0], body[1]));
3567
+ }
3568
+
3569
+ function representJavascriptFunction(object /*, style*/) {
3570
+ return object.toString();
3571
+ }
3572
+
3573
+ function isFunction(object) {
3574
+ return Object.prototype.toString.call(object) === '[object Function]';
3575
+ }
3576
+
3577
+ module.exports = new Type('tag:yaml.org,2002:js/function', {
3578
+ kind: 'scalar',
3579
+ resolve: resolveJavascriptFunction,
3580
+ construct: constructJavascriptFunction,
3581
+ predicate: isFunction,
3582
+ represent: representJavascriptFunction
3583
+ });
3584
+
3585
+ },{"../../type":13}],19:[function(require,module,exports){
3586
+ 'use strict';
3587
+
3588
+ var Type = require('../../type');
3589
+
3590
+ function resolveJavascriptRegExp(data) {
3591
+ if (data === null) return false;
3592
+ if (data.length === 0) return false;
3593
+
3594
+ var regexp = data,
3595
+ tail = /\/([gim]*)$/.exec(data),
3596
+ modifiers = '';
3597
+
3598
+ // if regexp starts with '/' it can have modifiers and must be properly closed
3599
+ // `/foo/gim` - modifiers tail can be maximum 3 chars
3600
+ if (regexp[0] === '/') {
3601
+ if (tail) modifiers = tail[1];
3602
+
3603
+ if (modifiers.length > 3) return false;
3604
+ // if expression starts with /, is should be properly terminated
3605
+ if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;
3606
+ }
3607
+
3608
+ return true;
3609
+ }
3610
+
3611
+ function constructJavascriptRegExp(data) {
3612
+ var regexp = data,
3613
+ tail = /\/([gim]*)$/.exec(data),
3614
+ modifiers = '';
3615
+
3616
+ // `/foo/gim` - tail can be maximum 4 chars
3617
+ if (regexp[0] === '/') {
3618
+ if (tail) modifiers = tail[1];
3619
+ regexp = regexp.slice(1, regexp.length - modifiers.length - 1);
3620
+ }
3621
+
3622
+ return new RegExp(regexp, modifiers);
3623
+ }
3624
+
3625
+ function representJavascriptRegExp(object /*, style*/) {
3626
+ var result = '/' + object.source + '/';
3627
+
3628
+ if (object.global) result += 'g';
3629
+ if (object.multiline) result += 'm';
3630
+ if (object.ignoreCase) result += 'i';
3631
+
3632
+ return result;
3633
+ }
3634
+
3635
+ function isRegExp(object) {
3636
+ return Object.prototype.toString.call(object) === '[object RegExp]';
3637
+ }
3638
+
3639
+ module.exports = new Type('tag:yaml.org,2002:js/regexp', {
3640
+ kind: 'scalar',
3641
+ resolve: resolveJavascriptRegExp,
3642
+ construct: constructJavascriptRegExp,
3643
+ predicate: isRegExp,
3644
+ represent: representJavascriptRegExp
3645
+ });
3646
+
3647
+ },{"../../type":13}],20:[function(require,module,exports){
3648
+ 'use strict';
3649
+
3650
+ var Type = require('../../type');
3651
+
3652
+ function resolveJavascriptUndefined() {
3653
+ return true;
3654
+ }
3655
+
3656
+ function constructJavascriptUndefined() {
3657
+ /*eslint-disable no-undefined*/
3658
+ return undefined;
3659
+ }
3660
+
3661
+ function representJavascriptUndefined() {
3662
+ return '';
3663
+ }
3664
+
3665
+ function isUndefined(object) {
3666
+ return typeof object === 'undefined';
3667
+ }
3668
+
3669
+ module.exports = new Type('tag:yaml.org,2002:js/undefined', {
3670
+ kind: 'scalar',
3671
+ resolve: resolveJavascriptUndefined,
3672
+ construct: constructJavascriptUndefined,
3673
+ predicate: isUndefined,
3674
+ represent: representJavascriptUndefined
3675
+ });
3676
+
3677
+ },{"../../type":13}],21:[function(require,module,exports){
3678
+ 'use strict';
3679
+
3680
+ var Type = require('../type');
3681
+
3682
+ module.exports = new Type('tag:yaml.org,2002:map', {
3683
+ kind: 'mapping',
3684
+ construct: function (data) { return data !== null ? data : {}; }
3685
+ });
3686
+
3687
+ },{"../type":13}],22:[function(require,module,exports){
3688
+ 'use strict';
3689
+
3690
+ var Type = require('../type');
3691
+
3692
+ function resolveYamlMerge(data) {
3693
+ return data === '<<' || data === null;
3694
+ }
3695
+
3696
+ module.exports = new Type('tag:yaml.org,2002:merge', {
3697
+ kind: 'scalar',
3698
+ resolve: resolveYamlMerge
3699
+ });
3700
+
3701
+ },{"../type":13}],23:[function(require,module,exports){
3702
+ 'use strict';
3703
+
3704
+ var Type = require('../type');
3705
+
3706
+ function resolveYamlNull(data) {
3707
+ if (data === null) return true;
3708
+
3709
+ var max = data.length;
3710
+
3711
+ return (max === 1 && data === '~') ||
3712
+ (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));
3713
+ }
3714
+
3715
+ function constructYamlNull() {
3716
+ return null;
3717
+ }
3718
+
3719
+ function isNull(object) {
3720
+ return object === null;
3721
+ }
3722
+
3723
+ module.exports = new Type('tag:yaml.org,2002:null', {
3724
+ kind: 'scalar',
3725
+ resolve: resolveYamlNull,
3726
+ construct: constructYamlNull,
3727
+ predicate: isNull,
3728
+ represent: {
3729
+ canonical: function () { return '~'; },
3730
+ lowercase: function () { return 'null'; },
3731
+ uppercase: function () { return 'NULL'; },
3732
+ camelcase: function () { return 'Null'; }
3733
+ },
3734
+ defaultStyle: 'lowercase'
3735
+ });
3736
+
3737
+ },{"../type":13}],24:[function(require,module,exports){
3738
+ 'use strict';
3739
+
3740
+ var Type = require('../type');
3741
+
3742
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
3743
+ var _toString = Object.prototype.toString;
3744
+
3745
+ function resolveYamlOmap(data) {
3746
+ if (data === null) return true;
3747
+
3748
+ var objectKeys = [], index, length, pair, pairKey, pairHasKey,
3749
+ object = data;
3750
+
3751
+ for (index = 0, length = object.length; index < length; index += 1) {
3752
+ pair = object[index];
3753
+ pairHasKey = false;
3754
+
3755
+ if (_toString.call(pair) !== '[object Object]') return false;
3756
+
3757
+ for (pairKey in pair) {
3758
+ if (_hasOwnProperty.call(pair, pairKey)) {
3759
+ if (!pairHasKey) pairHasKey = true;
3760
+ else return false;
3761
+ }
3762
+ }
3763
+
3764
+ if (!pairHasKey) return false;
3765
+
3766
+ if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);
3767
+ else return false;
3768
+ }
3769
+
3770
+ return true;
3771
+ }
3772
+
3773
+ function constructYamlOmap(data) {
3774
+ return data !== null ? data : [];
3775
+ }
3776
+
3777
+ module.exports = new Type('tag:yaml.org,2002:omap', {
3778
+ kind: 'sequence',
3779
+ resolve: resolveYamlOmap,
3780
+ construct: constructYamlOmap
3781
+ });
3782
+
3783
+ },{"../type":13}],25:[function(require,module,exports){
3784
+ 'use strict';
3785
+
3786
+ var Type = require('../type');
3787
+
3788
+ var _toString = Object.prototype.toString;
3789
+
3790
+ function resolveYamlPairs(data) {
3791
+ if (data === null) return true;
3792
+
3793
+ var index, length, pair, keys, result,
3794
+ object = data;
3795
+
3796
+ result = new Array(object.length);
3797
+
3798
+ for (index = 0, length = object.length; index < length; index += 1) {
3799
+ pair = object[index];
3800
+
3801
+ if (_toString.call(pair) !== '[object Object]') return false;
3802
+
3803
+ keys = Object.keys(pair);
3804
+
3805
+ if (keys.length !== 1) return false;
3806
+
3807
+ result[index] = [ keys[0], pair[keys[0]] ];
3808
+ }
3809
+
3810
+ return true;
3811
+ }
3812
+
3813
+ function constructYamlPairs(data) {
3814
+ if (data === null) return [];
3815
+
3816
+ var index, length, pair, keys, result,
3817
+ object = data;
3818
+
3819
+ result = new Array(object.length);
3820
+
3821
+ for (index = 0, length = object.length; index < length; index += 1) {
3822
+ pair = object[index];
3823
+
3824
+ keys = Object.keys(pair);
3825
+
3826
+ result[index] = [ keys[0], pair[keys[0]] ];
3827
+ }
3828
+
3829
+ return result;
3830
+ }
3831
+
3832
+ module.exports = new Type('tag:yaml.org,2002:pairs', {
3833
+ kind: 'sequence',
3834
+ resolve: resolveYamlPairs,
3835
+ construct: constructYamlPairs
3836
+ });
3837
+
3838
+ },{"../type":13}],26:[function(require,module,exports){
3839
+ 'use strict';
3840
+
3841
+ var Type = require('../type');
3842
+
3843
+ module.exports = new Type('tag:yaml.org,2002:seq', {
3844
+ kind: 'sequence',
3845
+ construct: function (data) { return data !== null ? data : []; }
3846
+ });
3847
+
3848
+ },{"../type":13}],27:[function(require,module,exports){
3849
+ 'use strict';
3850
+
3851
+ var Type = require('../type');
3852
+
3853
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
3854
+
3855
+ function resolveYamlSet(data) {
3856
+ if (data === null) return true;
3857
+
3858
+ var key, object = data;
3859
+
3860
+ for (key in object) {
3861
+ if (_hasOwnProperty.call(object, key)) {
3862
+ if (object[key] !== null) return false;
3863
+ }
3864
+ }
3865
+
3866
+ return true;
3867
+ }
3868
+
3869
+ function constructYamlSet(data) {
3870
+ return data !== null ? data : {};
3871
+ }
3872
+
3873
+ module.exports = new Type('tag:yaml.org,2002:set', {
3874
+ kind: 'mapping',
3875
+ resolve: resolveYamlSet,
3876
+ construct: constructYamlSet
3877
+ });
3878
+
3879
+ },{"../type":13}],28:[function(require,module,exports){
3880
+ 'use strict';
3881
+
3882
+ var Type = require('../type');
3883
+
3884
+ module.exports = new Type('tag:yaml.org,2002:str', {
3885
+ kind: 'scalar',
3886
+ construct: function (data) { return data !== null ? data : ''; }
3887
+ });
3888
+
3889
+ },{"../type":13}],29:[function(require,module,exports){
3890
+ 'use strict';
3891
+
3892
+ var Type = require('../type');
3893
+
3894
+ var YAML_DATE_REGEXP = new RegExp(
3895
+ '^([0-9][0-9][0-9][0-9])' + // [1] year
3896
+ '-([0-9][0-9])' + // [2] month
3897
+ '-([0-9][0-9])$'); // [3] day
3898
+
3899
+ var YAML_TIMESTAMP_REGEXP = new RegExp(
3900
+ '^([0-9][0-9][0-9][0-9])' + // [1] year
3901
+ '-([0-9][0-9]?)' + // [2] month
3902
+ '-([0-9][0-9]?)' + // [3] day
3903
+ '(?:[Tt]|[ \\t]+)' + // ...
3904
+ '([0-9][0-9]?)' + // [4] hour
3905
+ ':([0-9][0-9])' + // [5] minute
3906
+ ':([0-9][0-9])' + // [6] second
3907
+ '(?:\\.([0-9]*))?' + // [7] fraction
3908
+ '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour
3909
+ '(?::([0-9][0-9]))?))?$'); // [11] tz_minute
3910
+
3911
+ function resolveYamlTimestamp(data) {
3912
+ if (data === null) return false;
3913
+ if (YAML_DATE_REGEXP.exec(data) !== null) return true;
3914
+ if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;
3915
+ return false;
3916
+ }
3917
+
3918
+ function constructYamlTimestamp(data) {
3919
+ var match, year, month, day, hour, minute, second, fraction = 0,
3920
+ delta = null, tz_hour, tz_minute, date;
3921
+
3922
+ match = YAML_DATE_REGEXP.exec(data);
3923
+ if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);
3924
+
3925
+ if (match === null) throw new Error('Date resolve error');
3926
+
3927
+ // match: [1] year [2] month [3] day
3928
+
3929
+ year = +(match[1]);
3930
+ month = +(match[2]) - 1; // JS month starts with 0
3931
+ day = +(match[3]);
3932
+
3933
+ if (!match[4]) { // no hour
3934
+ return new Date(Date.UTC(year, month, day));
3935
+ }
3936
+
3937
+ // match: [4] hour [5] minute [6] second [7] fraction
3938
+
3939
+ hour = +(match[4]);
3940
+ minute = +(match[5]);
3941
+ second = +(match[6]);
3942
+
3943
+ if (match[7]) {
3944
+ fraction = match[7].slice(0, 3);
3945
+ while (fraction.length < 3) { // milli-seconds
3946
+ fraction += '0';
3947
+ }
3948
+ fraction = +fraction;
3949
+ }
3950
+
3951
+ // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute
3952
+
3953
+ if (match[9]) {
3954
+ tz_hour = +(match[10]);
3955
+ tz_minute = +(match[11] || 0);
3956
+ delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds
3957
+ if (match[9] === '-') delta = -delta;
3958
+ }
3959
+
3960
+ date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));
3961
+
3962
+ if (delta) date.setTime(date.getTime() - delta);
3963
+
3964
+ return date;
3965
+ }
3966
+
3967
+ function representYamlTimestamp(object /*, style*/) {
3968
+ return object.toISOString();
3969
+ }
3970
+
3971
+ module.exports = new Type('tag:yaml.org,2002:timestamp', {
3972
+ kind: 'scalar',
3973
+ resolve: resolveYamlTimestamp,
3974
+ construct: constructYamlTimestamp,
3975
+ instanceOf: Date,
3976
+ represent: representYamlTimestamp
3977
+ });
3978
+
3979
+ },{"../type":13}],"/":[function(require,module,exports){
3980
+ 'use strict';
3981
+
3982
+
3983
+ var yaml = require('./lib/js-yaml.js');
3984
+
3985
+
3986
+ module.exports = yaml;
3987
+
3988
+ },{"./lib/js-yaml.js":1}]},{},[])("/")
3989
+ });