@vcollab/yaml-language-server-tag-validation 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (865) hide show
  1. package/CHANGELOG.md +712 -0
  2. package/CONTRIBUTING.md +8 -0
  3. package/DCO +37 -0
  4. package/Dockerfile +11 -0
  5. package/LICENSE +21 -0
  6. package/README.md +475 -0
  7. package/bin/yaml-language-server +27 -0
  8. package/docs/scalaruri-custom-tags.md +269 -0
  9. package/l10n/bundle.l10n.de.json +62 -0
  10. package/l10n/bundle.l10n.fr.json +62 -0
  11. package/l10n/bundle.l10n.ja.json +62 -0
  12. package/l10n/bundle.l10n.json +61 -0
  13. package/l10n/bundle.l10n.ko.json +62 -0
  14. package/l10n/bundle.l10n.zh-cn.json +62 -0
  15. package/l10n/bundle.l10n.zh-tw.json +62 -0
  16. package/lib/esm/commands.d.ts +3 -0
  17. package/lib/esm/commands.js +9 -0
  18. package/lib/esm/commands.js.map +1 -0
  19. package/lib/esm/index.d.ts +3 -0
  20. package/lib/esm/index.js +4 -0
  21. package/lib/esm/index.js.map +1 -0
  22. package/lib/esm/languageserver/commandExecutor.d.ts +10 -0
  23. package/lib/esm/languageserver/commandExecutor.js +21 -0
  24. package/lib/esm/languageserver/commandExecutor.js.map +1 -0
  25. package/lib/esm/languageserver/handlers/languageHandlers.d.ts +61 -0
  26. package/lib/esm/languageserver/handlers/languageHandlers.js +236 -0
  27. package/lib/esm/languageserver/handlers/languageHandlers.js.map +1 -0
  28. package/lib/esm/languageserver/handlers/notificationHandlers.d.ts +29 -0
  29. package/lib/esm/languageserver/handlers/notificationHandlers.js +46 -0
  30. package/lib/esm/languageserver/handlers/notificationHandlers.js.map +1 -0
  31. package/lib/esm/languageserver/handlers/requestHandlers.d.ts +9 -0
  32. package/lib/esm/languageserver/handlers/requestHandlers.js +23 -0
  33. package/lib/esm/languageserver/handlers/requestHandlers.js.map +1 -0
  34. package/lib/esm/languageserver/handlers/schemaSelectionHandlers.d.ts +13 -0
  35. package/lib/esm/languageserver/handlers/schemaSelectionHandlers.js +72 -0
  36. package/lib/esm/languageserver/handlers/schemaSelectionHandlers.js.map +1 -0
  37. package/lib/esm/languageserver/handlers/settingsHandlers.d.ts +42 -0
  38. package/lib/esm/languageserver/handlers/settingsHandlers.js +316 -0
  39. package/lib/esm/languageserver/handlers/settingsHandlers.js.map +1 -0
  40. package/lib/esm/languageserver/handlers/validationHandlers.d.ts +15 -0
  41. package/lib/esm/languageserver/handlers/validationHandlers.js +108 -0
  42. package/lib/esm/languageserver/handlers/validationHandlers.js.map +1 -0
  43. package/lib/esm/languageserver/handlers/workspaceHandlers.d.ts +9 -0
  44. package/lib/esm/languageserver/handlers/workspaceHandlers.js +17 -0
  45. package/lib/esm/languageserver/handlers/workspaceHandlers.js.map +1 -0
  46. package/lib/esm/languageserver/telemetry.d.ts +9 -0
  47. package/lib/esm/languageserver/telemetry.js +20 -0
  48. package/lib/esm/languageserver/telemetry.js.map +1 -0
  49. package/lib/esm/languageservice/jsonASTTypes.d.ts +49 -0
  50. package/lib/esm/languageservice/jsonASTTypes.js +6 -0
  51. package/lib/esm/languageservice/jsonASTTypes.js.map +1 -0
  52. package/lib/esm/languageservice/jsonSchema.d.ts +103 -0
  53. package/lib/esm/languageservice/jsonSchema.js +12 -0
  54. package/lib/esm/languageservice/jsonSchema.js.map +1 -0
  55. package/lib/esm/languageservice/parser/ast-converter.d.ts +11 -0
  56. package/lib/esm/languageservice/parser/ast-converter.js +176 -0
  57. package/lib/esm/languageservice/parser/ast-converter.js.map +1 -0
  58. package/lib/esm/languageservice/parser/astNodeUtils.d.ts +4 -0
  59. package/lib/esm/languageservice/parser/astNodeUtils.js +48 -0
  60. package/lib/esm/languageservice/parser/astNodeUtils.js.map +1 -0
  61. package/lib/esm/languageservice/parser/custom-tag-provider.d.ts +7 -0
  62. package/lib/esm/languageservice/parser/custom-tag-provider.js +58 -0
  63. package/lib/esm/languageservice/parser/custom-tag-provider.js.map +1 -0
  64. package/lib/esm/languageservice/parser/isKubernetes.d.ts +4 -0
  65. package/lib/esm/languageservice/parser/isKubernetes.js +17 -0
  66. package/lib/esm/languageservice/parser/isKubernetes.js.map +1 -0
  67. package/lib/esm/languageservice/parser/jsonDocument.d.ts +83 -0
  68. package/lib/esm/languageservice/parser/jsonDocument.js +171 -0
  69. package/lib/esm/languageservice/parser/jsonDocument.js.map +1 -0
  70. package/lib/esm/languageservice/parser/scalar-type.d.ts +8 -0
  71. package/lib/esm/languageservice/parser/scalar-type.js +17 -0
  72. package/lib/esm/languageservice/parser/scalar-type.js.map +1 -0
  73. package/lib/esm/languageservice/parser/schemaValidation/baseValidator.d.ts +124 -0
  74. package/lib/esm/languageservice/parser/schemaValidation/baseValidator.js +1254 -0
  75. package/lib/esm/languageservice/parser/schemaValidation/baseValidator.js.map +1 -0
  76. package/lib/esm/languageservice/parser/schemaValidation/draft04Validator.d.ts +17 -0
  77. package/lib/esm/languageservice/parser/schemaValidation/draft04Validator.js +30 -0
  78. package/lib/esm/languageservice/parser/schemaValidation/draft04Validator.js.map +1 -0
  79. package/lib/esm/languageservice/parser/schemaValidation/draft07Validator.d.ts +15 -0
  80. package/lib/esm/languageservice/parser/schemaValidation/draft07Validator.js +28 -0
  81. package/lib/esm/languageservice/parser/schemaValidation/draft07Validator.js.map +1 -0
  82. package/lib/esm/languageservice/parser/schemaValidation/draft2019Validator.d.ts +28 -0
  83. package/lib/esm/languageservice/parser/schemaValidation/draft2019Validator.js +224 -0
  84. package/lib/esm/languageservice/parser/schemaValidation/draft2019Validator.js.map +1 -0
  85. package/lib/esm/languageservice/parser/schemaValidation/draft2020Validator.d.ts +17 -0
  86. package/lib/esm/languageservice/parser/schemaValidation/draft2020Validator.js +126 -0
  87. package/lib/esm/languageservice/parser/schemaValidation/draft2020Validator.js.map +1 -0
  88. package/lib/esm/languageservice/parser/schemaValidation/validatorFactory.d.ts +3 -0
  89. package/lib/esm/languageservice/parser/schemaValidation/validatorFactory.js +24 -0
  90. package/lib/esm/languageservice/parser/schemaValidation/validatorFactory.js.map +1 -0
  91. package/lib/esm/languageservice/parser/yaml-documents.d.ts +71 -0
  92. package/lib/esm/languageservice/parser/yaml-documents.js +258 -0
  93. package/lib/esm/languageservice/parser/yaml-documents.js.map +1 -0
  94. package/lib/esm/languageservice/parser/yamlParser07.d.ts +15 -0
  95. package/lib/esm/languageservice/parser/yamlParser07.js +50 -0
  96. package/lib/esm/languageservice/parser/yamlParser07.js.map +1 -0
  97. package/lib/esm/languageservice/services/crdUtil.d.ts +23 -0
  98. package/lib/esm/languageservice/services/crdUtil.js +74 -0
  99. package/lib/esm/languageservice/services/crdUtil.js.map +1 -0
  100. package/lib/esm/languageservice/services/documentSymbols.d.ts +12 -0
  101. package/lib/esm/languageservice/services/documentSymbols.js +67 -0
  102. package/lib/esm/languageservice/services/documentSymbols.js.map +1 -0
  103. package/lib/esm/languageservice/services/modelineUtil.d.ts +9 -0
  104. package/lib/esm/languageservice/services/modelineUtil.js +29 -0
  105. package/lib/esm/languageservice/services/modelineUtil.js.map +1 -0
  106. package/lib/esm/languageservice/services/schemaRequestHandler.d.ts +12 -0
  107. package/lib/esm/languageservice/services/schemaRequestHandler.js +84 -0
  108. package/lib/esm/languageservice/services/schemaRequestHandler.js.map +1 -0
  109. package/lib/esm/languageservice/services/validation/map-key-order.d.ts +7 -0
  110. package/lib/esm/languageservice/services/validation/map-key-order.js +35 -0
  111. package/lib/esm/languageservice/services/validation/map-key-order.js.map +1 -0
  112. package/lib/esm/languageservice/services/validation/types.d.ts +6 -0
  113. package/lib/esm/languageservice/services/validation/types.js +6 -0
  114. package/lib/esm/languageservice/services/validation/types.js.map +1 -0
  115. package/lib/esm/languageservice/services/validation/unused-anchors.d.ts +8 -0
  116. package/lib/esm/languageservice/services/validation/unused-anchors.js +91 -0
  117. package/lib/esm/languageservice/services/validation/unused-anchors.js.map +1 -0
  118. package/lib/esm/languageservice/services/validation/yaml-style.d.ts +12 -0
  119. package/lib/esm/languageservice/services/validation/yaml-style.js +28 -0
  120. package/lib/esm/languageservice/services/validation/yaml-style.js.map +1 -0
  121. package/lib/esm/languageservice/services/yamlCodeActions.d.ts +25 -0
  122. package/lib/esm/languageservice/services/yamlCodeActions.js +342 -0
  123. package/lib/esm/languageservice/services/yamlCodeActions.js.map +1 -0
  124. package/lib/esm/languageservice/services/yamlCodeLens.d.ts +11 -0
  125. package/lib/esm/languageservice/services/yamlCodeLens.js +46 -0
  126. package/lib/esm/languageservice/services/yamlCodeLens.js.map +1 -0
  127. package/lib/esm/languageservice/services/yamlCommands.d.ts +3 -0
  128. package/lib/esm/languageservice/services/yamlCommands.js +46 -0
  129. package/lib/esm/languageservice/services/yamlCommands.js.map +1 -0
  130. package/lib/esm/languageservice/services/yamlCompletion.d.ts +77 -0
  131. package/lib/esm/languageservice/services/yamlCompletion.js +1501 -0
  132. package/lib/esm/languageservice/services/yamlCompletion.js.map +1 -0
  133. package/lib/esm/languageservice/services/yamlDefinition.d.ts +9 -0
  134. package/lib/esm/languageservice/services/yamlDefinition.js +37 -0
  135. package/lib/esm/languageservice/services/yamlDefinition.js.map +1 -0
  136. package/lib/esm/languageservice/services/yamlFolding.d.ts +4 -0
  137. package/lib/esm/languageservice/services/yamlFolding.js +62 -0
  138. package/lib/esm/languageservice/services/yamlFolding.js.map +1 -0
  139. package/lib/esm/languageservice/services/yamlFormatter.d.ts +8 -0
  140. package/lib/esm/languageservice/services/yamlFormatter.js +46 -0
  141. package/lib/esm/languageservice/services/yamlFormatter.js.map +1 -0
  142. package/lib/esm/languageservice/services/yamlHover.d.ts +47 -0
  143. package/lib/esm/languageservice/services/yamlHover.js +366 -0
  144. package/lib/esm/languageservice/services/yamlHover.js.map +1 -0
  145. package/lib/esm/languageservice/services/yamlLinks.d.ts +8 -0
  146. package/lib/esm/languageservice/services/yamlLinks.js +27 -0
  147. package/lib/esm/languageservice/services/yamlLinks.js.map +1 -0
  148. package/lib/esm/languageservice/services/yamlOnTypeFormatting.d.ts +4 -0
  149. package/lib/esm/languageservice/services/yamlOnTypeFormatting.js +43 -0
  150. package/lib/esm/languageservice/services/yamlOnTypeFormatting.js.map +1 -0
  151. package/lib/esm/languageservice/services/yamlRename.d.ts +18 -0
  152. package/lib/esm/languageservice/services/yamlRename.js +184 -0
  153. package/lib/esm/languageservice/services/yamlRename.js.map +1 -0
  154. package/lib/esm/languageservice/services/yamlSchemaService.d.ts +99 -0
  155. package/lib/esm/languageservice/services/yamlSchemaService.js +1110 -0
  156. package/lib/esm/languageservice/services/yamlSchemaService.js.map +1 -0
  157. package/lib/esm/languageservice/services/yamlSelectionRanges.d.ts +3 -0
  158. package/lib/esm/languageservice/services/yamlSelectionRanges.js +130 -0
  159. package/lib/esm/languageservice/services/yamlSelectionRanges.js.map +1 -0
  160. package/lib/esm/languageservice/services/yamlValidation.d.ts +26 -0
  161. package/lib/esm/languageservice/services/yamlValidation.js +135 -0
  162. package/lib/esm/languageservice/services/yamlValidation.js.map +1 -0
  163. package/lib/esm/languageservice/telemetry.d.ts +16 -0
  164. package/lib/esm/languageservice/telemetry.js +6 -0
  165. package/lib/esm/languageservice/telemetry.js.map +1 -0
  166. package/lib/esm/languageservice/utils/arrUtils.d.ts +6 -0
  167. package/lib/esm/languageservice/utils/arrUtils.js +81 -0
  168. package/lib/esm/languageservice/utils/arrUtils.js.map +1 -0
  169. package/lib/esm/languageservice/utils/block-string-rewriter.d.ts +8 -0
  170. package/lib/esm/languageservice/utils/block-string-rewriter.js +215 -0
  171. package/lib/esm/languageservice/utils/block-string-rewriter.js.map +1 -0
  172. package/lib/esm/languageservice/utils/charCode.d.ts +415 -0
  173. package/lib/esm/languageservice/utils/charCode.js +6 -0
  174. package/lib/esm/languageservice/utils/charCode.js.map +1 -0
  175. package/lib/esm/languageservice/utils/diagnostic-filter.d.ts +50 -0
  176. package/lib/esm/languageservice/utils/diagnostic-filter.js +82 -0
  177. package/lib/esm/languageservice/utils/diagnostic-filter.js.map +1 -0
  178. package/lib/esm/languageservice/utils/documentPositionCalculator.d.ts +5 -0
  179. package/lib/esm/languageservice/utils/documentPositionCalculator.js +56 -0
  180. package/lib/esm/languageservice/utils/documentPositionCalculator.js.map +1 -0
  181. package/lib/esm/languageservice/utils/filePatternAssociation.d.ts +8 -0
  182. package/lib/esm/languageservice/utils/filePatternAssociation.js +23 -0
  183. package/lib/esm/languageservice/utils/filePatternAssociation.js.map +1 -0
  184. package/lib/esm/languageservice/utils/flow-style-rewriter.d.ts +6 -0
  185. package/lib/esm/languageservice/utils/flow-style-rewriter.js +53 -0
  186. package/lib/esm/languageservice/utils/flow-style-rewriter.js.map +1 -0
  187. package/lib/esm/languageservice/utils/indentationGuesser.d.ts +15 -0
  188. package/lib/esm/languageservice/utils/indentationGuesser.js +176 -0
  189. package/lib/esm/languageservice/utils/indentationGuesser.js.map +1 -0
  190. package/lib/esm/languageservice/utils/json.d.ts +11 -0
  191. package/lib/esm/languageservice/utils/json.js +79 -0
  192. package/lib/esm/languageservice/utils/json.js.map +1 -0
  193. package/lib/esm/languageservice/utils/math.d.ts +1 -0
  194. package/lib/esm/languageservice/utils/math.js +9 -0
  195. package/lib/esm/languageservice/utils/math.js.map +1 -0
  196. package/lib/esm/languageservice/utils/objects.d.ts +16 -0
  197. package/lib/esm/languageservice/utils/objects.js +92 -0
  198. package/lib/esm/languageservice/utils/objects.js.map +1 -0
  199. package/lib/esm/languageservice/utils/parseUtils.d.ts +17 -0
  200. package/lib/esm/languageservice/utils/parseUtils.js +2 -0
  201. package/lib/esm/languageservice/utils/parseUtils.js.map +1 -0
  202. package/lib/esm/languageservice/utils/paths.d.ts +5 -0
  203. package/lib/esm/languageservice/utils/paths.js +42 -0
  204. package/lib/esm/languageservice/utils/paths.js.map +1 -0
  205. package/lib/esm/languageservice/utils/schemaUrls.d.ts +14 -0
  206. package/lib/esm/languageservice/utils/schemaUrls.js +59 -0
  207. package/lib/esm/languageservice/utils/schemaUrls.js.map +1 -0
  208. package/lib/esm/languageservice/utils/schemaUtils.d.ts +19 -0
  209. package/lib/esm/languageservice/utils/schemaUtils.js +62 -0
  210. package/lib/esm/languageservice/utils/schemaUtils.js.map +1 -0
  211. package/lib/esm/languageservice/utils/strings.d.ts +10 -0
  212. package/lib/esm/languageservice/utils/strings.js +79 -0
  213. package/lib/esm/languageservice/utils/strings.js.map +1 -0
  214. package/lib/esm/languageservice/utils/textBuffer.d.ts +12 -0
  215. package/lib/esm/languageservice/utils/textBuffer.js +45 -0
  216. package/lib/esm/languageservice/utils/textBuffer.js.map +1 -0
  217. package/lib/esm/languageservice/utils/yamlAstUtils.d.ts +13 -0
  218. package/lib/esm/languageservice/utils/yamlAstUtils.js +108 -0
  219. package/lib/esm/languageservice/utils/yamlAstUtils.js.map +1 -0
  220. package/lib/esm/languageservice/utils/yamlScalar.d.ts +1 -0
  221. package/lib/esm/languageservice/utils/yamlScalar.js +69 -0
  222. package/lib/esm/languageservice/utils/yamlScalar.js.map +1 -0
  223. package/lib/esm/languageservice/yamlLanguageService.d.ts +135 -0
  224. package/lib/esm/languageservice/yamlLanguageService.js +101 -0
  225. package/lib/esm/languageservice/yamlLanguageService.js.map +1 -0
  226. package/lib/esm/languageservice/yamlTypes.d.ts +18 -0
  227. package/lib/esm/languageservice/yamlTypes.js +6 -0
  228. package/lib/esm/languageservice/yamlTypes.js.map +1 -0
  229. package/lib/esm/nodeTranslationSetup.d.ts +9 -0
  230. package/lib/esm/nodeTranslationSetup.js +34 -0
  231. package/lib/esm/nodeTranslationSetup.js.map +1 -0
  232. package/lib/esm/requestTypes.d.ts +63 -0
  233. package/lib/esm/requestTypes.js +46 -0
  234. package/lib/esm/requestTypes.js.map +1 -0
  235. package/lib/esm/server.d.ts +1 -0
  236. package/lib/esm/server.js +55 -0
  237. package/lib/esm/server.js.map +1 -0
  238. package/lib/esm/webworker/yamlServerMain.d.ts +1 -0
  239. package/lib/esm/webworker/yamlServerMain.js +40 -0
  240. package/lib/esm/webworker/yamlServerMain.js.map +1 -0
  241. package/lib/esm/yamlServerInit.d.ts +23 -0
  242. package/lib/esm/yamlServerInit.js +123 -0
  243. package/lib/esm/yamlServerInit.js.map +1 -0
  244. package/lib/esm/yamlSettings.d.ts +112 -0
  245. package/lib/esm/yamlSettings.js +69 -0
  246. package/lib/esm/yamlSettings.js.map +1 -0
  247. package/lib/umd/commands.d.ts +3 -0
  248. package/lib/umd/commands.js +22 -0
  249. package/lib/umd/commands.js.map +1 -0
  250. package/lib/umd/index.d.ts +3 -0
  251. package/lib/umd/index.js +32 -0
  252. package/lib/umd/index.js.map +1 -0
  253. package/lib/umd/languageserver/commandExecutor.d.ts +10 -0
  254. package/lib/umd/languageserver/commandExecutor.js +35 -0
  255. package/lib/umd/languageserver/commandExecutor.js.map +1 -0
  256. package/lib/umd/languageserver/handlers/languageHandlers.d.ts +61 -0
  257. package/lib/umd/languageserver/handlers/languageHandlers.js +250 -0
  258. package/lib/umd/languageserver/handlers/languageHandlers.js.map +1 -0
  259. package/lib/umd/languageserver/handlers/notificationHandlers.d.ts +29 -0
  260. package/lib/umd/languageserver/handlers/notificationHandlers.js +60 -0
  261. package/lib/umd/languageserver/handlers/notificationHandlers.js.map +1 -0
  262. package/lib/umd/languageserver/handlers/requestHandlers.d.ts +9 -0
  263. package/lib/umd/languageserver/handlers/requestHandlers.js +37 -0
  264. package/lib/umd/languageserver/handlers/requestHandlers.js.map +1 -0
  265. package/lib/umd/languageserver/handlers/schemaSelectionHandlers.d.ts +13 -0
  266. package/lib/umd/languageserver/handlers/schemaSelectionHandlers.js +86 -0
  267. package/lib/umd/languageserver/handlers/schemaSelectionHandlers.js.map +1 -0
  268. package/lib/umd/languageserver/handlers/settingsHandlers.d.ts +42 -0
  269. package/lib/umd/languageserver/handlers/settingsHandlers.js +330 -0
  270. package/lib/umd/languageserver/handlers/settingsHandlers.js.map +1 -0
  271. package/lib/umd/languageserver/handlers/validationHandlers.d.ts +15 -0
  272. package/lib/umd/languageserver/handlers/validationHandlers.js +122 -0
  273. package/lib/umd/languageserver/handlers/validationHandlers.js.map +1 -0
  274. package/lib/umd/languageserver/handlers/workspaceHandlers.d.ts +9 -0
  275. package/lib/umd/languageserver/handlers/workspaceHandlers.js +31 -0
  276. package/lib/umd/languageserver/handlers/workspaceHandlers.js.map +1 -0
  277. package/lib/umd/languageserver/telemetry.d.ts +9 -0
  278. package/lib/umd/languageserver/telemetry.js +34 -0
  279. package/lib/umd/languageserver/telemetry.js.map +1 -0
  280. package/lib/umd/languageservice/jsonASTTypes.d.ts +49 -0
  281. package/lib/umd/languageservice/jsonASTTypes.js +17 -0
  282. package/lib/umd/languageservice/jsonASTTypes.js.map +1 -0
  283. package/lib/umd/languageservice/jsonSchema.d.ts +103 -0
  284. package/lib/umd/languageservice/jsonSchema.js +25 -0
  285. package/lib/umd/languageservice/jsonSchema.js.map +1 -0
  286. package/lib/umd/languageservice/parser/ast-converter.d.ts +11 -0
  287. package/lib/umd/languageservice/parser/ast-converter.js +191 -0
  288. package/lib/umd/languageservice/parser/ast-converter.js.map +1 -0
  289. package/lib/umd/languageservice/parser/astNodeUtils.d.ts +4 -0
  290. package/lib/umd/languageservice/parser/astNodeUtils.js +64 -0
  291. package/lib/umd/languageservice/parser/astNodeUtils.js.map +1 -0
  292. package/lib/umd/languageservice/parser/custom-tag-provider.d.ts +7 -0
  293. package/lib/umd/languageservice/parser/custom-tag-provider.js +72 -0
  294. package/lib/umd/languageservice/parser/custom-tag-provider.js.map +1 -0
  295. package/lib/umd/languageservice/parser/isKubernetes.d.ts +4 -0
  296. package/lib/umd/languageservice/parser/isKubernetes.js +32 -0
  297. package/lib/umd/languageservice/parser/isKubernetes.js.map +1 -0
  298. package/lib/umd/languageservice/parser/jsonDocument.d.ts +83 -0
  299. package/lib/umd/languageservice/parser/jsonDocument.js +193 -0
  300. package/lib/umd/languageservice/parser/jsonDocument.js.map +1 -0
  301. package/lib/umd/languageservice/parser/scalar-type.d.ts +8 -0
  302. package/lib/umd/languageservice/parser/scalar-type.js +31 -0
  303. package/lib/umd/languageservice/parser/scalar-type.js.map +1 -0
  304. package/lib/umd/languageservice/parser/schemaValidation/baseValidator.d.ts +124 -0
  305. package/lib/umd/languageservice/parser/schemaValidation/baseValidator.js +1270 -0
  306. package/lib/umd/languageservice/parser/schemaValidation/baseValidator.js.map +1 -0
  307. package/lib/umd/languageservice/parser/schemaValidation/draft04Validator.d.ts +17 -0
  308. package/lib/umd/languageservice/parser/schemaValidation/draft04Validator.js +44 -0
  309. package/lib/umd/languageservice/parser/schemaValidation/draft04Validator.js.map +1 -0
  310. package/lib/umd/languageservice/parser/schemaValidation/draft07Validator.d.ts +15 -0
  311. package/lib/umd/languageservice/parser/schemaValidation/draft07Validator.js +42 -0
  312. package/lib/umd/languageservice/parser/schemaValidation/draft07Validator.js.map +1 -0
  313. package/lib/umd/languageservice/parser/schemaValidation/draft2019Validator.d.ts +28 -0
  314. package/lib/umd/languageservice/parser/schemaValidation/draft2019Validator.js +238 -0
  315. package/lib/umd/languageservice/parser/schemaValidation/draft2019Validator.js.map +1 -0
  316. package/lib/umd/languageservice/parser/schemaValidation/draft2020Validator.d.ts +17 -0
  317. package/lib/umd/languageservice/parser/schemaValidation/draft2020Validator.js +140 -0
  318. package/lib/umd/languageservice/parser/schemaValidation/draft2020Validator.js.map +1 -0
  319. package/lib/umd/languageservice/parser/schemaValidation/validatorFactory.d.ts +3 -0
  320. package/lib/umd/languageservice/parser/schemaValidation/validatorFactory.js +38 -0
  321. package/lib/umd/languageservice/parser/schemaValidation/validatorFactory.js.map +1 -0
  322. package/lib/umd/languageservice/parser/yaml-documents.d.ts +71 -0
  323. package/lib/umd/languageservice/parser/yaml-documents.js +274 -0
  324. package/lib/umd/languageservice/parser/yaml-documents.js.map +1 -0
  325. package/lib/umd/languageservice/parser/yamlParser07.d.ts +15 -0
  326. package/lib/umd/languageservice/parser/yamlParser07.js +65 -0
  327. package/lib/umd/languageservice/parser/yamlParser07.js.map +1 -0
  328. package/lib/umd/languageservice/services/crdUtil.d.ts +23 -0
  329. package/lib/umd/languageservice/services/crdUtil.js +89 -0
  330. package/lib/umd/languageservice/services/crdUtil.js.map +1 -0
  331. package/lib/umd/languageservice/services/documentSymbols.d.ts +12 -0
  332. package/lib/umd/languageservice/services/documentSymbols.js +81 -0
  333. package/lib/umd/languageservice/services/documentSymbols.js.map +1 -0
  334. package/lib/umd/languageservice/services/modelineUtil.d.ts +9 -0
  335. package/lib/umd/languageservice/services/modelineUtil.js +44 -0
  336. package/lib/umd/languageservice/services/modelineUtil.js.map +1 -0
  337. package/lib/umd/languageservice/services/schemaRequestHandler.d.ts +12 -0
  338. package/lib/umd/languageservice/services/schemaRequestHandler.js +98 -0
  339. package/lib/umd/languageservice/services/schemaRequestHandler.js.map +1 -0
  340. package/lib/umd/languageservice/services/validation/map-key-order.d.ts +7 -0
  341. package/lib/umd/languageservice/services/validation/map-key-order.js +49 -0
  342. package/lib/umd/languageservice/services/validation/map-key-order.js.map +1 -0
  343. package/lib/umd/languageservice/services/validation/types.d.ts +6 -0
  344. package/lib/umd/languageservice/services/validation/types.js +17 -0
  345. package/lib/umd/languageservice/services/validation/types.js.map +1 -0
  346. package/lib/umd/languageservice/services/validation/unused-anchors.d.ts +8 -0
  347. package/lib/umd/languageservice/services/validation/unused-anchors.js +105 -0
  348. package/lib/umd/languageservice/services/validation/unused-anchors.js.map +1 -0
  349. package/lib/umd/languageservice/services/validation/yaml-style.d.ts +12 -0
  350. package/lib/umd/languageservice/services/validation/yaml-style.js +42 -0
  351. package/lib/umd/languageservice/services/validation/yaml-style.js.map +1 -0
  352. package/lib/umd/languageservice/services/yamlCodeActions.d.ts +25 -0
  353. package/lib/umd/languageservice/services/yamlCodeActions.js +356 -0
  354. package/lib/umd/languageservice/services/yamlCodeActions.js.map +1 -0
  355. package/lib/umd/languageservice/services/yamlCodeLens.d.ts +11 -0
  356. package/lib/umd/languageservice/services/yamlCodeLens.js +60 -0
  357. package/lib/umd/languageservice/services/yamlCodeLens.js.map +1 -0
  358. package/lib/umd/languageservice/services/yamlCommands.d.ts +3 -0
  359. package/lib/umd/languageservice/services/yamlCommands.js +60 -0
  360. package/lib/umd/languageservice/services/yamlCommands.js.map +1 -0
  361. package/lib/umd/languageservice/services/yamlCompletion.d.ts +77 -0
  362. package/lib/umd/languageservice/services/yamlCompletion.js +1515 -0
  363. package/lib/umd/languageservice/services/yamlCompletion.js.map +1 -0
  364. package/lib/umd/languageservice/services/yamlDefinition.d.ts +9 -0
  365. package/lib/umd/languageservice/services/yamlDefinition.js +51 -0
  366. package/lib/umd/languageservice/services/yamlDefinition.js.map +1 -0
  367. package/lib/umd/languageservice/services/yamlFolding.d.ts +4 -0
  368. package/lib/umd/languageservice/services/yamlFolding.js +76 -0
  369. package/lib/umd/languageservice/services/yamlFolding.js.map +1 -0
  370. package/lib/umd/languageservice/services/yamlFormatter.d.ts +8 -0
  371. package/lib/umd/languageservice/services/yamlFormatter.js +60 -0
  372. package/lib/umd/languageservice/services/yamlFormatter.js.map +1 -0
  373. package/lib/umd/languageservice/services/yamlHover.d.ts +47 -0
  374. package/lib/umd/languageservice/services/yamlHover.js +380 -0
  375. package/lib/umd/languageservice/services/yamlHover.js.map +1 -0
  376. package/lib/umd/languageservice/services/yamlLinks.d.ts +8 -0
  377. package/lib/umd/languageservice/services/yamlLinks.js +41 -0
  378. package/lib/umd/languageservice/services/yamlLinks.js.map +1 -0
  379. package/lib/umd/languageservice/services/yamlOnTypeFormatting.d.ts +4 -0
  380. package/lib/umd/languageservice/services/yamlOnTypeFormatting.js +57 -0
  381. package/lib/umd/languageservice/services/yamlOnTypeFormatting.js.map +1 -0
  382. package/lib/umd/languageservice/services/yamlRename.d.ts +18 -0
  383. package/lib/umd/languageservice/services/yamlRename.js +198 -0
  384. package/lib/umd/languageservice/services/yamlRename.js.map +1 -0
  385. package/lib/umd/languageservice/services/yamlSchemaService.d.ts +99 -0
  386. package/lib/umd/languageservice/services/yamlSchemaService.js +1124 -0
  387. package/lib/umd/languageservice/services/yamlSchemaService.js.map +1 -0
  388. package/lib/umd/languageservice/services/yamlSelectionRanges.d.ts +3 -0
  389. package/lib/umd/languageservice/services/yamlSelectionRanges.js +144 -0
  390. package/lib/umd/languageservice/services/yamlSelectionRanges.js.map +1 -0
  391. package/lib/umd/languageservice/services/yamlValidation.d.ts +26 -0
  392. package/lib/umd/languageservice/services/yamlValidation.js +150 -0
  393. package/lib/umd/languageservice/services/yamlValidation.js.map +1 -0
  394. package/lib/umd/languageservice/telemetry.d.ts +16 -0
  395. package/lib/umd/languageservice/telemetry.js +17 -0
  396. package/lib/umd/languageservice/telemetry.js.map +1 -0
  397. package/lib/umd/languageservice/utils/arrUtils.d.ts +6 -0
  398. package/lib/umd/languageservice/utils/arrUtils.js +99 -0
  399. package/lib/umd/languageservice/utils/arrUtils.js.map +1 -0
  400. package/lib/umd/languageservice/utils/block-string-rewriter.d.ts +8 -0
  401. package/lib/umd/languageservice/utils/block-string-rewriter.js +229 -0
  402. package/lib/umd/languageservice/utils/block-string-rewriter.js.map +1 -0
  403. package/lib/umd/languageservice/utils/charCode.d.ts +415 -0
  404. package/lib/umd/languageservice/utils/charCode.js +17 -0
  405. package/lib/umd/languageservice/utils/charCode.js.map +1 -0
  406. package/lib/umd/languageservice/utils/diagnostic-filter.d.ts +50 -0
  407. package/lib/umd/languageservice/utils/diagnostic-filter.js +98 -0
  408. package/lib/umd/languageservice/utils/diagnostic-filter.js.map +1 -0
  409. package/lib/umd/languageservice/utils/documentPositionCalculator.d.ts +5 -0
  410. package/lib/umd/languageservice/utils/documentPositionCalculator.js +73 -0
  411. package/lib/umd/languageservice/utils/documentPositionCalculator.js.map +1 -0
  412. package/lib/umd/languageservice/utils/filePatternAssociation.d.ts +8 -0
  413. package/lib/umd/languageservice/utils/filePatternAssociation.js +37 -0
  414. package/lib/umd/languageservice/utils/filePatternAssociation.js.map +1 -0
  415. package/lib/umd/languageservice/utils/flow-style-rewriter.d.ts +6 -0
  416. package/lib/umd/languageservice/utils/flow-style-rewriter.js +67 -0
  417. package/lib/umd/languageservice/utils/flow-style-rewriter.js.map +1 -0
  418. package/lib/umd/languageservice/utils/indentationGuesser.d.ts +15 -0
  419. package/lib/umd/languageservice/utils/indentationGuesser.js +190 -0
  420. package/lib/umd/languageservice/utils/indentationGuesser.js.map +1 -0
  421. package/lib/umd/languageservice/utils/json.d.ts +11 -0
  422. package/lib/umd/languageservice/utils/json.js +93 -0
  423. package/lib/umd/languageservice/utils/json.js.map +1 -0
  424. package/lib/umd/languageservice/utils/math.d.ts +1 -0
  425. package/lib/umd/languageservice/utils/math.js +23 -0
  426. package/lib/umd/languageservice/utils/math.js.map +1 -0
  427. package/lib/umd/languageservice/utils/objects.d.ts +16 -0
  428. package/lib/umd/languageservice/utils/objects.js +112 -0
  429. package/lib/umd/languageservice/utils/objects.js.map +1 -0
  430. package/lib/umd/languageservice/utils/parseUtils.d.ts +17 -0
  431. package/lib/umd/languageservice/utils/parseUtils.js +15 -0
  432. package/lib/umd/languageservice/utils/parseUtils.js.map +1 -0
  433. package/lib/umd/languageservice/utils/paths.d.ts +5 -0
  434. package/lib/umd/languageservice/utils/paths.js +58 -0
  435. package/lib/umd/languageservice/utils/paths.js.map +1 -0
  436. package/lib/umd/languageservice/utils/schemaUrls.d.ts +14 -0
  437. package/lib/umd/languageservice/utils/schemaUrls.js +74 -0
  438. package/lib/umd/languageservice/utils/schemaUrls.js.map +1 -0
  439. package/lib/umd/languageservice/utils/schemaUtils.d.ts +19 -0
  440. package/lib/umd/languageservice/utils/schemaUtils.js +80 -0
  441. package/lib/umd/languageservice/utils/schemaUtils.js.map +1 -0
  442. package/lib/umd/languageservice/utils/strings.d.ts +10 -0
  443. package/lib/umd/languageservice/utils/strings.js +99 -0
  444. package/lib/umd/languageservice/utils/strings.js.map +1 -0
  445. package/lib/umd/languageservice/utils/textBuffer.d.ts +12 -0
  446. package/lib/umd/languageservice/utils/textBuffer.js +59 -0
  447. package/lib/umd/languageservice/utils/textBuffer.js.map +1 -0
  448. package/lib/umd/languageservice/utils/yamlAstUtils.d.ts +13 -0
  449. package/lib/umd/languageservice/utils/yamlAstUtils.js +126 -0
  450. package/lib/umd/languageservice/utils/yamlAstUtils.js.map +1 -0
  451. package/lib/umd/languageservice/utils/yamlScalar.d.ts +1 -0
  452. package/lib/umd/languageservice/utils/yamlScalar.js +83 -0
  453. package/lib/umd/languageservice/utils/yamlScalar.js.map +1 -0
  454. package/lib/umd/languageservice/yamlLanguageService.d.ts +135 -0
  455. package/lib/umd/languageservice/yamlLanguageService.js +115 -0
  456. package/lib/umd/languageservice/yamlLanguageService.js.map +1 -0
  457. package/lib/umd/languageservice/yamlTypes.d.ts +18 -0
  458. package/lib/umd/languageservice/yamlTypes.js +17 -0
  459. package/lib/umd/languageservice/yamlTypes.js.map +1 -0
  460. package/lib/umd/nodeTranslationSetup.d.ts +9 -0
  461. package/lib/umd/nodeTranslationSetup.js +48 -0
  462. package/lib/umd/nodeTranslationSetup.js.map +1 -0
  463. package/lib/umd/requestTypes.d.ts +63 -0
  464. package/lib/umd/requestTypes.js +59 -0
  465. package/lib/umd/requestTypes.js.map +1 -0
  466. package/lib/umd/server.d.ts +1 -0
  467. package/lib/umd/server.js +67 -0
  468. package/lib/umd/server.js.map +1 -0
  469. package/lib/umd/webworker/yamlServerMain.d.ts +1 -0
  470. package/lib/umd/webworker/yamlServerMain.js +52 -0
  471. package/lib/umd/webworker/yamlServerMain.js.map +1 -0
  472. package/lib/umd/yamlServerInit.d.ts +23 -0
  473. package/lib/umd/yamlServerInit.js +137 -0
  474. package/lib/umd/yamlServerInit.js.map +1 -0
  475. package/lib/umd/yamlSettings.d.ts +112 -0
  476. package/lib/umd/yamlSettings.js +84 -0
  477. package/lib/umd/yamlSettings.js.map +1 -0
  478. package/out/server/src/commands.d.ts +3 -0
  479. package/out/server/src/commands.js +12 -0
  480. package/out/server/src/commands.js.map +1 -0
  481. package/out/server/src/index.d.ts +3 -0
  482. package/out/server/src/index.js +22 -0
  483. package/out/server/src/index.js.map +1 -0
  484. package/out/server/src/languageserver/commandExecutor.d.ts +10 -0
  485. package/out/server/src/languageserver/commandExecutor.js +25 -0
  486. package/out/server/src/languageserver/commandExecutor.js.map +1 -0
  487. package/out/server/src/languageserver/handlers/languageHandlers.d.ts +61 -0
  488. package/out/server/src/languageserver/handlers/languageHandlers.js +240 -0
  489. package/out/server/src/languageserver/handlers/languageHandlers.js.map +1 -0
  490. package/out/server/src/languageserver/handlers/notificationHandlers.d.ts +29 -0
  491. package/out/server/src/languageserver/handlers/notificationHandlers.js +50 -0
  492. package/out/server/src/languageserver/handlers/notificationHandlers.js.map +1 -0
  493. package/out/server/src/languageserver/handlers/requestHandlers.d.ts +9 -0
  494. package/out/server/src/languageserver/handlers/requestHandlers.js +27 -0
  495. package/out/server/src/languageserver/handlers/requestHandlers.js.map +1 -0
  496. package/out/server/src/languageserver/handlers/schemaSelectionHandlers.d.ts +13 -0
  497. package/out/server/src/languageserver/handlers/schemaSelectionHandlers.js +76 -0
  498. package/out/server/src/languageserver/handlers/schemaSelectionHandlers.js.map +1 -0
  499. package/out/server/src/languageserver/handlers/settingsHandlers.d.ts +42 -0
  500. package/out/server/src/languageserver/handlers/settingsHandlers.js +320 -0
  501. package/out/server/src/languageserver/handlers/settingsHandlers.js.map +1 -0
  502. package/out/server/src/languageserver/handlers/validationHandlers.d.ts +15 -0
  503. package/out/server/src/languageserver/handlers/validationHandlers.js +112 -0
  504. package/out/server/src/languageserver/handlers/validationHandlers.js.map +1 -0
  505. package/out/server/src/languageserver/handlers/workspaceHandlers.d.ts +9 -0
  506. package/out/server/src/languageserver/handlers/workspaceHandlers.js +21 -0
  507. package/out/server/src/languageserver/handlers/workspaceHandlers.js.map +1 -0
  508. package/out/server/src/languageserver/telemetry.d.ts +9 -0
  509. package/out/server/src/languageserver/telemetry.js +24 -0
  510. package/out/server/src/languageserver/telemetry.js.map +1 -0
  511. package/out/server/src/languageservice/jsonASTTypes.d.ts +49 -0
  512. package/out/server/src/languageservice/jsonASTTypes.js +7 -0
  513. package/out/server/src/languageservice/jsonASTTypes.js.map +1 -0
  514. package/out/server/src/languageservice/jsonSchema.d.ts +103 -0
  515. package/out/server/src/languageservice/jsonSchema.js +15 -0
  516. package/out/server/src/languageservice/jsonSchema.js.map +1 -0
  517. package/out/server/src/languageservice/parser/ast-converter.d.ts +11 -0
  518. package/out/server/src/languageservice/parser/ast-converter.js +181 -0
  519. package/out/server/src/languageservice/parser/ast-converter.js.map +1 -0
  520. package/out/server/src/languageservice/parser/astNodeUtils.d.ts +4 -0
  521. package/out/server/src/languageservice/parser/astNodeUtils.js +54 -0
  522. package/out/server/src/languageservice/parser/astNodeUtils.js.map +1 -0
  523. package/out/server/src/languageservice/parser/custom-tag-provider.d.ts +7 -0
  524. package/out/server/src/languageservice/parser/custom-tag-provider.js +62 -0
  525. package/out/server/src/languageservice/parser/custom-tag-provider.js.map +1 -0
  526. package/out/server/src/languageservice/parser/isKubernetes.d.ts +4 -0
  527. package/out/server/src/languageservice/parser/isKubernetes.js +22 -0
  528. package/out/server/src/languageservice/parser/isKubernetes.js.map +1 -0
  529. package/out/server/src/languageservice/parser/jsonDocument.d.ts +83 -0
  530. package/out/server/src/languageservice/parser/jsonDocument.js +183 -0
  531. package/out/server/src/languageservice/parser/jsonDocument.js.map +1 -0
  532. package/out/server/src/languageservice/parser/scalar-type.d.ts +8 -0
  533. package/out/server/src/languageservice/parser/scalar-type.js +21 -0
  534. package/out/server/src/languageservice/parser/scalar-type.js.map +1 -0
  535. package/out/server/src/languageservice/parser/schemaValidation/baseValidator.d.ts +124 -0
  536. package/out/server/src/languageservice/parser/schemaValidation/baseValidator.js +1260 -0
  537. package/out/server/src/languageservice/parser/schemaValidation/baseValidator.js.map +1 -0
  538. package/out/server/src/languageservice/parser/schemaValidation/draft04Validator.d.ts +17 -0
  539. package/out/server/src/languageservice/parser/schemaValidation/draft04Validator.js +34 -0
  540. package/out/server/src/languageservice/parser/schemaValidation/draft04Validator.js.map +1 -0
  541. package/out/server/src/languageservice/parser/schemaValidation/draft07Validator.d.ts +15 -0
  542. package/out/server/src/languageservice/parser/schemaValidation/draft07Validator.js +32 -0
  543. package/out/server/src/languageservice/parser/schemaValidation/draft07Validator.js.map +1 -0
  544. package/out/server/src/languageservice/parser/schemaValidation/draft2019Validator.d.ts +28 -0
  545. package/out/server/src/languageservice/parser/schemaValidation/draft2019Validator.js +228 -0
  546. package/out/server/src/languageservice/parser/schemaValidation/draft2019Validator.js.map +1 -0
  547. package/out/server/src/languageservice/parser/schemaValidation/draft2020Validator.d.ts +17 -0
  548. package/out/server/src/languageservice/parser/schemaValidation/draft2020Validator.js +130 -0
  549. package/out/server/src/languageservice/parser/schemaValidation/draft2020Validator.js.map +1 -0
  550. package/out/server/src/languageservice/parser/schemaValidation/validatorFactory.d.ts +3 -0
  551. package/out/server/src/languageservice/parser/schemaValidation/validatorFactory.js +28 -0
  552. package/out/server/src/languageservice/parser/schemaValidation/validatorFactory.js.map +1 -0
  553. package/out/server/src/languageservice/parser/yaml-documents.d.ts +71 -0
  554. package/out/server/src/languageservice/parser/yaml-documents.js +264 -0
  555. package/out/server/src/languageservice/parser/yaml-documents.js.map +1 -0
  556. package/out/server/src/languageservice/parser/yamlParser07.d.ts +15 -0
  557. package/out/server/src/languageservice/parser/yamlParser07.js +55 -0
  558. package/out/server/src/languageservice/parser/yamlParser07.js.map +1 -0
  559. package/out/server/src/languageservice/services/crdUtil.d.ts +23 -0
  560. package/out/server/src/languageservice/services/crdUtil.js +79 -0
  561. package/out/server/src/languageservice/services/crdUtil.js.map +1 -0
  562. package/out/server/src/languageservice/services/documentSymbols.d.ts +12 -0
  563. package/out/server/src/languageservice/services/documentSymbols.js +71 -0
  564. package/out/server/src/languageservice/services/documentSymbols.js.map +1 -0
  565. package/out/server/src/languageservice/services/modelineUtil.d.ts +9 -0
  566. package/out/server/src/languageservice/services/modelineUtil.js +34 -0
  567. package/out/server/src/languageservice/services/modelineUtil.js.map +1 -0
  568. package/out/server/src/languageservice/services/schemaRequestHandler.d.ts +12 -0
  569. package/out/server/src/languageservice/services/schemaRequestHandler.js +88 -0
  570. package/out/server/src/languageservice/services/schemaRequestHandler.js.map +1 -0
  571. package/out/server/src/languageservice/services/validation/map-key-order.d.ts +7 -0
  572. package/out/server/src/languageservice/services/validation/map-key-order.js +39 -0
  573. package/out/server/src/languageservice/services/validation/map-key-order.js.map +1 -0
  574. package/out/server/src/languageservice/services/validation/types.d.ts +6 -0
  575. package/out/server/src/languageservice/services/validation/types.js +7 -0
  576. package/out/server/src/languageservice/services/validation/types.js.map +1 -0
  577. package/out/server/src/languageservice/services/validation/unused-anchors.d.ts +8 -0
  578. package/out/server/src/languageservice/services/validation/unused-anchors.js +95 -0
  579. package/out/server/src/languageservice/services/validation/unused-anchors.js.map +1 -0
  580. package/out/server/src/languageservice/services/validation/yaml-style.d.ts +12 -0
  581. package/out/server/src/languageservice/services/validation/yaml-style.js +32 -0
  582. package/out/server/src/languageservice/services/validation/yaml-style.js.map +1 -0
  583. package/out/server/src/languageservice/services/yamlCodeActions.d.ts +25 -0
  584. package/out/server/src/languageservice/services/yamlCodeActions.js +346 -0
  585. package/out/server/src/languageservice/services/yamlCodeActions.js.map +1 -0
  586. package/out/server/src/languageservice/services/yamlCodeLens.d.ts +11 -0
  587. package/out/server/src/languageservice/services/yamlCodeLens.js +50 -0
  588. package/out/server/src/languageservice/services/yamlCodeLens.js.map +1 -0
  589. package/out/server/src/languageservice/services/yamlCommands.d.ts +3 -0
  590. package/out/server/src/languageservice/services/yamlCommands.js +50 -0
  591. package/out/server/src/languageservice/services/yamlCommands.js.map +1 -0
  592. package/out/server/src/languageservice/services/yamlCompletion.d.ts +77 -0
  593. package/out/server/src/languageservice/services/yamlCompletion.js +1505 -0
  594. package/out/server/src/languageservice/services/yamlCompletion.js.map +1 -0
  595. package/out/server/src/languageservice/services/yamlDefinition.d.ts +9 -0
  596. package/out/server/src/languageservice/services/yamlDefinition.js +41 -0
  597. package/out/server/src/languageservice/services/yamlDefinition.js.map +1 -0
  598. package/out/server/src/languageservice/services/yamlFolding.d.ts +4 -0
  599. package/out/server/src/languageservice/services/yamlFolding.js +66 -0
  600. package/out/server/src/languageservice/services/yamlFolding.js.map +1 -0
  601. package/out/server/src/languageservice/services/yamlFormatter.d.ts +8 -0
  602. package/out/server/src/languageservice/services/yamlFormatter.js +50 -0
  603. package/out/server/src/languageservice/services/yamlFormatter.js.map +1 -0
  604. package/out/server/src/languageservice/services/yamlHover.d.ts +47 -0
  605. package/out/server/src/languageservice/services/yamlHover.js +370 -0
  606. package/out/server/src/languageservice/services/yamlHover.js.map +1 -0
  607. package/out/server/src/languageservice/services/yamlLinks.d.ts +8 -0
  608. package/out/server/src/languageservice/services/yamlLinks.js +31 -0
  609. package/out/server/src/languageservice/services/yamlLinks.js.map +1 -0
  610. package/out/server/src/languageservice/services/yamlOnTypeFormatting.d.ts +4 -0
  611. package/out/server/src/languageservice/services/yamlOnTypeFormatting.js +47 -0
  612. package/out/server/src/languageservice/services/yamlOnTypeFormatting.js.map +1 -0
  613. package/out/server/src/languageservice/services/yamlRename.d.ts +18 -0
  614. package/out/server/src/languageservice/services/yamlRename.js +188 -0
  615. package/out/server/src/languageservice/services/yamlRename.js.map +1 -0
  616. package/out/server/src/languageservice/services/yamlSchemaService.d.ts +99 -0
  617. package/out/server/src/languageservice/services/yamlSchemaService.js +1114 -0
  618. package/out/server/src/languageservice/services/yamlSchemaService.js.map +1 -0
  619. package/out/server/src/languageservice/services/yamlSelectionRanges.d.ts +3 -0
  620. package/out/server/src/languageservice/services/yamlSelectionRanges.js +134 -0
  621. package/out/server/src/languageservice/services/yamlSelectionRanges.js.map +1 -0
  622. package/out/server/src/languageservice/services/yamlValidation.d.ts +26 -0
  623. package/out/server/src/languageservice/services/yamlValidation.js +140 -0
  624. package/out/server/src/languageservice/services/yamlValidation.js.map +1 -0
  625. package/out/server/src/languageservice/telemetry.d.ts +16 -0
  626. package/out/server/src/languageservice/telemetry.js +7 -0
  627. package/out/server/src/languageservice/telemetry.js.map +1 -0
  628. package/out/server/src/languageservice/utils/arrUtils.d.ts +6 -0
  629. package/out/server/src/languageservice/utils/arrUtils.js +89 -0
  630. package/out/server/src/languageservice/utils/arrUtils.js.map +1 -0
  631. package/out/server/src/languageservice/utils/block-string-rewriter.d.ts +8 -0
  632. package/out/server/src/languageservice/utils/block-string-rewriter.js +219 -0
  633. package/out/server/src/languageservice/utils/block-string-rewriter.js.map +1 -0
  634. package/out/server/src/languageservice/utils/charCode.d.ts +415 -0
  635. package/out/server/src/languageservice/utils/charCode.js +7 -0
  636. package/out/server/src/languageservice/utils/charCode.js.map +1 -0
  637. package/out/server/src/languageservice/utils/diagnostic-filter.d.ts +50 -0
  638. package/out/server/src/languageservice/utils/diagnostic-filter.js +88 -0
  639. package/out/server/src/languageservice/utils/diagnostic-filter.js.map +1 -0
  640. package/out/server/src/languageservice/utils/documentPositionCalculator.d.ts +5 -0
  641. package/out/server/src/languageservice/utils/documentPositionCalculator.js +63 -0
  642. package/out/server/src/languageservice/utils/documentPositionCalculator.js.map +1 -0
  643. package/out/server/src/languageservice/utils/filePatternAssociation.d.ts +8 -0
  644. package/out/server/src/languageservice/utils/filePatternAssociation.js +27 -0
  645. package/out/server/src/languageservice/utils/filePatternAssociation.js.map +1 -0
  646. package/out/server/src/languageservice/utils/flow-style-rewriter.d.ts +6 -0
  647. package/out/server/src/languageservice/utils/flow-style-rewriter.js +57 -0
  648. package/out/server/src/languageservice/utils/flow-style-rewriter.js.map +1 -0
  649. package/out/server/src/languageservice/utils/indentationGuesser.d.ts +15 -0
  650. package/out/server/src/languageservice/utils/indentationGuesser.js +180 -0
  651. package/out/server/src/languageservice/utils/indentationGuesser.js.map +1 -0
  652. package/out/server/src/languageservice/utils/json.d.ts +11 -0
  653. package/out/server/src/languageservice/utils/json.js +83 -0
  654. package/out/server/src/languageservice/utils/json.js.map +1 -0
  655. package/out/server/src/languageservice/utils/math.d.ts +1 -0
  656. package/out/server/src/languageservice/utils/math.js +13 -0
  657. package/out/server/src/languageservice/utils/math.js.map +1 -0
  658. package/out/server/src/languageservice/utils/objects.d.ts +16 -0
  659. package/out/server/src/languageservice/utils/objects.js +102 -0
  660. package/out/server/src/languageservice/utils/objects.js.map +1 -0
  661. package/out/server/src/languageservice/utils/parseUtils.d.ts +17 -0
  662. package/out/server/src/languageservice/utils/parseUtils.js +5 -0
  663. package/out/server/src/languageservice/utils/parseUtils.js.map +1 -0
  664. package/out/server/src/languageservice/utils/paths.d.ts +5 -0
  665. package/out/server/src/languageservice/utils/paths.js +48 -0
  666. package/out/server/src/languageservice/utils/paths.js.map +1 -0
  667. package/out/server/src/languageservice/utils/schemaUrls.d.ts +14 -0
  668. package/out/server/src/languageservice/utils/schemaUrls.js +64 -0
  669. package/out/server/src/languageservice/utils/schemaUrls.js.map +1 -0
  670. package/out/server/src/languageservice/utils/schemaUtils.d.ts +19 -0
  671. package/out/server/src/languageservice/utils/schemaUtils.js +70 -0
  672. package/out/server/src/languageservice/utils/schemaUtils.js.map +1 -0
  673. package/out/server/src/languageservice/utils/strings.d.ts +10 -0
  674. package/out/server/src/languageservice/utils/strings.js +89 -0
  675. package/out/server/src/languageservice/utils/strings.js.map +1 -0
  676. package/out/server/src/languageservice/utils/textBuffer.d.ts +12 -0
  677. package/out/server/src/languageservice/utils/textBuffer.js +49 -0
  678. package/out/server/src/languageservice/utils/textBuffer.js.map +1 -0
  679. package/out/server/src/languageservice/utils/yamlAstUtils.d.ts +13 -0
  680. package/out/server/src/languageservice/utils/yamlAstUtils.js +116 -0
  681. package/out/server/src/languageservice/utils/yamlAstUtils.js.map +1 -0
  682. package/out/server/src/languageservice/utils/yamlScalar.d.ts +1 -0
  683. package/out/server/src/languageservice/utils/yamlScalar.js +73 -0
  684. package/out/server/src/languageservice/utils/yamlScalar.js.map +1 -0
  685. package/out/server/src/languageservice/yamlLanguageService.d.ts +135 -0
  686. package/out/server/src/languageservice/yamlLanguageService.js +105 -0
  687. package/out/server/src/languageservice/yamlLanguageService.js.map +1 -0
  688. package/out/server/src/languageservice/yamlTypes.d.ts +18 -0
  689. package/out/server/src/languageservice/yamlTypes.js +7 -0
  690. package/out/server/src/languageservice/yamlTypes.js.map +1 -0
  691. package/out/server/src/nodeTranslationSetup.d.ts +9 -0
  692. package/out/server/src/nodeTranslationSetup.js +38 -0
  693. package/out/server/src/nodeTranslationSetup.js.map +1 -0
  694. package/out/server/src/requestTypes.d.ts +63 -0
  695. package/out/server/src/requestTypes.js +49 -0
  696. package/out/server/src/requestTypes.js.map +1 -0
  697. package/out/server/src/server.d.ts +1 -0
  698. package/out/server/src/server.js +57 -0
  699. package/out/server/src/server.js.map +1 -0
  700. package/out/server/src/webworker/yamlServerMain.d.ts +1 -0
  701. package/out/server/src/webworker/yamlServerMain.js +42 -0
  702. package/out/server/src/webworker/yamlServerMain.js.map +1 -0
  703. package/out/server/src/yamlServerInit.d.ts +23 -0
  704. package/out/server/src/yamlServerInit.js +127 -0
  705. package/out/server/src/yamlServerInit.js.map +1 -0
  706. package/out/server/src/yamlSettings.d.ts +112 -0
  707. package/out/server/src/yamlSettings.js +74 -0
  708. package/out/server/src/yamlSettings.js.map +1 -0
  709. package/out/server/test/arrUtils.test.d.ts +1 -0
  710. package/out/server/test/arrUtils.test.js +60 -0
  711. package/out/server/test/arrUtils.test.js.map +1 -0
  712. package/out/server/test/astUtils.test.d.ts +1 -0
  713. package/out/server/test/astUtils.test.js +79 -0
  714. package/out/server/test/astUtils.test.js.map +1 -0
  715. package/out/server/test/autoCompletion.test.d.ts +1 -0
  716. package/out/server/test/autoCompletion.test.js +2832 -0
  717. package/out/server/test/autoCompletion.test.js.map +1 -0
  718. package/out/server/test/autoCompletionFix.test.d.ts +1 -0
  719. package/out/server/test/autoCompletionFix.test.js +1591 -0
  720. package/out/server/test/autoCompletionFix.test.js.map +1 -0
  721. package/out/server/test/bundlel10n.test.d.ts +1 -0
  722. package/out/server/test/bundlel10n.test.js +73 -0
  723. package/out/server/test/bundlel10n.test.js.map +1 -0
  724. package/out/server/test/code-action-schema.test.d.ts +1 -0
  725. package/out/server/test/code-action-schema.test.js +89 -0
  726. package/out/server/test/code-action-schema.test.js.map +1 -0
  727. package/out/server/test/customTags.test.d.ts +1 -0
  728. package/out/server/test/customTags.test.js +88 -0
  729. package/out/server/test/customTags.test.js.map +1 -0
  730. package/out/server/test/defaultSnippets.test.d.ts +1 -0
  731. package/out/server/test/defaultSnippets.test.js +384 -0
  732. package/out/server/test/defaultSnippets.test.js.map +1 -0
  733. package/out/server/test/diagnostic-filter.test.d.ts +1 -0
  734. package/out/server/test/diagnostic-filter.test.js +161 -0
  735. package/out/server/test/diagnostic-filter.test.js.map +1 -0
  736. package/out/server/test/documentPositionCalculator.test.d.ts +1 -0
  737. package/out/server/test/documentPositionCalculator.test.js +69 -0
  738. package/out/server/test/documentPositionCalculator.test.js.map +1 -0
  739. package/out/server/test/documentSymbols.test.d.ts +1 -0
  740. package/out/server/test/documentSymbols.test.js +267 -0
  741. package/out/server/test/documentSymbols.test.js.map +1 -0
  742. package/out/server/test/findLinks.test.d.ts +1 -0
  743. package/out/server/test/findLinks.test.js +58 -0
  744. package/out/server/test/findLinks.test.js.map +1 -0
  745. package/out/server/test/flow-style-rewriter.test.d.ts +1 -0
  746. package/out/server/test/flow-style-rewriter.test.js +79 -0
  747. package/out/server/test/flow-style-rewriter.test.js.map +1 -0
  748. package/out/server/test/formatter.test.d.ts +1 -0
  749. package/out/server/test/formatter.test.js +170 -0
  750. package/out/server/test/formatter.test.js.map +1 -0
  751. package/out/server/test/hover.test.d.ts +1 -0
  752. package/out/server/test/hover.test.js +1056 -0
  753. package/out/server/test/hover.test.js.map +1 -0
  754. package/out/server/test/integration.test.d.ts +1 -0
  755. package/out/server/test/integration.test.js +293 -0
  756. package/out/server/test/integration.test.js.map +1 -0
  757. package/out/server/test/invalid-metaschema.test.d.ts +1 -0
  758. package/out/server/test/invalid-metaschema.test.js +43 -0
  759. package/out/server/test/invalid-metaschema.test.js.map +1 -0
  760. package/out/server/test/jsonParser.test.d.ts +1 -0
  761. package/out/server/test/jsonParser.test.js +1682 -0
  762. package/out/server/test/jsonParser.test.js.map +1 -0
  763. package/out/server/test/multipleDocuments.test.d.ts +1 -0
  764. package/out/server/test/multipleDocuments.test.js +117 -0
  765. package/out/server/test/multipleDocuments.test.js.map +1 -0
  766. package/out/server/test/objects.test.d.ts +1 -0
  767. package/out/server/test/objects.test.js +110 -0
  768. package/out/server/test/objects.test.js.map +1 -0
  769. package/out/server/test/paths.test.d.ts +1 -0
  770. package/out/server/test/paths.test.js +223 -0
  771. package/out/server/test/paths.test.js.map +1 -0
  772. package/out/server/test/scalaruri.test.d.ts +1 -0
  773. package/out/server/test/scalaruri.test.js +363 -0
  774. package/out/server/test/scalaruri.test.js.map +1 -0
  775. package/out/server/test/schema.test.d.ts +1 -0
  776. package/out/server/test/schema.test.js +952 -0
  777. package/out/server/test/schema.test.js.map +1 -0
  778. package/out/server/test/schema2019Validation.test.d.ts +1 -0
  779. package/out/server/test/schema2019Validation.test.js +3630 -0
  780. package/out/server/test/schema2019Validation.test.js.map +1 -0
  781. package/out/server/test/schema2020Validation.test.d.ts +1 -0
  782. package/out/server/test/schema2020Validation.test.js +2037 -0
  783. package/out/server/test/schema2020Validation.test.js.map +1 -0
  784. package/out/server/test/schemaRequestHandler.test.d.ts +1 -0
  785. package/out/server/test/schemaRequestHandler.test.js +48 -0
  786. package/out/server/test/schemaRequestHandler.test.js.map +1 -0
  787. package/out/server/test/schemaSelectionHandlers.test.d.ts +1 -0
  788. package/out/server/test/schemaSelectionHandlers.test.js +99 -0
  789. package/out/server/test/schemaSelectionHandlers.test.js.map +1 -0
  790. package/out/server/test/schemaValidation.test.d.ts +1 -0
  791. package/out/server/test/schemaValidation.test.js +2269 -0
  792. package/out/server/test/schemaValidation.test.js.map +1 -0
  793. package/out/server/test/settingsHandlers.test.d.ts +1 -0
  794. package/out/server/test/settingsHandlers.test.js +299 -0
  795. package/out/server/test/settingsHandlers.test.js.map +1 -0
  796. package/out/server/test/strings.test.d.ts +1 -0
  797. package/out/server/test/strings.test.js +92 -0
  798. package/out/server/test/strings.test.js.map +1 -0
  799. package/out/server/test/telemetry.test.d.ts +1 -0
  800. package/out/server/test/telemetry.test.js +36 -0
  801. package/out/server/test/telemetry.test.js.map +1 -0
  802. package/out/server/test/textBuffer.test.d.ts +1 -0
  803. package/out/server/test/textBuffer.test.js +41 -0
  804. package/out/server/test/textBuffer.test.js.map +1 -0
  805. package/out/server/test/utils/errorMessages.d.ts +27 -0
  806. package/out/server/test/utils/errorMessages.js +38 -0
  807. package/out/server/test/utils/errorMessages.js.map +1 -0
  808. package/out/server/test/utils/serviceSetup.d.ts +17 -0
  809. package/out/server/test/utils/serviceSetup.js +74 -0
  810. package/out/server/test/utils/serviceSetup.js.map +1 -0
  811. package/out/server/test/utils/testHelper.d.ts +78 -0
  812. package/out/server/test/utils/testHelper.js +202 -0
  813. package/out/server/test/utils/testHelper.js.map +1 -0
  814. package/out/server/test/utils/testsTypes.d.ts +29 -0
  815. package/out/server/test/utils/testsTypes.js +61 -0
  816. package/out/server/test/utils/testsTypes.js.map +1 -0
  817. package/out/server/test/utils/verifyError.d.ts +8 -0
  818. package/out/server/test/utils/verifyError.js +82 -0
  819. package/out/server/test/utils/verifyError.js.map +1 -0
  820. package/out/server/test/yaml-documents.test.d.ts +1 -0
  821. package/out/server/test/yaml-documents.test.js +198 -0
  822. package/out/server/test/yaml-documents.test.js.map +1 -0
  823. package/out/server/test/yamlCodeActions.test.d.ts +1 -0
  824. package/out/server/test/yamlCodeActions.test.js +864 -0
  825. package/out/server/test/yamlCodeActions.test.js.map +1 -0
  826. package/out/server/test/yamlCodeLens.test.d.ts +1 -0
  827. package/out/server/test/yamlCodeLens.test.js +165 -0
  828. package/out/server/test/yamlCodeLens.test.js.map +1 -0
  829. package/out/server/test/yamlCommands.test.d.ts +1 -0
  830. package/out/server/test/yamlCommands.test.js +89 -0
  831. package/out/server/test/yamlCommands.test.js.map +1 -0
  832. package/out/server/test/yamlDefinition.test.d.ts +1 -0
  833. package/out/server/test/yamlDefinition.test.js +30 -0
  834. package/out/server/test/yamlDefinition.test.js.map +1 -0
  835. package/out/server/test/yamlFolding.test.d.ts +1 -0
  836. package/out/server/test/yamlFolding.test.js +142 -0
  837. package/out/server/test/yamlFolding.test.js.map +1 -0
  838. package/out/server/test/yamlLanguageService.test.d.ts +1 -0
  839. package/out/server/test/yamlLanguageService.test.js +90 -0
  840. package/out/server/test/yamlLanguageService.test.js.map +1 -0
  841. package/out/server/test/yamlOnTypeFormatting.test.d.ts +1 -0
  842. package/out/server/test/yamlOnTypeFormatting.test.js +69 -0
  843. package/out/server/test/yamlOnTypeFormatting.test.js.map +1 -0
  844. package/out/server/test/yamlParser.test.d.ts +1 -0
  845. package/out/server/test/yamlParser.test.js +242 -0
  846. package/out/server/test/yamlParser.test.js.map +1 -0
  847. package/out/server/test/yamlRename.test.d.ts +1 -0
  848. package/out/server/test/yamlRename.test.js +106 -0
  849. package/out/server/test/yamlRename.test.js.map +1 -0
  850. package/out/server/test/yamlSchema.test.d.ts +1 -0
  851. package/out/server/test/yamlSchema.test.js +62 -0
  852. package/out/server/test/yamlSchema.test.js.map +1 -0
  853. package/out/server/test/yamlSchemaService.test.d.ts +1 -0
  854. package/out/server/test/yamlSchemaService.test.js +403 -0
  855. package/out/server/test/yamlSchemaService.test.js.map +1 -0
  856. package/out/server/test/yamlSelectionRanges.test.d.ts +1 -0
  857. package/out/server/test/yamlSelectionRanges.test.js +248 -0
  858. package/out/server/test/yamlSelectionRanges.test.js.map +1 -0
  859. package/out/server/test/yamlValidation.test.d.ts +1 -0
  860. package/out/server/test/yamlValidation.test.js +303 -0
  861. package/out/server/test/yamlValidation.test.js.map +1 -0
  862. package/package.json +106 -0
  863. package/scripts/check-dependencies.js +21 -0
  864. package/tsconfig.esm.json +15 -0
  865. package/tsconfig.umd.json +14 -0
@@ -0,0 +1,1110 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Red Hat, Inc. All rights reserved.
3
+ * Copyright (c) Microsoft Corporation. All rights reserved.
4
+ * Licensed under the MIT License. See License.txt in the project root for license information.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ import { SchemaDialect } from '../jsonSchema';
7
+ import { SchemaPriority } from '../yamlLanguageService';
8
+ import { UnresolvedSchema, ResolvedSchema, JSONSchemaService, } from 'vscode-json-languageservice/lib/umd/services/jsonSchemaService';
9
+ import { URI } from 'vscode-uri';
10
+ import * as l10n from '@vscode/l10n';
11
+ import * as path from 'path';
12
+ import { getSchemaFromModeline } from './modelineUtil';
13
+ import { parse } from 'yaml';
14
+ import * as Json from 'jsonc-parser';
15
+ import Ajv from 'ajv';
16
+ import Ajv4 from 'ajv-draft-04';
17
+ import Ajv2019 from 'ajv/dist/2019';
18
+ import Ajv2020 from 'ajv/dist/2020';
19
+ import { autoDetectKubernetesSchemaFromDocument } from './crdUtil';
20
+ import { CRD_CATALOG_URL, KUBERNETES_SCHEMA_URL } from '../utils/schemaUrls';
21
+ const ajv4 = new Ajv4({ allErrors: true });
22
+ const ajv7 = new Ajv({ allErrors: true });
23
+ const ajv2019 = new Ajv2019({ allErrors: true });
24
+ const ajv2020 = new Ajv2020({ allErrors: true });
25
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
26
+ const jsonSchema04 = require('ajv-draft-04/dist/refs/json-schema-draft-04.json');
27
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
28
+ const jsonSchema07 = require('ajv/dist/refs/json-schema-draft-07.json');
29
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
30
+ const jsonSchema2019 = require('ajv/dist/refs/json-schema-2019-09/schema.json');
31
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
32
+ const jsonSchema2020 = require('ajv/dist/refs/json-schema-2020-12/schema.json');
33
+ const schema04Validator = ajv4.compile(jsonSchema04);
34
+ const schema07Validator = ajv7.compile(jsonSchema07);
35
+ const schema2019Validator = ajv2019.compile(jsonSchema2019);
36
+ const schema2020Validator = ajv2020.compile(jsonSchema2020);
37
+ const schemaDialectCache = new Map();
38
+ const schemaDialectInFlight = new Map();
39
+ // metadata/keywords that don't add constraints and thus don't count as $ref siblings
40
+ const REF_SIBLING_NONCONSTRAINT_KEYS = new Set([
41
+ '$ref',
42
+ '_$ref',
43
+ '$schema',
44
+ '$id',
45
+ 'id',
46
+ '_baseUrl',
47
+ '_dialect',
48
+ '$anchor',
49
+ '$dynamicAnchor',
50
+ '$dynamicRef',
51
+ '$recursiveAnchor',
52
+ '$recursiveRef',
53
+ 'definitions',
54
+ '$defs',
55
+ '$comment',
56
+ 'title',
57
+ 'description',
58
+ '$vocabulary',
59
+ 'examples',
60
+ 'default',
61
+ 'url',
62
+ 'closestTitle',
63
+ 'unevaluatedProperties',
64
+ 'unevaluatedItems',
65
+ ]);
66
+ export var MODIFICATION_ACTIONS;
67
+ (function (MODIFICATION_ACTIONS) {
68
+ MODIFICATION_ACTIONS[MODIFICATION_ACTIONS["delete"] = 0] = "delete";
69
+ MODIFICATION_ACTIONS[MODIFICATION_ACTIONS["add"] = 1] = "add";
70
+ MODIFICATION_ACTIONS[MODIFICATION_ACTIONS["deleteAll"] = 2] = "deleteAll";
71
+ })(MODIFICATION_ACTIONS || (MODIFICATION_ACTIONS = {}));
72
+ export class YAMLSchemaService extends JSONSchemaService {
73
+ constructor(requestService, contextService, promiseConstructor, yamlSettings) {
74
+ super(requestService, contextService, promiseConstructor);
75
+ this.schemaUriToNameAndDescription = new Map();
76
+ this.customSchemaProvider = undefined;
77
+ this.requestService = requestService;
78
+ this.schemaPriorityMapping = new Map();
79
+ this.yamlSettings = yamlSettings;
80
+ }
81
+ registerCustomSchemaProvider(customSchemaProvider) {
82
+ this.customSchemaProvider = customSchemaProvider;
83
+ }
84
+ getAllSchemas() {
85
+ const result = [];
86
+ const schemaUris = new Set();
87
+ for (const filePattern of this.filePatternAssociations) {
88
+ const schemaUri = filePattern.uris[0];
89
+ if (schemaUris.has(schemaUri)) {
90
+ continue;
91
+ }
92
+ schemaUris.add(schemaUri);
93
+ const schemaHandle = {
94
+ uri: schemaUri,
95
+ fromStore: false,
96
+ usedForCurrentFile: false,
97
+ };
98
+ if (this.schemaUriToNameAndDescription.has(schemaUri)) {
99
+ const { name, description, versions } = this.schemaUriToNameAndDescription.get(schemaUri);
100
+ schemaHandle.name = name;
101
+ schemaHandle.description = description;
102
+ schemaHandle.fromStore = true;
103
+ schemaHandle.versions = versions;
104
+ }
105
+ result.push(schemaHandle);
106
+ }
107
+ return result;
108
+ }
109
+ collectSchemaNodes(push, ...values) {
110
+ const collect = (value) => {
111
+ if (!value || typeof value !== 'object')
112
+ return;
113
+ if (Array.isArray(value)) {
114
+ for (const entry of value) {
115
+ collect(entry);
116
+ }
117
+ return;
118
+ }
119
+ push(value);
120
+ };
121
+ for (const value of values) {
122
+ collect(value);
123
+ }
124
+ }
125
+ schemaMapValues(map) {
126
+ if (!map || typeof map !== 'object')
127
+ return undefined;
128
+ return Object.values(map);
129
+ }
130
+ async resolveSchemaContent(schemaToResolve, schemaURL, dependencies) {
131
+ const resolveErrors = schemaToResolve.errors.slice(0);
132
+ const loc = toDisplayString(schemaURL);
133
+ const raw = schemaToResolve.schema;
134
+ if (raw === null || Array.isArray(raw) || (typeof raw !== 'object' && typeof raw !== 'boolean')) {
135
+ const got = raw === null ? 'null' : Array.isArray(raw) ? 'array' : typeof raw;
136
+ resolveErrors.push(l10n.t("Schema '{0}' is not valid: {1}", loc, `expected a JSON Schema object or boolean, got "${got}".`));
137
+ return new ResolvedSchema({}, resolveErrors);
138
+ }
139
+ const _cloneSchema = (value, seen, stopCondition) => {
140
+ // primitives and null
141
+ if (value === null || typeof value !== 'object')
142
+ return value;
143
+ if (stopCondition) {
144
+ const replacement = stopCondition(value, seen.size);
145
+ if (replacement !== undefined)
146
+ return replacement;
147
+ }
148
+ // already cloned
149
+ if (seen.has(value))
150
+ return seen.get(value);
151
+ // clone arrays
152
+ if (Array.isArray(value)) {
153
+ const arr = [];
154
+ seen.set(value, arr);
155
+ for (const item of value) {
156
+ arr.push(_cloneSchema(item, seen, stopCondition));
157
+ }
158
+ return arr;
159
+ }
160
+ // clone objects
161
+ const result = {};
162
+ seen.set(value, result);
163
+ for (const prop in value) {
164
+ result[prop] = _cloneSchema(value[prop], seen, stopCondition);
165
+ }
166
+ return result;
167
+ };
168
+ /**
169
+ * ----------------------------
170
+ * Meta-validate a schema node against its dialect's meta-schema
171
+ * ----------------------------
172
+ */
173
+ const _loadSchema = this.loadSchema.bind(this);
174
+ async function _metaValidateSchemaNode(node, hasNestedSchema) {
175
+ if (!node || typeof node !== 'object')
176
+ return;
177
+ const dialect = await pickSchemaDialect(node.$schema, _loadSchema);
178
+ dialect && (node._dialect = dialect);
179
+ const validator = pickMetaValidator(dialect);
180
+ if (!validator)
181
+ return;
182
+ let toValidate = node;
183
+ if (hasNestedSchema) {
184
+ // clone for meta-validation: stop at dialect boundaries abd replace with {}
185
+ const stopAtDialectBoundary = (val, seenSize) => {
186
+ if (seenSize !== 0 && val && typeof val === 'object' && val.$schema)
187
+ return {};
188
+ return undefined;
189
+ };
190
+ toValidate = _cloneSchema(node, new Map(), stopAtDialectBoundary);
191
+ }
192
+ if (!validator(toValidate)) {
193
+ const errs = [];
194
+ for (const err of validator.errors) {
195
+ errs.push(`${err.instancePath} : ${err.message}`);
196
+ }
197
+ resolveErrors.push(l10n.t("Schema '{0}' is not valid: {1}", loc, `\n${errs.join('\n')}`));
198
+ }
199
+ }
200
+ const resourceIndexByUri = new Map();
201
+ const _getResourceIndex = (resourceUri) => {
202
+ let entry = resourceIndexByUri.get(resourceUri);
203
+ if (!entry) {
204
+ entry = { fragments: new Map() };
205
+ resourceIndexByUri.set(resourceUri, entry);
206
+ }
207
+ return entry;
208
+ };
209
+ /**
210
+ * Adds a resource's dynamic anchors to the inherited scope from parent resources
211
+ *
212
+ * Draft 2020-12: For $dynamicRef resolution, when schema A references schema B,
213
+ * B's dynamic anchors are added to A's scope. This builds a chain where $dynamicRef
214
+ * looks for the outermost (first) matching anchor.
215
+ */
216
+ const _addResourceDynamicAnchors = (scope, resourceUri) => {
217
+ const entry = resourceIndexByUri.get(resourceUri);
218
+ if (!entry || entry.fragments.size === 0)
219
+ return scope;
220
+ let result = scope;
221
+ for (const [name, entryItem] of entry.fragments) {
222
+ if (!entryItem.dynamic)
223
+ continue;
224
+ const current = result?.get(name) ?? [];
225
+ if (current.some((existing) => existing._baseUrl === resourceUri))
226
+ continue;
227
+ // clone map on first modification
228
+ if (result === scope)
229
+ result = scope ? new Map(scope) : new Map();
230
+ result.set(name, current.concat(entryItem.node));
231
+ }
232
+ return result;
233
+ };
234
+ // resolve relative URI against base URI
235
+ // e.g. resolve "./foo.json" against "http://example.com/bar.json" => "http://example.com/foo.json"
236
+ const _resolveAgainstBase = (baseUri, ref) => {
237
+ if (this.contextService)
238
+ return this.contextService.resolveRelativePath(ref, baseUri);
239
+ return this.normalizeId(ref);
240
+ };
241
+ const _preferLocalBaseForRemoteId = async (currentBase, id) => {
242
+ try {
243
+ const currentBaseUri = URI.parse(currentBase);
244
+ const idUri = URI.parse(id);
245
+ const localFileName = path.posix.basename(idUri.path);
246
+ const localDir = path.posix.dirname(currentBaseUri.path);
247
+ const localPath = path.posix.join(localDir, localFileName);
248
+ const localUriStr = currentBaseUri.with({ path: localPath, query: idUri.query, fragment: idUri.fragment }).toString();
249
+ if (localUriStr === currentBase)
250
+ return localUriStr;
251
+ const content = await this.requestService(localUriStr);
252
+ return content ? localUriStr : _resolveAgainstBase(currentBase, id);
253
+ }
254
+ catch {
255
+ return _resolveAgainstBase(currentBase, id);
256
+ }
257
+ };
258
+ const _indexSchemaResources = async (root, initialBaseUri) => {
259
+ const preOrderStack = [{ node: root, baseUri: initialBaseUri }];
260
+ const postOrderStack = [];
261
+ const childListByNode = new WeakMap();
262
+ const seen = new Set();
263
+ while (preOrderStack.length) {
264
+ const current = preOrderStack.pop();
265
+ if (!current)
266
+ continue;
267
+ const node = current.node;
268
+ if (!node || typeof node !== 'object' || seen.has(node))
269
+ continue;
270
+ seen.add(node);
271
+ let baseUri = current.baseUri;
272
+ const id = node.$id || node.id;
273
+ if (id) {
274
+ const preferredBaseUri = await _preferLocalBaseForRemoteId(baseUri, id);
275
+ node._baseUrl = preferredBaseUri;
276
+ const hashIndex = preferredBaseUri.indexOf('#');
277
+ if (hashIndex !== -1 && hashIndex < preferredBaseUri.length - 1) {
278
+ // Draft-07 and earlier: $id with fragment defines a plain-name anchor scoped to the resolved base
279
+ const frag = preferredBaseUri.slice(hashIndex + 1);
280
+ _getResourceIndex(baseUri).fragments.set(frag, { node });
281
+ }
282
+ else {
283
+ // $id without fragment creates a new embedded resource scope
284
+ baseUri = preferredBaseUri;
285
+ const entry = _getResourceIndex(preferredBaseUri);
286
+ if (!entry.root) {
287
+ entry.root = node;
288
+ }
289
+ }
290
+ }
291
+ // Draft 2019-09+: $anchor keyword
292
+ if (node.$anchor) {
293
+ _getResourceIndex(baseUri).fragments.set(node.$anchor, { node });
294
+ }
295
+ // Draft 2020-12+: $dynamicAnchor keyword
296
+ if (node.$dynamicAnchor) {
297
+ node._baseUrl = baseUri;
298
+ _getResourceIndex(baseUri).fragments.set(node.$dynamicAnchor, { node, dynamic: true });
299
+ }
300
+ const children = [];
301
+ childListByNode.set(node, children);
302
+ // collect all child schemas
303
+ this.collectSchemaNodes((entry) => {
304
+ children.push(entry);
305
+ preOrderStack.push({ node: entry, baseUri });
306
+ }, node.not, node.if, node.then, node.else, node.contains, node.propertyNames, node.additionalProperties, node.items, node.additionalItems, node.prefixItems, this.schemaMapValues(node.properties), this.schemaMapValues(node.patternProperties), this.schemaMapValues(node.definitions), this.schemaMapValues(node.$defs), this.schemaMapValues(node.dependentSchemas), this.schemaMapValues(node.dependencies), node.allOf, node.anyOf, node.oneOf, node.schemaSequence);
307
+ postOrderStack.push(node);
308
+ }
309
+ const hasNestedSchema = new WeakMap();
310
+ while (postOrderStack.length) {
311
+ const node = postOrderStack.pop();
312
+ let hasNested = false;
313
+ for (const child of childListByNode.get(node)) {
314
+ if (child.$schema || hasNestedSchema.get(child)) {
315
+ hasNested = true;
316
+ break;
317
+ }
318
+ }
319
+ hasNestedSchema.set(node, hasNested);
320
+ if (node === root || node.$schema)
321
+ await _metaValidateSchemaNode(node, hasNested);
322
+ }
323
+ };
324
+ let schema = raw;
325
+ const schemaBaseURL = schemaToResolve.uri ?? schemaURL;
326
+ await _indexSchemaResources(schema, schemaBaseURL);
327
+ const _findSection = (schemaRoot, refPath, sourceURI) => {
328
+ if (!refPath) {
329
+ return schemaRoot;
330
+ }
331
+ // JSON pointer style
332
+ if (refPath[0] === '/') {
333
+ let current = schemaRoot;
334
+ const parts = refPath.substr(1).split('/');
335
+ for (const part of parts) {
336
+ // in JSON Pointer: ~ must be escaped as ~0, / must be escaped as ~1
337
+ current = current?.[part.replace(/~1/g, '/').replace(/~0/g, '~')];
338
+ if (current === null)
339
+ return undefined;
340
+ }
341
+ return current;
342
+ }
343
+ // plain-name fragment ($anchor or $id#fragment) -> lookup in collected fragments
344
+ return _getResourceIndex(sourceURI).fragments.get(refPath).node;
345
+ };
346
+ const _merge = (target, sourceRoot, sourceURI, refPath, clone = false) => {
347
+ const section = _findSection(sourceRoot, refPath, sourceURI);
348
+ if (typeof section === 'boolean') {
349
+ if (!section)
350
+ target.not = {};
351
+ return;
352
+ }
353
+ if (typeof section === 'object' && section) {
354
+ const source = clone ? _cloneSchema(section, new Map()) : section;
355
+ for (const key in source) {
356
+ if (Object.prototype.hasOwnProperty.call(source, key) && !Object.prototype.hasOwnProperty.call(target, key)) {
357
+ target[key] = source[key];
358
+ }
359
+ }
360
+ return;
361
+ }
362
+ else {
363
+ resolveErrors.push(l10n.t("$ref '{0}' in '{1}' cannot be resolved.", refPath, sourceURI));
364
+ }
365
+ };
366
+ const _resolveRefUri = (parentSchemaURL, refUri) => {
367
+ const resolvedAgainstParent = _resolveAgainstBase(parentSchemaURL, refUri);
368
+ if (!refUri.startsWith('/'))
369
+ return resolvedAgainstParent;
370
+ const parentResource = resourceIndexByUri.get(parentSchemaURL)?.root;
371
+ const parentResourceId = parentResource?.$id || parentResource?.id;
372
+ const resolvedParentId = _resolveAgainstBase(parentSchemaURL, parentResourceId);
373
+ if (!resolvedParentId.startsWith('http://') && !resolvedParentId.startsWith('https://'))
374
+ return resolvedAgainstParent;
375
+ return _resolveAgainstBase(resolvedParentId, refUri);
376
+ };
377
+ const _resolveLocalSiblingFromRemoteUri = (parentSchemaURL, resolvedRefUri) => {
378
+ try {
379
+ const parentUri = URI.parse(parentSchemaURL);
380
+ const targetUri = URI.parse(resolvedRefUri);
381
+ if (parentUri.scheme !== 'file')
382
+ return undefined;
383
+ if (targetUri.scheme !== 'http' && targetUri.scheme !== 'https')
384
+ return undefined;
385
+ const localFileName = path.posix.basename(targetUri.path);
386
+ if (!localFileName)
387
+ return undefined;
388
+ const localDir = path.posix.dirname(parentUri.path);
389
+ const localPath = path.posix.join(localDir, localFileName);
390
+ return parentUri.with({ path: localPath, query: targetUri.query, fragment: targetUri.fragment }).toString();
391
+ }
392
+ catch {
393
+ return undefined;
394
+ }
395
+ };
396
+ const resolveExternalLink = (node, uri, linkPath, parentSchemaURL, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, inheritedDynamicScope
397
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
398
+ ) => {
399
+ const _attachResolvedSchema = (node, schemaRoot, schemaUri, linkPath, parentSchemaDependencies, resolveRefDependencies, resolutionStack, recursiveAnchorBase, inheritedDynamicScope
400
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
401
+ ) => {
402
+ parentSchemaDependencies[schemaUri] = true;
403
+ _merge(node, schemaRoot, schemaUri, linkPath, !!inheritedDynamicScope || !!recursiveAnchorBase);
404
+ if (!recursiveAnchorBase || !node._baseUrl)
405
+ node._baseUrl = schemaUri;
406
+ node.url = schemaUri;
407
+ const nextStack = new Set(resolutionStack);
408
+ nextStack.add(schemaUri);
409
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
410
+ return resolveRefs(node, schemaRoot, schemaUri, resolveRefDependencies, nextStack, recursiveAnchorBase, inheritedDynamicScope);
411
+ };
412
+ const _resolveByUri = (targetUris, index = 0) => {
413
+ const targetUri = targetUris[index];
414
+ const embeddedSchema = resourceIndexByUri.get(targetUri)?.root;
415
+ if (embeddedSchema) {
416
+ return _attachResolvedSchema(node, embeddedSchema, targetUri, linkPath, parentSchemaDependencies, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, inheritedDynamicScope);
417
+ }
418
+ const referencedHandle = this.getOrAddSchemaHandle(targetUri);
419
+ return referencedHandle.getUnresolvedSchema().then(async (unresolvedSchema) => {
420
+ if (unresolvedSchema.errors?.some((error) => error.toLowerCase().includes('unable to load schema from')) &&
421
+ index + 1 < targetUris.length) {
422
+ return _resolveByUri(targetUris, index + 1);
423
+ }
424
+ if (unresolvedSchema.errors.length) {
425
+ const loc = linkPath ? targetUri + '#' + linkPath : targetUri;
426
+ resolveErrors.push(l10n.t("Problems loading reference '{0}': {1}", loc, unresolvedSchema.errors[0]));
427
+ }
428
+ // index resources for the newly loaded schema
429
+ await _indexSchemaResources(unresolvedSchema.schema, targetUri);
430
+ return _attachResolvedSchema(node, unresolvedSchema.schema, targetUri, linkPath, parentSchemaDependencies, referencedHandle.dependencies, resolutionStack, recursiveAnchorBase, inheritedDynamicScope);
431
+ });
432
+ };
433
+ const resolvedUri = _resolveRefUri(parentSchemaURL, uri);
434
+ const localSiblingUri = _resolveLocalSiblingFromRemoteUri(parentSchemaURL, resolvedUri);
435
+ const targetUris = localSiblingUri && localSiblingUri !== resolvedUri ? [localSiblingUri, resolvedUri] : [resolvedUri];
436
+ return _resolveByUri(targetUris);
437
+ };
438
+ const resolveRefs = async (node, parentSchema, parentSchemaURL, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, inheritedDynamicScope
439
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
440
+ ) => {
441
+ if (!node || typeof node !== 'object') {
442
+ return null;
443
+ }
444
+ const toWalk = [{ node, baseURL: parentSchemaURL, recursiveAnchorBase, inheritedDynamicScope }];
445
+ const seen = new WeakSet(); // prevents re-walking the same schema object graph
446
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
447
+ const openPromises = [];
448
+ // handle $ref with siblings based on dialect
449
+ const _handleRef = (next, nodeBaseURL, nodeDialect, recursiveAnchorBase, inheritedDynamicScope, siblingRefCycleKeys) => {
450
+ const currentDynamicScope = _addResourceDynamicAnchors(inheritedDynamicScope, nodeBaseURL);
451
+ this.collectSchemaNodes((entry) => toWalk.push({ node: entry, baseURL: nodeBaseURL, recursiveAnchorBase, inheritedDynamicScope: currentDynamicScope }), this.schemaMapValues(next.definitions || next.$defs));
452
+ // checks if a node with $ref has other constraint keywords
453
+ const _hasRefSiblings = (node) => {
454
+ for (const k of Object.keys(node)) {
455
+ if (REF_SIBLING_NONCONSTRAINT_KEYS.has(k))
456
+ continue;
457
+ return true;
458
+ }
459
+ return false;
460
+ };
461
+ /**
462
+ * For Draft-2019+:
463
+ * { $ref: "...", <siblings...> }
464
+ * becomes
465
+ * { allOf: [ { $ref: "..." }, <siblings...> ] }
466
+ */
467
+ const _rewriteRefWithSiblingsToAllOf = (node) => {
468
+ const siblings = {};
469
+ for (const k of Object.keys(node)) {
470
+ if (!REF_SIBLING_NONCONSTRAINT_KEYS.has(k)) {
471
+ siblings[k] = node[k];
472
+ delete node[k];
473
+ }
474
+ }
475
+ const refValue = node.$dynamicRef ?? node.$recursiveRef ?? node.$ref;
476
+ if (typeof refValue !== 'string')
477
+ return;
478
+ node.allOf = [
479
+ { [node.$dynamicRef ? '$dynamicRef' : node.$recursiveRef ? '$recursiveRef' : '$ref']: refValue },
480
+ siblings,
481
+ ];
482
+ delete node.$dynamicRef;
483
+ delete node.$recursiveRef;
484
+ delete node.$ref;
485
+ };
486
+ const _stripRefSiblings = (node) => {
487
+ for (const k of Object.keys(node)) {
488
+ if (!REF_SIBLING_NONCONSTRAINT_KEYS.has(k))
489
+ delete node[k];
490
+ }
491
+ };
492
+ const seenRefs = new Set();
493
+ const _mergeIfResourceAlreadyInResolutionStack = (ref, resolvedResource, frag) => {
494
+ if (!resolutionStack.has(resolvedResource))
495
+ return false;
496
+ if (!seenRefs.has(ref)) {
497
+ const source = resourceIndexByUri.get(resolvedResource)?.root;
498
+ if (source && typeof source === 'object') {
499
+ _merge(next, source, resolvedResource, frag, !!recursiveAnchorBase);
500
+ }
501
+ seenRefs.add(ref);
502
+ }
503
+ return true;
504
+ };
505
+ while (next.$dynamicRef || next.$recursiveRef || next.$ref) {
506
+ const isDynamicRef = typeof next.$dynamicRef === 'string';
507
+ const isRecursiveRef = !isDynamicRef && typeof next.$recursiveRef === 'string';
508
+ const rawRef = next.$dynamicRef ?? next.$recursiveRef ?? next.$ref;
509
+ if (typeof rawRef !== 'string')
510
+ break;
511
+ next._$ref = rawRef;
512
+ // parse ref into base URI and fragment
513
+ const ref = decodeURIComponent(rawRef);
514
+ const segments = ref.split('#', 2);
515
+ const baseUri = segments[0];
516
+ const frag = segments.length > 1 ? segments[1] : '';
517
+ const resolvedRefKey = `${baseUri ? _resolveAgainstBase(nodeBaseURL, baseUri) : nodeBaseURL}#${frag}`;
518
+ if (_hasRefSiblings(next)) {
519
+ // Draft-07 and earlier: ignore siblings
520
+ if (nodeDialect === SchemaDialect.draft04 || nodeDialect === SchemaDialect.draft07) {
521
+ _stripRefSiblings(next);
522
+ }
523
+ else {
524
+ if (siblingRefCycleKeys?.has(resolvedRefKey))
525
+ break;
526
+ // Draft-2019+: support sibling keywords
527
+ _rewriteRefWithSiblingsToAllOf(next);
528
+ if (Array.isArray(next.allOf)) {
529
+ for (let i = 0; i < next.allOf.length; i++) {
530
+ const entry = next.allOf[i];
531
+ if (entry && typeof entry === 'object') {
532
+ let nextSiblingRefCycleKeys;
533
+ if (i === 0) {
534
+ nextSiblingRefCycleKeys = new Set(siblingRefCycleKeys);
535
+ nextSiblingRefCycleKeys.add(resolvedRefKey);
536
+ }
537
+ toWalk.push({
538
+ node: entry,
539
+ baseURL: nodeBaseURL,
540
+ recursiveAnchorBase,
541
+ inheritedDynamicScope: currentDynamicScope,
542
+ siblingRefCycleKeys: nextSiblingRefCycleKeys,
543
+ });
544
+ }
545
+ }
546
+ }
547
+ return;
548
+ }
549
+ }
550
+ delete next.$dynamicRef;
551
+ delete next.$recursiveRef;
552
+ delete next.$ref;
553
+ // Draft-2019+: $recursiveRef
554
+ if (isRecursiveRef && (ref === '#' || ref === '')) {
555
+ const targetRoot = resourceIndexByUri.get(nodeBaseURL)?.root;
556
+ const recursiveBase = targetRoot?.$recursiveAnchor && recursiveAnchorBase ? recursiveAnchorBase : nodeBaseURL;
557
+ if (recursiveBase.length > 0) {
558
+ if (resolutionStack?.has(recursiveBase) || recursiveBase === nodeBaseURL) {
559
+ const sourceRoot = resourceIndexByUri.get(recursiveBase)?.root ?? parentSchema;
560
+ if (!seenRefs.has(ref)) {
561
+ _merge(next, sourceRoot, recursiveBase, '', false);
562
+ seenRefs.add(ref);
563
+ }
564
+ continue;
565
+ }
566
+ openPromises.push(resolveExternalLink(next, recursiveBase, '', nodeBaseURL, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, currentDynamicScope));
567
+ return;
568
+ }
569
+ continue;
570
+ }
571
+ // Draft-2020+: $dynamicRef
572
+ else if (isDynamicRef) {
573
+ const targetResource = baseUri.length > 0 ? _resolveAgainstBase(nodeBaseURL, baseUri) : nodeBaseURL;
574
+ const targetFragments = resourceIndexByUri.get(targetResource)?.fragments;
575
+ const targetHasDynamicAnchor = frag.length > 0 && targetFragments?.get(frag)?.dynamic;
576
+ const dynamicTarget = targetHasDynamicAnchor ? currentDynamicScope?.get(frag)?.[0] : undefined;
577
+ const resolveResource = dynamicTarget ? dynamicTarget._baseUrl : targetResource;
578
+ if (dynamicTarget && (resolveResource === nodeBaseURL || resolutionStack.has(resolveResource))) {
579
+ if (!seenRefs.has(ref)) {
580
+ _merge(next, dynamicTarget, resolveResource, '', false);
581
+ seenRefs.add(ref);
582
+ }
583
+ continue;
584
+ }
585
+ if (baseUri.length > 0 || targetHasDynamicAnchor) {
586
+ if (_mergeIfResourceAlreadyInResolutionStack(ref, resolveResource, frag))
587
+ continue;
588
+ openPromises.push(resolveExternalLink(next, resolveResource, frag, nodeBaseURL, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, currentDynamicScope));
589
+ return;
590
+ }
591
+ }
592
+ // normal $ref with external baseUri
593
+ else if (baseUri.length > 0) {
594
+ const resolvedBaseUri = _resolveAgainstBase(nodeBaseURL, baseUri);
595
+ if (_mergeIfResourceAlreadyInResolutionStack(ref, resolvedBaseUri, frag))
596
+ continue;
597
+ // resolve relative to this node's base URL
598
+ openPromises.push(resolveExternalLink(next, baseUri, frag, nodeBaseURL, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, currentDynamicScope));
599
+ return;
600
+ }
601
+ // local $ref or $dynamicRef
602
+ if (!seenRefs.has(ref)) {
603
+ _merge(next, parentSchema, nodeBaseURL, frag, isDynamicRef && !!currentDynamicScope);
604
+ seenRefs.add(ref);
605
+ }
606
+ }
607
+ // recursively process children
608
+ this.collectSchemaNodes((entry) => toWalk.push({
609
+ node: entry,
610
+ baseURL: next._baseUrl || nodeBaseURL,
611
+ dialect: nodeDialect,
612
+ recursiveAnchorBase,
613
+ inheritedDynamicScope: currentDynamicScope,
614
+ }), next.not, next.if, next.then, next.else, next.contains, next.propertyNames, next.additionalProperties, next.items, next.additionalItems, next.prefixItems, this.schemaMapValues(next.properties), this.schemaMapValues(next.patternProperties), this.schemaMapValues(next.dependentSchemas), this.schemaMapValues(next.dependencies), next.allOf, next.anyOf, next.oneOf, next.schemaSequence);
615
+ };
616
+ // handle file path with fragments
617
+ if (parentSchemaURL.indexOf('#') > 0) {
618
+ const segments = parentSchemaURL.split('#', 2);
619
+ if (segments[0].length > 0 && segments[1].length > 0) {
620
+ const newSchema = {};
621
+ await resolveExternalLink(newSchema, segments[0], segments[1], parentSchemaURL, parentSchemaDependencies, resolutionStack, recursiveAnchorBase, inheritedDynamicScope);
622
+ for (const key in schema) {
623
+ if (key === 'required') {
624
+ continue;
625
+ }
626
+ if (Object.prototype.hasOwnProperty.call(schema, key) && !Object.prototype.hasOwnProperty.call(newSchema, key)) {
627
+ newSchema[key] = schema[key];
628
+ }
629
+ }
630
+ schema = newSchema;
631
+ }
632
+ }
633
+ while (toWalk.length) {
634
+ const item = toWalk.pop();
635
+ const next = item.node;
636
+ const nodeBaseURL = next._baseUrl || item.baseURL;
637
+ const nodeDialect = next._dialect || item.dialect;
638
+ const nodeRecursiveAnchorBase = item.recursiveAnchorBase ?? (next.$recursiveAnchor ? nodeBaseURL : undefined);
639
+ if (seen.has(next))
640
+ continue;
641
+ seen.add(next);
642
+ _handleRef(next, nodeBaseURL, nodeDialect, nodeRecursiveAnchorBase, item.inheritedDynamicScope, item.siblingRefCycleKeys);
643
+ }
644
+ return Promise.all(openPromises);
645
+ };
646
+ const resolutionStack = new Set(); // prevents $ref/$recursiveRef/$dynamicRef loops across schema URIs
647
+ const rootResource = schema._baseUrl || schemaURL;
648
+ if (rootResource)
649
+ resolutionStack.add(rootResource);
650
+ await resolveRefs(schema, schema, schemaURL, dependencies, resolutionStack);
651
+ return new ResolvedSchema(schema, resolveErrors);
652
+ }
653
+ getSchemaForResource(resource, doc) {
654
+ const resolveModelineSchema = () => {
655
+ let schemaFromModeline = getSchemaFromModeline(doc);
656
+ if (schemaFromModeline !== undefined) {
657
+ if (!schemaFromModeline.startsWith('file:') && !schemaFromModeline.startsWith('http')) {
658
+ // If path contains a fragment and it is left intact, "#" will be
659
+ // considered part of the filename and converted to "%23" by
660
+ // path.resolve() -> take it out and add back after path.resolve
661
+ let appendix = '';
662
+ if (schemaFromModeline.indexOf('#') > 0) {
663
+ const segments = schemaFromModeline.split('#', 2);
664
+ schemaFromModeline = segments[0];
665
+ appendix = segments[1];
666
+ }
667
+ if (!path.isAbsolute(schemaFromModeline)) {
668
+ const resUri = URI.parse(resource);
669
+ schemaFromModeline = URI.file(path.resolve(path.parse(resUri.fsPath).dir, schemaFromModeline)).toString();
670
+ }
671
+ else {
672
+ schemaFromModeline = URI.file(schemaFromModeline).toString();
673
+ }
674
+ if (appendix.length > 0) {
675
+ schemaFromModeline += '#' + appendix;
676
+ }
677
+ }
678
+ return schemaFromModeline;
679
+ }
680
+ };
681
+ const resolveSchemaForResource = (schemas) => {
682
+ const schemaHandle = super.createCombinedSchema(resource, schemas);
683
+ return schemaHandle.getResolvedSchema().then((schema) => {
684
+ return this.finalizeResolvedSchema(schema, schemaHandle.url, doc, false);
685
+ });
686
+ };
687
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
688
+ const resolveSchema = async () => {
689
+ const seen = Object.create(null);
690
+ const schemas = [];
691
+ let k8sAllSchema = undefined;
692
+ for (const entry of this.filePatternAssociations) {
693
+ if (entry.matchesPattern(resource)) {
694
+ for (const schemaId of entry.getURIs()) {
695
+ if (!seen[schemaId]) {
696
+ if (this.yamlSettings?.kubernetesCRDStoreEnabled && schemaId === KUBERNETES_SCHEMA_URL) {
697
+ if (!k8sAllSchema) {
698
+ k8sAllSchema = await this.getResolvedSchema(KUBERNETES_SCHEMA_URL);
699
+ }
700
+ const kubeSchema = autoDetectKubernetesSchemaFromDocument(doc, this.yamlSettings.kubernetesCRDStoreUrl ?? CRD_CATALOG_URL, k8sAllSchema);
701
+ if (kubeSchema) {
702
+ schemas.push(kubeSchema);
703
+ seen[schemaId] = true;
704
+ }
705
+ else {
706
+ schemas.push(schemaId);
707
+ seen[schemaId] = true;
708
+ }
709
+ }
710
+ else {
711
+ schemas.push(schemaId);
712
+ seen[schemaId] = true;
713
+ }
714
+ }
715
+ }
716
+ }
717
+ }
718
+ if (schemas.length > 0) {
719
+ // Join all schemas with the highest priority.
720
+ const highestPrioSchemas = this.highestPrioritySchemas(schemas);
721
+ return resolveSchemaForResource(highestPrioSchemas);
722
+ }
723
+ return Promise.resolve(null);
724
+ };
725
+ const modelineSchema = resolveModelineSchema();
726
+ if (modelineSchema) {
727
+ return resolveSchemaForResource([modelineSchema]);
728
+ }
729
+ if (this.customSchemaProvider) {
730
+ return this.customSchemaProvider(resource)
731
+ .then((schemaUri) => {
732
+ if (Array.isArray(schemaUri)) {
733
+ if (schemaUri.length === 0) {
734
+ return resolveSchema();
735
+ }
736
+ return Promise.all(schemaUri.map((schemaUri) => {
737
+ return this.resolveCustomSchema(schemaUri, doc);
738
+ })).then((schemas) => {
739
+ return {
740
+ errors: [],
741
+ schema: {
742
+ allOf: schemas.map((schemaObj) => {
743
+ return schemaObj.schema;
744
+ }),
745
+ },
746
+ };
747
+ }, () => {
748
+ return resolveSchema();
749
+ });
750
+ }
751
+ if (!schemaUri) {
752
+ return resolveSchema();
753
+ }
754
+ return this.resolveCustomSchema(schemaUri, doc);
755
+ })
756
+ .then((schema) => {
757
+ return schema;
758
+ }, () => {
759
+ return resolveSchema();
760
+ });
761
+ }
762
+ return resolveSchema();
763
+ }
764
+ finalizeResolvedSchema(schema, schemaUrl, doc, includeErrorsForSequence) {
765
+ if (schema.schema && typeof schema.schema === 'object') {
766
+ schema.schema.url = schemaUrl;
767
+ if (schema.schema.schemaSequence && schema.schema.schemaSequence[doc.currentDocIndex]) {
768
+ const selectedSchema = schema.schema.schemaSequence[doc.currentDocIndex];
769
+ if (includeErrorsForSequence) {
770
+ return new ResolvedSchema(selectedSchema, schema.errors);
771
+ }
772
+ return new ResolvedSchema(selectedSchema);
773
+ }
774
+ }
775
+ return schema;
776
+ }
777
+ // Set the priority of a schema in the schema service
778
+ addSchemaPriority(uri, priority) {
779
+ let currSchemaArray = this.schemaPriorityMapping.get(uri);
780
+ if (currSchemaArray) {
781
+ currSchemaArray = currSchemaArray.add(priority);
782
+ this.schemaPriorityMapping.set(uri, currSchemaArray);
783
+ }
784
+ else {
785
+ this.schemaPriorityMapping.set(uri, new Set().add(priority));
786
+ }
787
+ }
788
+ /**
789
+ * Search through all the schemas and find the ones with the highest priority
790
+ */
791
+ highestPrioritySchemas(schemas) {
792
+ let highestPrio = 0;
793
+ const priorityMapping = new Map();
794
+ schemas.forEach((schema) => {
795
+ // If the schema does not have a priority then give it a default one of [0]
796
+ const priority = this.schemaPriorityMapping.get(schema) || [0];
797
+ priority.forEach((prio) => {
798
+ if (prio > highestPrio) {
799
+ highestPrio = prio;
800
+ }
801
+ // Build up a mapping of priority to schemas so that we can easily get the highest priority schemas easier
802
+ let currPriorityArray = priorityMapping.get(prio);
803
+ if (currPriorityArray) {
804
+ currPriorityArray = currPriorityArray.concat(schema);
805
+ priorityMapping.set(prio, currPriorityArray);
806
+ }
807
+ else {
808
+ priorityMapping.set(prio, [schema]);
809
+ }
810
+ });
811
+ });
812
+ return priorityMapping.get(highestPrio) || [];
813
+ }
814
+ async resolveCustomSchema(schemaUri, doc) {
815
+ const unresolvedSchema = await this.loadSchema(schemaUri);
816
+ const schema = await this.resolveSchemaContent(unresolvedSchema, schemaUri, []);
817
+ return this.finalizeResolvedSchema(schema, schemaUri, doc, true);
818
+ }
819
+ /**
820
+ * Save a schema with schema ID and schema content.
821
+ * Overrides previous schemas set for that schema ID.
822
+ */
823
+ async saveSchema(schemaId, schemaContent) {
824
+ const id = this.normalizeId(schemaId);
825
+ this.getOrAddSchemaHandle(id, schemaContent);
826
+ this.schemaPriorityMapping.set(id, new Set().add(SchemaPriority.Settings));
827
+ return Promise.resolve(undefined);
828
+ }
829
+ /**
830
+ * Delete schemas on specific path
831
+ */
832
+ async deleteSchemas(deletions) {
833
+ deletions.schemas.forEach((s) => {
834
+ this.deleteSchema(s);
835
+ });
836
+ return Promise.resolve(undefined);
837
+ }
838
+ /**
839
+ * Delete a schema with schema ID.
840
+ */
841
+ async deleteSchema(schemaId) {
842
+ const id = this.normalizeId(schemaId);
843
+ if (this.schemasById[id]) {
844
+ delete this.schemasById[id];
845
+ }
846
+ this.schemaPriorityMapping.delete(id);
847
+ return Promise.resolve(undefined);
848
+ }
849
+ /**
850
+ * Add content to a specified schema at a specified path
851
+ */
852
+ async addContent(additions) {
853
+ const schema = await this.getResolvedSchema(additions.schema);
854
+ if (schema) {
855
+ const resolvedSchemaLocation = this.resolveJSONSchemaToSection(schema.schema, additions.path);
856
+ if (typeof resolvedSchemaLocation === 'object') {
857
+ resolvedSchemaLocation[additions.key] = additions.content;
858
+ }
859
+ await this.saveSchema(additions.schema, schema.schema);
860
+ }
861
+ }
862
+ /**
863
+ * Delete content in a specified schema at a specified path
864
+ */
865
+ async deleteContent(deletions) {
866
+ const schema = await this.getResolvedSchema(deletions.schema);
867
+ if (schema) {
868
+ const resolvedSchemaLocation = this.resolveJSONSchemaToSection(schema.schema, deletions.path);
869
+ if (typeof resolvedSchemaLocation === 'object') {
870
+ delete resolvedSchemaLocation[deletions.key];
871
+ }
872
+ await this.saveSchema(deletions.schema, schema.schema);
873
+ }
874
+ }
875
+ /**
876
+ * Take a JSON Schema and the path that you would like to get to
877
+ * @returns the JSON Schema resolved at that specific path
878
+ */
879
+ resolveJSONSchemaToSection(schema, paths) {
880
+ const splitPathway = paths.split('/');
881
+ let resolvedSchemaLocation = schema;
882
+ for (const path of splitPathway) {
883
+ if (path === '') {
884
+ continue;
885
+ }
886
+ this.resolveNext(resolvedSchemaLocation, path);
887
+ resolvedSchemaLocation = resolvedSchemaLocation[path];
888
+ }
889
+ return resolvedSchemaLocation;
890
+ }
891
+ /**
892
+ * Resolve the next Object if they have compatible types
893
+ * @param object a location in the JSON Schema
894
+ * @param token the next token that you want to search for
895
+ */
896
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
897
+ resolveNext(object, token) {
898
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
899
+ if (Array.isArray(object) && isNaN(token)) {
900
+ throw new Error('Expected a number after the array object');
901
+ }
902
+ else if (typeof object === 'object' && typeof token !== 'string') {
903
+ throw new Error('Expected a string after the object');
904
+ }
905
+ }
906
+ /**
907
+ * Everything below here is needed because we're importing from vscode-json-languageservice umd and we need
908
+ * to provide a wrapper around the javascript methods we are calling since they have no type
909
+ */
910
+ normalizeId(id) {
911
+ // The parent's `super.normalizeId(id)` isn't visible, so duplicated the code here
912
+ try {
913
+ return URI.parse(id).toString();
914
+ }
915
+ catch (e) {
916
+ return id;
917
+ }
918
+ }
919
+ getOrAddSchemaHandle(id, unresolvedSchemaContent) {
920
+ return super.getOrAddSchemaHandle(id, unresolvedSchemaContent);
921
+ }
922
+ loadSchema(schemaUri) {
923
+ const requestService = this.requestService;
924
+ return super.loadSchema(schemaUri).then(async (unresolvedJsonSchema) => {
925
+ // If json-language-server failed to parse the schema, attempt to parse it as YAML instead.
926
+ // If the YAML file starts with %YAML 1.x or contains a comment with a number the schema will
927
+ // contain a number instead of being undefined, so we need to check for that too.
928
+ if (unresolvedJsonSchema.errors &&
929
+ (unresolvedJsonSchema.schema === undefined || typeof unresolvedJsonSchema.schema === 'number')) {
930
+ return requestService(schemaUri).then((content) => {
931
+ if (!content) {
932
+ const errorMessage = l10n.t("Unable to load schema from '{0}': No content. {1}", toDisplayString(schemaUri), unresolvedJsonSchema.errors);
933
+ return new UnresolvedSchema({}, [errorMessage]);
934
+ }
935
+ try {
936
+ const schemaContent = parse(content);
937
+ return new UnresolvedSchema(schemaContent, []);
938
+ }
939
+ catch (yamlError) {
940
+ const errorMessage = l10n.t("Unable to parse content from '{0}': {1}.", toDisplayString(schemaUri), yamlError);
941
+ return new UnresolvedSchema({}, [errorMessage]);
942
+ }
943
+ },
944
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
945
+ (error) => {
946
+ let errorMessage = error.toString();
947
+ const errorSplit = error.toString().split('Error: ');
948
+ if (errorSplit.length > 1) {
949
+ // more concise error message, URL and context are attached by caller anyways
950
+ errorMessage = errorSplit[1];
951
+ }
952
+ return new UnresolvedSchema({}, [errorMessage]);
953
+ });
954
+ }
955
+ unresolvedJsonSchema.uri = schemaUri;
956
+ if (this.schemaUriToNameAndDescription.has(schemaUri)) {
957
+ const { name, description, versions } = this.schemaUriToNameAndDescription.get(schemaUri);
958
+ unresolvedJsonSchema.schema.title = name ?? unresolvedJsonSchema.schema.title;
959
+ unresolvedJsonSchema.schema.description = description ?? unresolvedJsonSchema.schema.description;
960
+ unresolvedJsonSchema.schema.versions = versions ?? unresolvedJsonSchema.schema.versions;
961
+ }
962
+ else if (unresolvedJsonSchema.errors && unresolvedJsonSchema.errors.length > 0) {
963
+ let errorMessage = unresolvedJsonSchema.errors[0];
964
+ if (errorMessage.toLowerCase().indexOf('load') !== -1) {
965
+ errorMessage = l10n.t("Unable to load schema from '{0}': No content.", toDisplayString(schemaUri));
966
+ }
967
+ else if (errorMessage.toLowerCase().indexOf('parse') !== -1) {
968
+ const content = await requestService(schemaUri);
969
+ const jsonErrors = [];
970
+ const schemaContent = Json.parse(content, jsonErrors);
971
+ if (jsonErrors.length && schemaContent) {
972
+ const { offset } = jsonErrors[0];
973
+ const { line, column } = getLineAndColumnFromOffset(content, offset);
974
+ errorMessage = l10n.t("Unable to parse content from '{0}': Parse error at line: {1} column: {2}", toDisplayString(schemaUri), line, column);
975
+ }
976
+ }
977
+ return new UnresolvedSchema({}, [errorMessage]);
978
+ }
979
+ return unresolvedJsonSchema;
980
+ });
981
+ }
982
+ registerExternalSchema(uri, filePatterns, unresolvedSchema, name, description, versions) {
983
+ if (name || description) {
984
+ this.schemaUriToNameAndDescription.set(uri, { name, description, versions });
985
+ }
986
+ return super.registerExternalSchema(uri, filePatterns, unresolvedSchema);
987
+ }
988
+ clearExternalSchemas() {
989
+ super.clearExternalSchemas();
990
+ }
991
+ setSchemaContributions(schemaContributions) {
992
+ super.setSchemaContributions(schemaContributions);
993
+ }
994
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
995
+ getRegisteredSchemaIds(filter) {
996
+ return super.getRegisteredSchemaIds(filter);
997
+ }
998
+ getResolvedSchema(schemaId) {
999
+ return super.getResolvedSchema(schemaId);
1000
+ }
1001
+ onResourceChange(uri) {
1002
+ return super.onResourceChange(uri);
1003
+ }
1004
+ }
1005
+ function toDisplayString(url) {
1006
+ try {
1007
+ const uri = URI.parse(url);
1008
+ if (uri.scheme === 'file') {
1009
+ return uri.fsPath;
1010
+ }
1011
+ }
1012
+ catch (e) {
1013
+ // ignore
1014
+ }
1015
+ return url;
1016
+ }
1017
+ function getLineAndColumnFromOffset(text, offset) {
1018
+ const lines = text.slice(0, offset).split(/\r?\n/);
1019
+ const line = lines.length; // 1-based line number
1020
+ const column = lines[lines.length - 1].length + 1; // 1-based column number
1021
+ return { line, column };
1022
+ }
1023
+ function normalizeSchemaUri(uri) {
1024
+ if (!uri)
1025
+ return '';
1026
+ let s;
1027
+ if (typeof uri === 'string') {
1028
+ s = uri;
1029
+ }
1030
+ else {
1031
+ s = uri.$id || uri.id || '';
1032
+ }
1033
+ s = s.trim();
1034
+ // strips fragment (# or #/something)
1035
+ const hash = s.indexOf('#');
1036
+ s = hash === -1 ? s : s.slice(0, hash);
1037
+ // normalize http to https (don't normalize custom dialects)
1038
+ s = s.replace(/^http:\/\/json-schema\.org\//i, 'https://json-schema.org/');
1039
+ // normalize to no trailing slash
1040
+ s = s.replace(/\/+$/g, '');
1041
+ return s;
1042
+ }
1043
+ function knownDialectFromSchemaUri(schemaUri) {
1044
+ if (schemaUri === normalizeSchemaUri(ajv4.defaultMeta()))
1045
+ return SchemaDialect.draft04;
1046
+ if (schemaUri === normalizeSchemaUri(ajv7.defaultMeta()))
1047
+ return SchemaDialect.draft07;
1048
+ if (schemaUri === normalizeSchemaUri(ajv2019.defaultMeta()))
1049
+ return SchemaDialect.draft2019;
1050
+ if (schemaUri === normalizeSchemaUri(ajv2020.defaultMeta()))
1051
+ return SchemaDialect.draft2020;
1052
+ return undefined;
1053
+ }
1054
+ async function pickSchemaDialect($schema, loadSchema) {
1055
+ if (!$schema)
1056
+ return undefined;
1057
+ const s = normalizeSchemaUri($schema || '');
1058
+ const dialect = knownDialectFromSchemaUri(s);
1059
+ if (dialect)
1060
+ return dialect;
1061
+ // cache custom dialect result
1062
+ const cached = schemaDialectCache.get(s);
1063
+ if (cached) {
1064
+ return cached;
1065
+ }
1066
+ const inflight = schemaDialectInFlight.get(s);
1067
+ if (inflight) {
1068
+ return inflight;
1069
+ }
1070
+ if (!loadSchema)
1071
+ return undefined;
1072
+ // resolve custom dialect: load the dialect meta-schema doc and infer base dialect from its $schema
1073
+ const promise = (async () => {
1074
+ const meta = await loadSchema(s);
1075
+ if (meta.errors?.length)
1076
+ return undefined;
1077
+ const metaSchema = meta.schema;
1078
+ if (!metaSchema || typeof metaSchema !== 'object')
1079
+ return undefined;
1080
+ const metaDialect = knownDialectFromSchemaUri(metaSchema.$schema);
1081
+ if (metaDialect)
1082
+ return metaDialect;
1083
+ return undefined;
1084
+ })();
1085
+ schemaDialectInFlight.set(s, promise);
1086
+ try {
1087
+ const result = await promise;
1088
+ schemaDialectCache.set(s, result);
1089
+ return result;
1090
+ }
1091
+ finally {
1092
+ schemaDialectInFlight.delete(s);
1093
+ }
1094
+ }
1095
+ function pickMetaValidator(dialect) {
1096
+ switch (dialect) {
1097
+ case SchemaDialect.draft04:
1098
+ return schema04Validator;
1099
+ case SchemaDialect.draft07:
1100
+ return schema07Validator;
1101
+ case SchemaDialect.draft2019:
1102
+ return schema2019Validator;
1103
+ case SchemaDialect.draft2020:
1104
+ return schema2020Validator;
1105
+ default:
1106
+ // don't meta-validate unknown schema URI
1107
+ return undefined;
1108
+ }
1109
+ }
1110
+ //# sourceMappingURL=yamlSchemaService.js.map