@microsoft/powerquery-language-services 0.10.5 → 0.11.1

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 (419) hide show
  1. package/lib/powerquery-language-services/analysis/analysis.d.ts +21 -21
  2. package/lib/powerquery-language-services/analysis/analysis.js +4 -4
  3. package/lib/powerquery-language-services/analysis/analysisBase.d.ts +53 -53
  4. package/lib/powerquery-language-services/analysis/analysisBase.js +741 -710
  5. package/lib/powerquery-language-services/analysis/analysisBase.js.map +1 -1
  6. package/lib/powerquery-language-services/analysis/analysisSettings.d.ts +14 -14
  7. package/lib/powerquery-language-services/analysis/analysisSettings.js +4 -4
  8. package/lib/powerquery-language-services/analysis/analysisUtils.d.ts +4 -4
  9. package/lib/powerquery-language-services/analysis/analysisUtils.js +26 -28
  10. package/lib/powerquery-language-services/analysis/analysisUtils.js.map +1 -1
  11. package/lib/powerquery-language-services/analysis/documentAnalysis.d.ts +8 -8
  12. package/lib/powerquery-language-services/analysis/documentAnalysis.js +15 -15
  13. package/lib/powerquery-language-services/analysis/index.d.ts +5 -5
  14. package/lib/powerquery-language-services/analysis/index.js +43 -10
  15. package/lib/powerquery-language-services/analysis/index.js.map +1 -1
  16. package/lib/powerquery-language-services/analysis/memoizedAnalysis.d.ts +18 -18
  17. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js +51 -65
  18. package/lib/powerquery-language-services/analysis/memoizedAnalysis.js.map +1 -1
  19. package/lib/powerquery-language-services/commonTypes.d.ts +8 -8
  20. package/lib/powerquery-language-services/commonTypes.js +33 -33
  21. package/lib/powerquery-language-services/commonTypesUtils.d.ts +4 -4
  22. package/lib/powerquery-language-services/commonTypesUtils.js +18 -19
  23. package/lib/powerquery-language-services/commonTypesUtils.js.map +1 -1
  24. package/lib/powerquery-language-services/diagnosticErrorCode.d.ts +8 -8
  25. package/lib/powerquery-language-services/diagnosticErrorCode.js +14 -14
  26. package/lib/powerquery-language-services/diagnosticErrorCode.js.map +1 -1
  27. package/lib/powerquery-language-services/documentSymbols.d.ts +3 -3
  28. package/lib/powerquery-language-services/documentSymbols.js +80 -83
  29. package/lib/powerquery-language-services/documentSymbols.js.map +1 -1
  30. package/lib/powerquery-language-services/externalType/externalType.d.ts +21 -21
  31. package/lib/powerquery-language-services/externalType/externalType.js +16 -16
  32. package/lib/powerquery-language-services/externalType/externalType.js.map +1 -1
  33. package/lib/powerquery-language-services/externalType/externalTypeUtils.d.ts +5 -5
  34. package/lib/powerquery-language-services/externalType/externalTypeUtils.js +32 -33
  35. package/lib/powerquery-language-services/externalType/externalTypeUtils.js.map +1 -1
  36. package/lib/powerquery-language-services/externalType/index.d.ts +2 -2
  37. package/lib/powerquery-language-services/externalType/index.js +40 -7
  38. package/lib/powerquery-language-services/externalType/index.js.map +1 -1
  39. package/lib/powerquery-language-services/formatter.d.ts +5 -5
  40. package/lib/powerquery-language-services/formatter.js +72 -46
  41. package/lib/powerquery-language-services/formatter.js.map +1 -1
  42. package/lib/powerquery-language-services/index.d.ts +20 -20
  43. package/lib/powerquery-language-services/index.js +64 -42
  44. package/lib/powerquery-language-services/index.js.map +1 -1
  45. package/lib/powerquery-language-services/inspection/activeNode/activeNode.d.ts +43 -43
  46. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js +17 -17
  47. package/lib/powerquery-language-services/inspection/activeNode/activeNode.js.map +1 -1
  48. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.d.ts +11 -11
  49. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js +351 -351
  50. package/lib/powerquery-language-services/inspection/activeNode/activeNodeUtils.js.map +1 -1
  51. package/lib/powerquery-language-services/inspection/activeNode/index.d.ts +3 -3
  52. package/lib/powerquery-language-services/inspection/activeNode/index.js +44 -22
  53. package/lib/powerquery-language-services/inspection/activeNode/index.js.map +1 -1
  54. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.d.ts +8 -8
  55. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js +281 -258
  56. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteFieldAccess.js.map +1 -1
  57. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItem.d.ts +6 -6
  58. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItem.js +4 -4
  59. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.d.ts +8 -8
  60. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js +78 -79
  61. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/autocompleteItemUtils.js.map +1 -1
  62. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.d.ts +2 -2
  63. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.js +43 -21
  64. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteItem/index.js.map +1 -1
  65. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.d.ts +8 -8
  66. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js +217 -197
  67. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeyword.js.map +1 -1
  68. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.d.ts +3 -3
  69. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js +86 -87
  70. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordDefault.js.map +1 -1
  71. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.d.ts +3 -3
  72. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js +53 -54
  73. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordErrorHandlingExpression.js.map +1 -1
  74. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.d.ts +3 -3
  75. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js +29 -30
  76. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordIdentifierPairedExpression.js.map +1 -1
  77. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.d.ts +3 -3
  78. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js +58 -70
  79. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordLetExpression.js.map +1 -1
  80. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.d.ts +3 -3
  81. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js +38 -39
  82. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordListExpression.js.map +1 -1
  83. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.d.ts +3 -3
  84. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js +40 -41
  85. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordSectionMember.js.map +1 -1
  86. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.d.ts +3 -3
  87. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js +63 -31
  88. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/autocompleteKeywordTrailingText.js.map +1 -1
  89. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.d.ts +3 -3
  90. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js +30 -39
  91. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/common.js.map +1 -1
  92. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.d.ts +11 -11
  93. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/commonTypes.js +4 -4
  94. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/index.d.ts +1 -1
  95. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteKeyword/index.js +7 -7
  96. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.d.ts +6 -6
  97. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js +190 -188
  98. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteLanguageConstant.js.map +1 -1
  99. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.d.ts +6 -6
  100. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js +334 -335
  101. package/lib/powerquery-language-services/inspection/autocomplete/autocompletePrimitiveType.js.map +1 -1
  102. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.d.ts +2 -2
  103. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js +19 -20
  104. package/lib/powerquery-language-services/inspection/autocomplete/autocompleteUtils.js.map +1 -1
  105. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.d.ts +27 -27
  106. package/lib/powerquery-language-services/inspection/autocomplete/commonTypes.js +4 -4
  107. package/lib/powerquery-language-services/inspection/autocomplete/index.d.ts +6 -6
  108. package/lib/powerquery-language-services/inspection/autocomplete/index.js +47 -25
  109. package/lib/powerquery-language-services/inspection/autocomplete/index.js.map +1 -1
  110. package/lib/powerquery-language-services/inspection/autocomplete/task.d.ts +6 -6
  111. package/lib/powerquery-language-services/inspection/autocomplete/task.js +68 -44
  112. package/lib/powerquery-language-services/inspection/autocomplete/task.js.map +1 -1
  113. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.d.ts +7 -7
  114. package/lib/powerquery-language-services/inspection/autocomplete/trailingToken.js +4 -4
  115. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.d.ts +4 -4
  116. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js +20 -18
  117. package/lib/powerquery-language-services/inspection/autocomplete/trailingTokenUtils.js.map +1 -1
  118. package/lib/powerquery-language-services/inspection/commonTypes.d.ts +20 -20
  119. package/lib/powerquery-language-services/inspection/commonTypes.js +4 -4
  120. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.d.ts +37 -37
  121. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js +13 -13
  122. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifier.js.map +1 -1
  123. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.d.ts +6 -6
  124. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js +244 -221
  125. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/dereferencedIdentifierUtils.js.map +1 -1
  126. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.d.ts +2 -2
  127. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js +41 -19
  128. package/lib/powerquery-language-services/inspection/dereferencedIdentifier/index.js.map +1 -1
  129. package/lib/powerquery-language-services/inspection/expectedType.d.ts +8 -8
  130. package/lib/powerquery-language-services/inspection/expectedType.js +420 -388
  131. package/lib/powerquery-language-services/inspection/expectedType.js.map +1 -1
  132. package/lib/powerquery-language-services/inspection/index.d.ts +9 -9
  133. package/lib/powerquery-language-services/inspection/index.js +27 -27
  134. package/lib/powerquery-language-services/inspection/invokeExpression/common.d.ts +16 -16
  135. package/lib/powerquery-language-services/inspection/invokeExpression/common.js +4 -4
  136. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.d.ts +12 -12
  137. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js +137 -106
  138. package/lib/powerquery-language-services/inspection/invokeExpression/currentInvokeExpression.js.map +1 -1
  139. package/lib/powerquery-language-services/inspection/invokeExpression/index.d.ts +3 -3
  140. package/lib/powerquery-language-services/inspection/invokeExpression/index.js +20 -20
  141. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.d.ts +8 -8
  142. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js +141 -119
  143. package/lib/powerquery-language-services/inspection/invokeExpression/invokeExpression.js.map +1 -1
  144. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.d.ts +11 -11
  145. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js +57 -58
  146. package/lib/powerquery-language-services/inspection/pseudoFunctionExpressionType.js.map +1 -1
  147. package/lib/powerquery-language-services/inspection/scope/index.d.ts +3 -3
  148. package/lib/powerquery-language-services/inspection/scope/index.js +44 -22
  149. package/lib/powerquery-language-services/inspection/scope/index.js.map +1 -1
  150. package/lib/powerquery-language-services/inspection/scope/scope.d.ts +46 -46
  151. package/lib/powerquery-language-services/inspection/scope/scope.js +14 -14
  152. package/lib/powerquery-language-services/inspection/scope/scope.js.map +1 -1
  153. package/lib/powerquery-language-services/inspection/scope/scopeInspection.d.ts +7 -7
  154. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js +313 -327
  155. package/lib/powerquery-language-services/inspection/scope/scopeInspection.js.map +1 -1
  156. package/lib/powerquery-language-services/inspection/scope/scopeUtils.d.ts +17 -17
  157. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js +125 -104
  158. package/lib/powerquery-language-services/inspection/scope/scopeUtils.js.map +1 -1
  159. package/lib/powerquery-language-services/inspection/task.d.ts +28 -28
  160. package/lib/powerquery-language-services/inspection/task.js +196 -160
  161. package/lib/powerquery-language-services/inspection/task.js.map +1 -1
  162. package/lib/powerquery-language-services/inspection/type/index.d.ts +3 -3
  163. package/lib/powerquery-language-services/inspection/type/index.js +44 -22
  164. package/lib/powerquery-language-services/inspection/type/index.js.map +1 -1
  165. package/lib/powerquery-language-services/inspection/type/inspectType/common.d.ts +14 -14
  166. package/lib/powerquery-language-services/inspection/type/inspectType/common.js +362 -353
  167. package/lib/powerquery-language-services/inspection/type/inspectType/common.js.map +1 -1
  168. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.d.ts +8 -8
  169. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js +28 -43
  170. package/lib/powerquery-language-services/inspection/type/inspectType/examineFieldSpecificationList.js.map +1 -1
  171. package/lib/powerquery-language-services/inspection/type/inspectType/index.d.ts +1 -1
  172. package/lib/powerquery-language-services/inspection/type/inspectType/index.js +19 -19
  173. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.d.ts +3 -3
  174. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js +57 -57
  175. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeConstant.js.map +1 -1
  176. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.d.ts +4 -4
  177. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js +26 -39
  178. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeEachExpression.js.map +1 -1
  179. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.d.ts +4 -4
  180. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js +82 -62
  181. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeErrorHandlingExpression.js.map +1 -1
  182. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.d.ts +4 -4
  183. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js +55 -69
  184. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/common.js.map +1 -1
  185. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.d.ts +4 -4
  186. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js +128 -103
  187. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldProjection.js.map +1 -1
  188. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.d.ts +4 -4
  189. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js +63 -75
  190. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeField/inspectTypeFieldSelector.js.map +1 -1
  191. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.d.ts +4 -4
  192. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js +21 -34
  193. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFieldSpecification.js.map +1 -1
  194. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.d.ts +4 -4
  195. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js +74 -87
  196. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionExpression.js.map +1 -1
  197. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.d.ts +4 -4
  198. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js +85 -65
  199. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeFunctionType.js.map +1 -1
  200. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.d.ts +4 -4
  201. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js +25 -38
  202. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifier.js.map +1 -1
  203. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.d.ts +4 -4
  204. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js +25 -38
  205. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIdentifierExpression.js.map +1 -1
  206. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.d.ts +4 -4
  207. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js +46 -61
  208. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeIfExpression.js.map +1 -1
  209. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.d.ts +4 -4
  210. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js +69 -84
  211. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeInvokeExpression.js.map +1 -1
  212. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.d.ts +4 -4
  213. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js +37 -50
  214. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeList.js.map +1 -1
  215. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.d.ts +4 -4
  216. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js +43 -56
  217. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeListType.js.map +1 -1
  218. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.d.ts +4 -4
  219. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js +44 -44
  220. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeLiteralExpression.js.map +1 -1
  221. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.d.ts +4 -4
  222. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js +36 -49
  223. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeNullCoalescingExpression.js.map +1 -1
  224. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.d.ts +4 -4
  225. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js +23 -33
  226. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeParameter.js.map +1 -1
  227. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.d.ts +4 -4
  228. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js +25 -26
  229. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypePrimitiveType.js.map +1 -1
  230. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.d.ts +4 -4
  231. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js +53 -66
  232. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRangeExpression.js.map +1 -1
  233. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.d.ts +4 -4
  234. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js +45 -58
  235. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecord.js.map +1 -1
  236. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.d.ts +4 -4
  237. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js +42 -50
  238. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecordType.js.map +1 -1
  239. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.d.ts +4 -4
  240. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js +43 -56
  241. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeRecursivePrimaryExpression.js.map +1 -1
  242. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.d.ts +2 -2
  243. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js +41 -19
  244. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/index.js.map +1 -1
  245. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.d.ts +9 -9
  246. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeState.js +4 -4
  247. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.d.ts +7 -7
  248. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js +41 -42
  249. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeState/inspectTypeStateUtils.js.map +1 -1
  250. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.d.ts +8 -8
  251. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js +326 -292
  252. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTBinOpExpression.js.map +1 -1
  253. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.d.ts +4 -4
  254. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js +51 -59
  255. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeTableType.js.map +1 -1
  256. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.d.ts +4 -4
  257. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js +76 -89
  258. package/lib/powerquery-language-services/inspection/type/inspectType/inspectTypeUnaryExpression.js.map +1 -1
  259. package/lib/powerquery-language-services/inspection/type/task.d.ts +10 -10
  260. package/lib/powerquery-language-services/inspection/type/task.js +49 -65
  261. package/lib/powerquery-language-services/inspection/type/task.js.map +1 -1
  262. package/lib/powerquery-language-services/inspection/typeCache/index.d.ts +2 -2
  263. package/lib/powerquery-language-services/inspection/typeCache/index.js +43 -21
  264. package/lib/powerquery-language-services/inspection/typeCache/index.js.map +1 -1
  265. package/lib/powerquery-language-services/inspection/typeCache/typeCache.d.ts +7 -7
  266. package/lib/powerquery-language-services/inspection/typeCache/typeCache.js +4 -4
  267. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.d.ts +2 -2
  268. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js +12 -13
  269. package/lib/powerquery-language-services/inspection/typeCache/typeCacheUtils.js.map +1 -1
  270. package/lib/powerquery-language-services/inspectionSettings.d.ts +13 -13
  271. package/lib/powerquery-language-services/inspectionSettings.js +12 -12
  272. package/lib/powerquery-language-services/inspectionSettings.js.map +1 -1
  273. package/lib/powerquery-language-services/inspectionUtils.d.ts +16 -16
  274. package/lib/powerquery-language-services/inspectionUtils.js +142 -150
  275. package/lib/powerquery-language-services/inspectionUtils.js.map +1 -1
  276. package/lib/powerquery-language-services/jaroWinkler.d.ts +3 -3
  277. package/lib/powerquery-language-services/jaroWinkler.js +102 -103
  278. package/lib/powerquery-language-services/jaroWinkler.js.map +1 -1
  279. package/lib/powerquery-language-services/languageServiceUtils.d.ts +2 -2
  280. package/lib/powerquery-language-services/languageServiceUtils.js +53 -39
  281. package/lib/powerquery-language-services/languageServiceUtils.js.map +1 -1
  282. package/lib/powerquery-language-services/library/index.d.ts +5 -5
  283. package/lib/powerquery-language-services/library/index.js +43 -10
  284. package/lib/powerquery-language-services/library/index.js.map +1 -1
  285. package/lib/powerquery-language-services/library/library.d.ts +45 -45
  286. package/lib/powerquery-language-services/library/library.js +19 -19
  287. package/lib/powerquery-language-services/library/library.js.map +1 -1
  288. package/lib/powerquery-language-services/library/libraryDefinitionUtils.d.ts +21 -21
  289. package/lib/powerquery-language-services/library/libraryDefinitionUtils.js +106 -107
  290. package/lib/powerquery-language-services/library/libraryDefinitionUtils.js.map +1 -1
  291. package/lib/powerquery-language-services/library/librarySymbol.d.ts +33 -33
  292. package/lib/powerquery-language-services/library/librarySymbol.js +4 -4
  293. package/lib/powerquery-language-services/library/librarySymbolUtils.d.ts +34 -34
  294. package/lib/powerquery-language-services/library/librarySymbolUtils.js +258 -261
  295. package/lib/powerquery-language-services/library/librarySymbolUtils.js.map +1 -1
  296. package/lib/powerquery-language-services/library/libraryUtils.d.ts +8 -8
  297. package/lib/powerquery-language-services/library/libraryUtils.js +48 -49
  298. package/lib/powerquery-language-services/library/libraryUtils.js.map +1 -1
  299. package/lib/powerquery-language-services/localization/index.d.ts +2 -2
  300. package/lib/powerquery-language-services/localization/index.js +43 -21
  301. package/lib/powerquery-language-services/localization/index.js.map +1 -1
  302. package/lib/powerquery-language-services/localization/localization.d.ts +10 -10
  303. package/lib/powerquery-language-services/localization/localization.js +51 -51
  304. package/lib/powerquery-language-services/localization/localization.js.map +1 -1
  305. package/lib/powerquery-language-services/localization/localizationUtils.d.ts +2 -2
  306. package/lib/powerquery-language-services/localization/localizationUtils.js +7 -9
  307. package/lib/powerquery-language-services/localization/localizationUtils.js.map +1 -1
  308. package/lib/powerquery-language-services/localization/templates/templates.bg-BG.json +12 -12
  309. package/lib/powerquery-language-services/localization/templates/templates.ca-ES.json +12 -12
  310. package/lib/powerquery-language-services/localization/templates/templates.cs-CZ.json +12 -12
  311. package/lib/powerquery-language-services/localization/templates/templates.da-DK.json +12 -12
  312. package/lib/powerquery-language-services/localization/templates/templates.de-DE.json +12 -12
  313. package/lib/powerquery-language-services/localization/templates/templates.el-GR.json +12 -12
  314. package/lib/powerquery-language-services/localization/templates/templates.es-ES.json +12 -12
  315. package/lib/powerquery-language-services/localization/templates/templates.et-EE.json +12 -12
  316. package/lib/powerquery-language-services/localization/templates/templates.eu-ES.json +12 -12
  317. package/lib/powerquery-language-services/localization/templates/templates.fi-FI.json +12 -12
  318. package/lib/powerquery-language-services/localization/templates/templates.fr-FR.json +12 -12
  319. package/lib/powerquery-language-services/localization/templates/templates.gl-ES.json +12 -12
  320. package/lib/powerquery-language-services/localization/templates/templates.hi-IN.json +12 -12
  321. package/lib/powerquery-language-services/localization/templates/templates.hr-HR.json +12 -12
  322. package/lib/powerquery-language-services/localization/templates/templates.hu-HU.json +12 -12
  323. package/lib/powerquery-language-services/localization/templates/templates.id-ID.json +12 -12
  324. package/lib/powerquery-language-services/localization/templates/templates.it-IT.json +12 -12
  325. package/lib/powerquery-language-services/localization/templates/templates.ja-JP.json +12 -12
  326. package/lib/powerquery-language-services/localization/templates/templates.json +20 -20
  327. package/lib/powerquery-language-services/localization/templates/templates.kk-KZ.json +12 -12
  328. package/lib/powerquery-language-services/localization/templates/templates.ko-KR.json +12 -12
  329. package/lib/powerquery-language-services/localization/templates/templates.lt-LT.json +12 -12
  330. package/lib/powerquery-language-services/localization/templates/templates.lv-LV.json +12 -12
  331. package/lib/powerquery-language-services/localization/templates/templates.ms-MY.json +12 -12
  332. package/lib/powerquery-language-services/localization/templates/templates.nb-NO.json +12 -12
  333. package/lib/powerquery-language-services/localization/templates/templates.nl-NL.json +12 -12
  334. package/lib/powerquery-language-services/localization/templates/templates.pl-PL.json +12 -12
  335. package/lib/powerquery-language-services/localization/templates/templates.pt-BR.json +12 -12
  336. package/lib/powerquery-language-services/localization/templates/templates.pt-PT.json +12 -12
  337. package/lib/powerquery-language-services/localization/templates/templates.ro-RO.json +12 -12
  338. package/lib/powerquery-language-services/localization/templates/templates.ru-RU.json +12 -12
  339. package/lib/powerquery-language-services/localization/templates/templates.sk-SK.json +12 -12
  340. package/lib/powerquery-language-services/localization/templates/templates.sl-SI.json +12 -12
  341. package/lib/powerquery-language-services/localization/templates/templates.sr-Cyrl-RS.json +12 -12
  342. package/lib/powerquery-language-services/localization/templates/templates.sr-Latn-RS.json +12 -12
  343. package/lib/powerquery-language-services/localization/templates/templates.sv-SE.json +12 -12
  344. package/lib/powerquery-language-services/localization/templates/templates.th-TH.json +12 -12
  345. package/lib/powerquery-language-services/localization/templates/templates.tr-TR.json +12 -12
  346. package/lib/powerquery-language-services/localization/templates/templates.uk-UA.json +12 -12
  347. package/lib/powerquery-language-services/localization/templates/templates.vi-VN.json +12 -12
  348. package/lib/powerquery-language-services/localization/templates/templates.zh-CN.json +12 -12
  349. package/lib/powerquery-language-services/localization/templates/templates.zh-TW.json +12 -12
  350. package/lib/powerquery-language-services/localization/templates.d.ts +55 -55
  351. package/lib/powerquery-language-services/localization/templates.js +166 -133
  352. package/lib/powerquery-language-services/localization/templates.js.map +1 -1
  353. package/lib/powerquery-language-services/positionUtils.d.ts +32 -32
  354. package/lib/powerquery-language-services/positionUtils.js +257 -240
  355. package/lib/powerquery-language-services/positionUtils.js.map +1 -1
  356. package/lib/powerquery-language-services/providers/commonTypes.d.ts +75 -75
  357. package/lib/powerquery-language-services/providers/commonTypes.js +4 -4
  358. package/lib/powerquery-language-services/providers/index.d.ts +5 -5
  359. package/lib/powerquery-language-services/providers/index.js +28 -28
  360. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.d.ts +12 -12
  361. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js +62 -73
  362. package/lib/powerquery-language-services/providers/languageCompletionItemProvider.js.map +1 -1
  363. package/lib/powerquery-language-services/providers/libraryProvider.d.ts +16 -16
  364. package/lib/powerquery-language-services/providers/libraryProvider.js +116 -131
  365. package/lib/powerquery-language-services/providers/libraryProvider.js.map +1 -1
  366. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.d.ts +4 -4
  367. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js +50 -52
  368. package/lib/powerquery-language-services/providers/localDocumentProvider/foldingRanges.js.map +1 -1
  369. package/lib/powerquery-language-services/providers/localDocumentProvider/index.d.ts +1 -1
  370. package/lib/powerquery-language-services/providers/localDocumentProvider/index.js +19 -19
  371. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.d.ts +21 -21
  372. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js +277 -259
  373. package/lib/powerquery-language-services/providers/localDocumentProvider/localDocumentProvider.js.map +1 -1
  374. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.d.ts +6 -6
  375. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js +313 -321
  376. package/lib/powerquery-language-services/providers/localDocumentProvider/partialSemanticToken.js.map +1 -1
  377. package/lib/powerquery-language-services/providers/nullSymbolProvider.d.ts +19 -19
  378. package/lib/powerquery-language-services/providers/nullSymbolProvider.js +46 -68
  379. package/lib/powerquery-language-services/providers/nullSymbolProvider.js.map +1 -1
  380. package/lib/powerquery-language-services/tokenPositionComparison.d.ts +5 -5
  381. package/lib/powerquery-language-services/tokenPositionComparison.js +12 -12
  382. package/lib/powerquery-language-services/tokenPositionComparison.js.map +1 -1
  383. package/lib/powerquery-language-services/trace.d.ts +27 -27
  384. package/lib/powerquery-language-services/trace.js +36 -36
  385. package/lib/powerquery-language-services/trace.js.map +1 -1
  386. package/lib/powerquery-language-services/traceUtils.d.ts +14 -14
  387. package/lib/powerquery-language-services/traceUtils.js +19 -20
  388. package/lib/powerquery-language-services/traceUtils.js.map +1 -1
  389. package/lib/powerquery-language-services/validate/index.d.ts +3 -3
  390. package/lib/powerquery-language-services/validate/index.js +23 -23
  391. package/lib/powerquery-language-services/validate/validate.d.ts +6 -6
  392. package/lib/powerquery-language-services/validate/validate.js +60 -67
  393. package/lib/powerquery-language-services/validate/validate.js.map +1 -1
  394. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.d.ts +6 -6
  395. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js +164 -134
  396. package/lib/powerquery-language-services/validate/validateDuplicateIdentifiers.js.map +1 -1
  397. package/lib/powerquery-language-services/validate/validateFunctionExpression.d.ts +4 -4
  398. package/lib/powerquery-language-services/validate/validateFunctionExpression.js +63 -63
  399. package/lib/powerquery-language-services/validate/validateFunctionExpression.js.map +1 -1
  400. package/lib/powerquery-language-services/validate/validateInvokeExpression.d.ts +5 -5
  401. package/lib/powerquery-language-services/validate/validateInvokeExpression.js +109 -123
  402. package/lib/powerquery-language-services/validate/validateInvokeExpression.js.map +1 -1
  403. package/lib/powerquery-language-services/validate/validateOk.d.ts +5 -5
  404. package/lib/powerquery-language-services/validate/validateOk.js +4 -4
  405. package/lib/powerquery-language-services/validate/validateParse.d.ts +4 -4
  406. package/lib/powerquery-language-services/validate/validateParse.js +94 -73
  407. package/lib/powerquery-language-services/validate/validateParse.js.map +1 -1
  408. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.d.ts +5 -5
  409. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js +99 -109
  410. package/lib/powerquery-language-services/validate/validateUnknownIdentifiers.js.map +1 -1
  411. package/lib/powerquery-language-services/validate/validationSettings/index.d.ts +2 -2
  412. package/lib/powerquery-language-services/validate/validationSettings/index.js +43 -21
  413. package/lib/powerquery-language-services/validate/validationSettings/index.js.map +1 -1
  414. package/lib/powerquery-language-services/validate/validationSettings/validationSettings.d.ts +12 -12
  415. package/lib/powerquery-language-services/validate/validationSettings/validationSettings.js +4 -4
  416. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.d.ts +3 -3
  417. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js +15 -10
  418. package/lib/powerquery-language-services/validate/validationSettings/validationSettingsUtils.js.map +1 -1
  419. package/package.json +23 -22
@@ -1,328 +1,314 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT license.
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.assertGetOrCreateNodeScope = exports.tryNodeScope = void 0;
15
- const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
16
- const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
17
- const powerquery_parser_1 = require("@microsoft/powerquery-parser");
18
- const __1 = require("../..");
19
- const scope_1 = require("./scope");
20
- const pseudoFunctionExpressionType_1 = require("../pseudoFunctionExpressionType");
21
- const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
22
- // Builds a scope for the given node.
23
- function tryNodeScope(settings, nodeIdMapCollection, eachScopeById, nodeId,
24
- // scopeById may get mutated by adding new entries.
25
- scopeById) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const trace = settings.traceManager.entry(__1.InspectionTraceConstant.InspectScope, tryNodeScope.name, settings.initialCorrelationId);
28
- const updatedSettings = Object.assign(Object.assign({}, settings), { initialCorrelationId: trace.id });
29
- const result = yield powerquery_parser_1.ResultUtils.ensureResultAsync(() => __awaiter(this, void 0, void 0, function* () {
30
- const ancestry = parser_1.AncestryUtils.assertAncestry(nodeIdMapCollection, nodeId);
31
- if (ancestry.length === 0) {
32
- return new Map();
33
- }
34
- yield inspectScope(updatedSettings, nodeIdMapCollection, eachScopeById, ancestry, scopeById, trace.id);
35
- const result = powerquery_parser_1.MapUtils.assertGet(scopeById, nodeId, `expected nodeId in scope result`, {
36
- nodeId,
37
- });
38
- return result;
39
- }), updatedSettings.locale);
40
- trace.exit();
41
- return result;
42
- });
43
- }
44
- exports.tryNodeScope = tryNodeScope;
45
- function assertGetOrCreateNodeScope(settings, nodeIdMapCollection, eachScopeById, nodeId,
46
- // scopeById may get mutated by adding new entries.
47
- scopeById) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- const trace = settings.traceManager.entry(__1.InspectionTraceConstant.InspectScope, assertGetOrCreateNodeScope.name, settings.initialCorrelationId);
50
- const updatedSettings = Object.assign(Object.assign({}, settings), { initialCorrelationId: trace.id });
51
- const nodeScope = scopeById.get(nodeId);
52
- if (nodeScope !== undefined) {
53
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: false });
54
- return powerquery_parser_1.ResultUtils.ok(nodeScope);
55
- }
56
- const triedNodeScope = yield tryNodeScope(updatedSettings, nodeIdMapCollection, eachScopeById, nodeId, scopeById);
57
- if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
58
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
59
- throw triedNodeScope;
60
- }
61
- trace.exit({ [trace_1.TraceConstant.IsThrowing]: false });
62
- return triedNodeScope;
63
- });
64
- }
65
- exports.assertGetOrCreateNodeScope = assertGetOrCreateNodeScope;
66
- function inspectScope(settings, nodeIdMapCollection, eachScopeById, ancestry,
67
- // scopeById may get mutated by adding new entries.
68
- scopeById, correlationId) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const trace = settings.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectScope.name, correlationId);
71
- const rootId = ancestry[0].node.id;
72
- // A scope for the given ancestry has already been generated.
73
- const cached = scopeById.get(rootId);
74
- if (cached !== undefined) {
75
- trace.exit();
76
- return;
77
- }
78
- const state = {
79
- traceManager: settings.traceManager,
80
- givenScope: scopeById,
81
- ancestry,
82
- nodeIdMapCollection,
83
- eachScopeById,
84
- cancellationToken: settings.cancellationToken,
85
- ancestryIndex: 0,
86
- };
87
- // Build up the scope through a top-down inspection.
88
- const numNodes = ancestry.length;
89
- for (let ancestryIndex = numNodes - 1; ancestryIndex >= 0; ancestryIndex -= 1) {
90
- state.ancestryIndex = ancestryIndex;
91
- const xorNode = ancestry[ancestryIndex];
92
- // eslint-disable-next-line no-await-in-loop
93
- yield inspectNode(state, xorNode, trace.id);
94
- }
95
- trace.exit();
96
- });
97
- }
98
- // eslint-disable-next-line require-await
99
- function inspectNode(state, xorNode, correlationId) {
100
- var _a;
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectNode.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
103
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
104
- switch (xorNode.node.kind) {
105
- case language_1.Ast.NodeKind.EachExpression:
106
- inspectEachExpression(state, xorNode, trace.id);
107
- break;
108
- case language_1.Ast.NodeKind.FunctionExpression:
109
- inspectFunctionExpression(state, xorNode, trace.id);
110
- break;
111
- case language_1.Ast.NodeKind.LetExpression:
112
- inspectLetExpression(state, xorNode, trace.id);
113
- break;
114
- case language_1.Ast.NodeKind.RecordExpression:
115
- case language_1.Ast.NodeKind.RecordLiteral:
116
- inspectRecordExpressionOrRecordLiteral(state, xorNode, trace.id);
117
- break;
118
- case language_1.Ast.NodeKind.Section:
119
- inspectSection(state, xorNode, trace.id);
120
- break;
121
- default:
122
- localGetOrCreateNodeScope(state, xorNode.node.id, undefined, trace.id);
123
- }
124
- trace.exit();
125
- });
126
- }
127
- function inspectEachExpression(state, eachExpr, correlationId) {
128
- var _a, _b;
129
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectEachExpression.name, correlationId);
130
- parser_1.XorNodeUtils.assertIsNodeKind(eachExpr, language_1.Ast.NodeKind.EachExpression);
131
- expandChildScope(state, eachExpr, [1], [
132
- [
133
- "_",
134
- {
135
- kind: scope_1.ScopeItemKind.Each,
136
- nodeId: eachExpr.node.id,
137
- isRecursive: false,
138
- eachExpression: eachExpr,
139
- implicitParameterType: (_b = (_a = state.eachScopeById) === null || _a === void 0 ? void 0 : _a.get(eachExpr.node.id)) !== null && _b !== void 0 ? _b : language_1.Type.UnknownInstance,
140
- },
141
- ],
142
- ], localGetOrCreateNodeScope(state, eachExpr.node.id, undefined, trace.id), trace.id);
143
- trace.exit();
144
- }
145
- function inspectFunctionExpression(state, fnExpr, correlationId) {
146
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectFunctionExpression.name, correlationId);
147
- parser_1.XorNodeUtils.assertIsNodeKind(fnExpr, language_1.Ast.NodeKind.FunctionExpression);
148
- // Propegates the parent's scope.
149
- const nodeScope = localGetOrCreateNodeScope(state, fnExpr.node.id, undefined, trace.id);
150
- const pseudoType = (0, pseudoFunctionExpressionType_1.pseudoFunctionExpressionType)(state.nodeIdMapCollection, fnExpr);
151
- const newEntries = [];
152
- for (const parameter of pseudoType.parameters) {
153
- const type = parameter.type
154
- ? language_1.TypeUtils.primitiveTypeConstantKindFromTypeKind(parameter.type)
155
- : undefined;
156
- const parameterScopeItem = scopeItemFactoryForParameter(parameter, type);
157
- for (const scopeKey of language_1.IdentifierUtils.getAllowedIdentifiers(parameter.name.literal)) {
158
- newEntries.push([scopeKey, parameterScopeItem]);
159
- }
160
- }
161
- expandChildScope(state, fnExpr, [3], newEntries, nodeScope, trace.id);
162
- trace.exit();
163
- }
164
- function inspectLetExpression(state, letExpr, correlationId) {
165
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectLetExpression.name, correlationId);
166
- parser_1.XorNodeUtils.assertIsNodeKind(letExpr, language_1.Ast.NodeKind.LetExpression);
167
- // Propegates the parent's scope.
168
- const nodeScope = localGetOrCreateNodeScope(state, letExpr.node.id, undefined, trace.id);
169
- const keyValuePairs = parser_1.NodeIdMapIterator.iterLetExpression(state.nodeIdMapCollection, letExpr);
170
- inspectKeyValuePairs(state, nodeScope, keyValuePairs, { allowRecursive: true }, scopeItemFactoryForLetVariable, trace.id);
171
- // Places the assignments from the 'let' into LetExpression.expression
172
- const newEntries = scopeItemFactoryForKeyValuePairs(keyValuePairs, -1, { allowRecursive: true }, scopeItemFactoryForLetVariable);
173
- expandChildScope(state, letExpr, [3], newEntries, nodeScope, trace.id);
174
- trace.exit();
175
- }
176
- function inspectRecordExpressionOrRecordLiteral(state, record, correlationId) {
177
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectRecordExpressionOrRecordLiteral.name, correlationId);
178
- parser_1.XorNodeUtils.assertIsRecord(record);
179
- // Propegates the parent's scope.
180
- const nodeScope = localGetOrCreateNodeScope(state, record.node.id, undefined, trace.id);
181
- const keyValuePairs = parser_1.NodeIdMapIterator.iterRecord(state.nodeIdMapCollection, record);
182
- inspectKeyValuePairs(state, nodeScope, keyValuePairs, {
183
- allowGeneralizedIdentifier: true,
184
- allowRecursive: true,
185
- }, scopeItemFactoryForRecordMember, trace.id);
186
- trace.exit();
187
- }
188
- function inspectSection(state, section, correlationId) {
189
- var _a;
190
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectSection.name, correlationId);
191
- parser_1.XorNodeUtils.assertIsNodeKind(section, language_1.Ast.NodeKind.Section);
192
- const keyValuePairs = parser_1.NodeIdMapIterator.iterSection(state.nodeIdMapCollection, section);
193
- for (const kvp of keyValuePairs) {
194
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
195
- if (kvp.value === undefined) {
196
- continue;
197
- }
198
- const newScopeItems = scopeItemFactoryForKeyValuePairs(keyValuePairs, kvp.key.id, { allowRecursive: true }, scopeItemFactoryForSectionMember);
199
- if (newScopeItems.length !== 0) {
200
- expandScope(state, kvp.value, newScopeItems, new Map(), trace.id);
201
- }
202
- }
203
- trace.exit();
204
- }
205
- // Expands the scope on the value part of the key value pair.
206
- function inspectKeyValuePairs(state, parentScope, keyValuePairs, getAllowedIdentifiersOptions, scopeItemFactory, correlationId) {
207
- var _a;
208
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectKeyValuePairs.name, correlationId);
209
- for (const kvp of keyValuePairs) {
210
- (_a = state.cancellationToken) === null || _a === void 0 ? void 0 : _a.throwIfCancelled();
211
- if (kvp.value === undefined) {
212
- continue;
213
- }
214
- const newScopeItems = scopeItemFactoryForKeyValuePairs(keyValuePairs, kvp.key.id, getAllowedIdentifiersOptions, scopeItemFactory);
215
- if (newScopeItems.length !== 0) {
216
- expandScope(state, kvp.value, newScopeItems, parentScope, trace.id);
217
- }
218
- }
219
- trace.exit();
220
- }
221
- function expandScope(state, xorNode, newEntries, defaultScope, correlationId) {
222
- const nodeScope = localGetOrCreateNodeScope(state, xorNode.node.id, defaultScope, correlationId);
223
- for (const [key, value] of newEntries) {
224
- nodeScope.set(key, value);
225
- }
226
- }
227
- function expandChildScope(state, parent, childAttributeIds, newEntries, defaultScope, correlationId) {
228
- const nodeIdMapCollection = state.nodeIdMapCollection;
229
- const parentId = parent.node.id;
230
- // TODO: optimize this
231
- for (const attributeId of childAttributeIds) {
232
- const child = parser_1.NodeIdMapUtils.nthChildXor(nodeIdMapCollection, parentId, attributeId);
233
- if (child !== undefined) {
234
- expandScope(state, child, newEntries, defaultScope, correlationId);
235
- }
236
- }
237
- }
238
- // Any operation done on a scope should first invoke `scopeFor` for data integrity.
239
- function localGetOrCreateNodeScope(state, nodeId, defaultScope, correlationId) {
240
- const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, localGetOrCreateNodeScope.name, correlationId, { nodeId });
241
- // If scopeFor has already been called then there should be a nodeId in the givenScope.
242
- const givenScope = state.givenScope.get(nodeId);
243
- if (givenScope !== undefined) {
244
- trace.exit({ [trace_1.TraceConstant.Result]: "givenScope cache hit" });
245
- return givenScope;
246
- }
247
- if (defaultScope !== undefined) {
248
- const shallowCopy = new Map(defaultScope.entries());
249
- state.givenScope.set(nodeId, shallowCopy);
250
- trace.exit({ [trace_1.TraceConstant.Result]: "defaultScope entry" });
251
- return shallowCopy;
252
- }
253
- const xorNode = parser_1.NodeIdMapUtils.assertXor(state.nodeIdMapCollection, nodeId);
254
- if ([language_1.Ast.NodeKind.FieldProjection, language_1.Ast.NodeKind.FieldSelector].includes(xorNode.node.kind)) {
255
- trace.exit({ [trace_1.TraceConstant.Result]: "field projection or selector - empty scope" });
256
- const newScope = new Map();
257
- state.givenScope.set(nodeId, newScope);
258
- return newScope;
259
- }
260
- // Default to a parent's scope if the node has a parent.
261
- const parent = parser_1.NodeIdMapUtils.parentXor(state.nodeIdMapCollection, nodeId);
262
- if (parent !== undefined) {
263
- const parentNodeId = parent.node.id;
264
- const parentGivenScope = state.givenScope.get(parentNodeId);
265
- if (parentGivenScope !== undefined) {
266
- const shallowCopy = new Map(parentGivenScope.entries());
267
- state.givenScope.set(nodeId, shallowCopy);
268
- trace.exit({ [trace_1.TraceConstant.Result]: "parent givenScope hit" });
269
- return parentGivenScope;
270
- }
271
- }
272
- // The node has no parent or it hasn't been visited.
273
- const newScope = new Map();
274
- state.givenScope.set(nodeId, newScope);
275
- trace.exit({ [trace_1.TraceConstant.Result]: "set new entry" });
276
- return newScope;
277
- }
278
- function scopeItemFactoryForKeyValuePairs(keyValuePairs, ancestorKeyNodeId, getAllowedIdentifiersOptions, scopeItemFactory) {
279
- const result = [];
280
- for (const kvp of keyValuePairs.filter((keyValuePair) => keyValuePair.value !== undefined)) {
281
- const isRecursive = ancestorKeyNodeId === kvp.key.id;
282
- for (const key of language_1.IdentifierUtils.getAllowedIdentifiers(kvp.key.literal, getAllowedIdentifiersOptions)) {
283
- if (!isRecursive || key.includes("@")) {
284
- result.push([key, scopeItemFactory(kvp, isRecursive)]);
285
- }
286
- }
287
- }
288
- return result;
289
- }
290
- function scopeItemFactoryForLetVariable(keyValuePair, isRecursive) {
291
- return {
292
- kind: scope_1.ScopeItemKind.LetVariable,
293
- nodeId: keyValuePair.source.node.id,
294
- isRecursive,
295
- key: keyValuePair.key,
296
- value: keyValuePair.value,
297
- };
298
- }
299
- function scopeItemFactoryForParameter(parameter, type) {
300
- return {
301
- kind: scope_1.ScopeItemKind.Parameter,
302
- nodeId: parameter.id,
303
- isRecursive: false,
304
- name: parameter.name,
305
- isOptional: parameter.isOptional,
306
- isNullable: parameter.isNullable,
307
- type,
308
- };
309
- }
310
- function scopeItemFactoryForRecordMember(keyValuePair, isRecursive) {
311
- return {
312
- kind: scope_1.ScopeItemKind.RecordField,
313
- nodeId: keyValuePair.source.node.id,
314
- isRecursive,
315
- key: keyValuePair.key,
316
- value: keyValuePair.value,
317
- };
318
- }
319
- function scopeItemFactoryForSectionMember(keyValuePair, isRecursive) {
320
- return {
321
- kind: scope_1.ScopeItemKind.SectionMember,
322
- nodeId: keyValuePair.source.node.id,
323
- isRecursive,
324
- key: keyValuePair.key,
325
- value: keyValuePair.value,
326
- };
327
- }
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.tryNodeScope = tryNodeScope;
6
+ exports.assertGetOrCreateNodeScope = assertGetOrCreateNodeScope;
7
+ const parser_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/parser");
8
+ const language_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/language");
9
+ const powerquery_parser_1 = require("@microsoft/powerquery-parser");
10
+ const __1 = require("../..");
11
+ const scope_1 = require("./scope");
12
+ const pseudoFunctionExpressionType_1 = require("../pseudoFunctionExpressionType");
13
+ const trace_1 = require("@microsoft/powerquery-parser/lib/powerquery-parser/common/trace");
14
+ // Builds a scope for the given node.
15
+ async function tryNodeScope(settings, nodeIdMapCollection, eachScopeById, nodeId,
16
+ // scopeById may get mutated by adding new entries.
17
+ scopeById) {
18
+ const trace = settings.traceManager.entry(__1.InspectionTraceConstant.InspectScope, tryNodeScope.name, settings.initialCorrelationId);
19
+ const updatedSettings = {
20
+ ...settings,
21
+ initialCorrelationId: trace.id,
22
+ };
23
+ const result = await powerquery_parser_1.ResultUtils.ensureResultAsync(async () => {
24
+ const ancestry = parser_1.AncestryUtils.assertAncestry(nodeIdMapCollection, nodeId);
25
+ if (ancestry.length === 0) {
26
+ return new Map();
27
+ }
28
+ await inspectScope(updatedSettings, nodeIdMapCollection, eachScopeById, ancestry, scopeById, trace.id);
29
+ const result = powerquery_parser_1.MapUtils.assertGet(scopeById, nodeId, `expected nodeId in scope result`, {
30
+ nodeId,
31
+ });
32
+ return result;
33
+ }, updatedSettings.locale);
34
+ trace.exit();
35
+ return result;
36
+ }
37
+ async function assertGetOrCreateNodeScope(settings, nodeIdMapCollection, eachScopeById, nodeId,
38
+ // scopeById may get mutated by adding new entries.
39
+ scopeById) {
40
+ const trace = settings.traceManager.entry(__1.InspectionTraceConstant.InspectScope, assertGetOrCreateNodeScope.name, settings.initialCorrelationId);
41
+ const updatedSettings = {
42
+ ...settings,
43
+ initialCorrelationId: trace.id,
44
+ };
45
+ const nodeScope = scopeById.get(nodeId);
46
+ if (nodeScope !== undefined) {
47
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: false });
48
+ return powerquery_parser_1.ResultUtils.ok(nodeScope);
49
+ }
50
+ const triedNodeScope = await tryNodeScope(updatedSettings, nodeIdMapCollection, eachScopeById, nodeId, scopeById);
51
+ if (powerquery_parser_1.ResultUtils.isError(triedNodeScope)) {
52
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: true });
53
+ throw triedNodeScope;
54
+ }
55
+ trace.exit({ [trace_1.TraceConstant.IsThrowing]: false });
56
+ return triedNodeScope;
57
+ }
58
+ async function inspectScope(settings, nodeIdMapCollection, eachScopeById, ancestry,
59
+ // scopeById may get mutated by adding new entries.
60
+ scopeById, correlationId) {
61
+ const trace = settings.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectScope.name, correlationId);
62
+ const rootId = ancestry[0].node.id;
63
+ // A scope for the given ancestry has already been generated.
64
+ const cached = scopeById.get(rootId);
65
+ if (cached !== undefined) {
66
+ trace.exit();
67
+ return;
68
+ }
69
+ const state = {
70
+ traceManager: settings.traceManager,
71
+ givenScope: scopeById,
72
+ ancestry,
73
+ nodeIdMapCollection,
74
+ eachScopeById,
75
+ cancellationToken: settings.cancellationToken,
76
+ ancestryIndex: 0,
77
+ };
78
+ // Build up the scope through a top-down inspection.
79
+ const numNodes = ancestry.length;
80
+ for (let ancestryIndex = numNodes - 1; ancestryIndex >= 0; ancestryIndex -= 1) {
81
+ state.ancestryIndex = ancestryIndex;
82
+ const xorNode = ancestry[ancestryIndex];
83
+ // eslint-disable-next-line no-await-in-loop
84
+ await inspectNode(state, xorNode, trace.id);
85
+ }
86
+ trace.exit();
87
+ }
88
+ // eslint-disable-next-line require-await
89
+ async function inspectNode(state, xorNode, correlationId) {
90
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectNode.name, correlationId, __1.TraceUtils.xorNodeDetails(xorNode));
91
+ state.cancellationToken?.throwIfCancelled();
92
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
93
+ switch (xorNode.node.kind) {
94
+ case language_1.Ast.NodeKind.EachExpression:
95
+ inspectEachExpression(state, xorNode, trace.id);
96
+ break;
97
+ case language_1.Ast.NodeKind.FunctionExpression:
98
+ inspectFunctionExpression(state, xorNode, trace.id);
99
+ break;
100
+ case language_1.Ast.NodeKind.LetExpression:
101
+ inspectLetExpression(state, xorNode, trace.id);
102
+ break;
103
+ case language_1.Ast.NodeKind.RecordExpression:
104
+ case language_1.Ast.NodeKind.RecordLiteral:
105
+ inspectRecordExpressionOrRecordLiteral(state, xorNode, trace.id);
106
+ break;
107
+ case language_1.Ast.NodeKind.Section:
108
+ inspectSection(state, xorNode, trace.id);
109
+ break;
110
+ default:
111
+ localGetOrCreateNodeScope(state, xorNode.node.id, undefined, trace.id);
112
+ }
113
+ trace.exit();
114
+ }
115
+ function inspectEachExpression(state, eachExpr, correlationId) {
116
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectEachExpression.name, correlationId);
117
+ parser_1.XorNodeUtils.assertIsNodeKind(eachExpr, language_1.Ast.NodeKind.EachExpression);
118
+ expandChildScope(state, eachExpr, [1], [
119
+ [
120
+ "_",
121
+ {
122
+ kind: scope_1.ScopeItemKind.Each,
123
+ nodeId: eachExpr.node.id,
124
+ isRecursive: false,
125
+ eachExpression: eachExpr,
126
+ implicitParameterType: state.eachScopeById?.get(eachExpr.node.id) ?? language_1.Type.UnknownInstance,
127
+ },
128
+ ],
129
+ ], localGetOrCreateNodeScope(state, eachExpr.node.id, undefined, trace.id), trace.id);
130
+ trace.exit();
131
+ }
132
+ function inspectFunctionExpression(state, fnExpr, correlationId) {
133
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectFunctionExpression.name, correlationId);
134
+ parser_1.XorNodeUtils.assertIsNodeKind(fnExpr, language_1.Ast.NodeKind.FunctionExpression);
135
+ // Propegates the parent's scope.
136
+ const nodeScope = localGetOrCreateNodeScope(state, fnExpr.node.id, undefined, trace.id);
137
+ const pseudoType = (0, pseudoFunctionExpressionType_1.pseudoFunctionExpressionType)(state.nodeIdMapCollection, fnExpr);
138
+ const newEntries = [];
139
+ for (const parameter of pseudoType.parameters) {
140
+ const type = parameter.type
141
+ ? language_1.TypeUtils.primitiveTypeConstantKindFromTypeKind(parameter.type)
142
+ : undefined;
143
+ const parameterScopeItem = scopeItemFactoryForParameter(parameter, type);
144
+ for (const scopeKey of language_1.IdentifierUtils.getAllowedIdentifiers(parameter.name.literal)) {
145
+ newEntries.push([scopeKey, parameterScopeItem]);
146
+ }
147
+ }
148
+ expandChildScope(state, fnExpr, [3], newEntries, nodeScope, trace.id);
149
+ trace.exit();
150
+ }
151
+ function inspectLetExpression(state, letExpr, correlationId) {
152
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectLetExpression.name, correlationId);
153
+ parser_1.XorNodeUtils.assertIsNodeKind(letExpr, language_1.Ast.NodeKind.LetExpression);
154
+ // Propegates the parent's scope.
155
+ const nodeScope = localGetOrCreateNodeScope(state, letExpr.node.id, undefined, trace.id);
156
+ const keyValuePairs = parser_1.NodeIdMapIterator.iterLetExpression(state.nodeIdMapCollection, letExpr);
157
+ inspectKeyValuePairs(state, nodeScope, keyValuePairs, { allowRecursive: true }, scopeItemFactoryForLetVariable, trace.id);
158
+ // Places the assignments from the 'let' into LetExpression.expression
159
+ const newEntries = scopeItemFactoryForKeyValuePairs(keyValuePairs, -1, { allowRecursive: true }, scopeItemFactoryForLetVariable);
160
+ expandChildScope(state, letExpr, [3], newEntries, nodeScope, trace.id);
161
+ trace.exit();
162
+ }
163
+ function inspectRecordExpressionOrRecordLiteral(state, record, correlationId) {
164
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectRecordExpressionOrRecordLiteral.name, correlationId);
165
+ parser_1.XorNodeUtils.assertIsRecord(record);
166
+ // Propegates the parent's scope.
167
+ const nodeScope = localGetOrCreateNodeScope(state, record.node.id, undefined, trace.id);
168
+ const keyValuePairs = parser_1.NodeIdMapIterator.iterRecord(state.nodeIdMapCollection, record);
169
+ inspectKeyValuePairs(state, nodeScope, keyValuePairs, {
170
+ allowGeneralizedIdentifier: true,
171
+ allowRecursive: true,
172
+ }, scopeItemFactoryForRecordMember, trace.id);
173
+ trace.exit();
174
+ }
175
+ function inspectSection(state, section, correlationId) {
176
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectSection.name, correlationId);
177
+ parser_1.XorNodeUtils.assertIsNodeKind(section, language_1.Ast.NodeKind.Section);
178
+ const keyValuePairs = parser_1.NodeIdMapIterator.iterSection(state.nodeIdMapCollection, section);
179
+ for (const kvp of keyValuePairs) {
180
+ state.cancellationToken?.throwIfCancelled();
181
+ if (kvp.value === undefined) {
182
+ continue;
183
+ }
184
+ const newScopeItems = scopeItemFactoryForKeyValuePairs(keyValuePairs, kvp.key.id, { allowRecursive: true }, scopeItemFactoryForSectionMember);
185
+ if (newScopeItems.length !== 0) {
186
+ expandScope(state, kvp.value, newScopeItems, new Map(), trace.id);
187
+ }
188
+ }
189
+ trace.exit();
190
+ }
191
+ // Expands the scope on the value part of the key value pair.
192
+ function inspectKeyValuePairs(state, parentScope, keyValuePairs, getAllowedIdentifiersOptions, scopeItemFactory, correlationId) {
193
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, inspectKeyValuePairs.name, correlationId);
194
+ for (const kvp of keyValuePairs) {
195
+ state.cancellationToken?.throwIfCancelled();
196
+ if (kvp.value === undefined) {
197
+ continue;
198
+ }
199
+ const newScopeItems = scopeItemFactoryForKeyValuePairs(keyValuePairs, kvp.key.id, getAllowedIdentifiersOptions, scopeItemFactory);
200
+ if (newScopeItems.length !== 0) {
201
+ expandScope(state, kvp.value, newScopeItems, parentScope, trace.id);
202
+ }
203
+ }
204
+ trace.exit();
205
+ }
206
+ function expandScope(state, xorNode, newEntries, defaultScope, correlationId) {
207
+ const nodeScope = localGetOrCreateNodeScope(state, xorNode.node.id, defaultScope, correlationId);
208
+ for (const [key, value] of newEntries) {
209
+ nodeScope.set(key, value);
210
+ }
211
+ }
212
+ function expandChildScope(state, parent, childAttributeIds, newEntries, defaultScope, correlationId) {
213
+ const nodeIdMapCollection = state.nodeIdMapCollection;
214
+ const parentId = parent.node.id;
215
+ // TODO: optimize this
216
+ for (const attributeId of childAttributeIds) {
217
+ const child = parser_1.NodeIdMapUtils.nthChildXor(nodeIdMapCollection, parentId, attributeId);
218
+ if (child !== undefined) {
219
+ expandScope(state, child, newEntries, defaultScope, correlationId);
220
+ }
221
+ }
222
+ }
223
+ // Any operation done on a scope should first invoke `scopeFor` for data integrity.
224
+ function localGetOrCreateNodeScope(state, nodeId, defaultScope, correlationId) {
225
+ const trace = state.traceManager.entry(__1.InspectionTraceConstant.InspectScope, localGetOrCreateNodeScope.name, correlationId, { nodeId });
226
+ // If scopeFor has already been called then there should be a nodeId in the givenScope.
227
+ const givenScope = state.givenScope.get(nodeId);
228
+ if (givenScope !== undefined) {
229
+ trace.exit({ [trace_1.TraceConstant.Result]: "givenScope cache hit" });
230
+ return givenScope;
231
+ }
232
+ if (defaultScope !== undefined) {
233
+ const shallowCopy = new Map(defaultScope.entries());
234
+ state.givenScope.set(nodeId, shallowCopy);
235
+ trace.exit({ [trace_1.TraceConstant.Result]: "defaultScope entry" });
236
+ return shallowCopy;
237
+ }
238
+ // Default to a parent's scope if the node has a parent.
239
+ // Special handling is needed for FieldProjection/FieldSelector which should only copy the EachExpression scope.
240
+ const parent = parser_1.NodeIdMapUtils.parentXor(state.nodeIdMapCollection, nodeId);
241
+ if (parent !== undefined) {
242
+ const parentNodeId = parent.node.id;
243
+ const parentGivenScope = state.givenScope.get(parentNodeId);
244
+ if (parentGivenScope !== undefined) {
245
+ const xorNode = parser_1.NodeIdMapUtils.assertXor(state.nodeIdMapCollection, nodeId);
246
+ let shallowCopy;
247
+ if ([language_1.Ast.NodeKind.FieldProjection, language_1.Ast.NodeKind.FieldSelector].includes(xorNode.node.kind)) {
248
+ shallowCopy = powerquery_parser_1.MapUtils.filter(parentGivenScope, (_key, value) => value.kind === scope_1.ScopeItemKind.Each);
249
+ }
250
+ else {
251
+ shallowCopy = new Map(parentGivenScope.entries());
252
+ }
253
+ state.givenScope.set(nodeId, shallowCopy);
254
+ trace.exit({ [trace_1.TraceConstant.Result]: "parent givenScope hit" });
255
+ return shallowCopy;
256
+ }
257
+ }
258
+ // The node has no parent or it hasn't been visited.
259
+ const newScope = new Map();
260
+ state.givenScope.set(nodeId, newScope);
261
+ trace.exit({ [trace_1.TraceConstant.Result]: "set new entry" });
262
+ return newScope;
263
+ }
264
+ function scopeItemFactoryForKeyValuePairs(keyValuePairs, ancestorKeyNodeId, getAllowedIdentifiersOptions, scopeItemFactory) {
265
+ const result = [];
266
+ for (const kvp of keyValuePairs.filter((keyValuePair) => keyValuePair.value !== undefined)) {
267
+ const isRecursive = ancestorKeyNodeId === kvp.key.id;
268
+ for (const key of language_1.IdentifierUtils.getAllowedIdentifiers(kvp.key.literal, getAllowedIdentifiersOptions)) {
269
+ if (!isRecursive || key.includes("@")) {
270
+ result.push([key, scopeItemFactory(kvp, isRecursive)]);
271
+ }
272
+ }
273
+ }
274
+ return result;
275
+ }
276
+ function scopeItemFactoryForLetVariable(keyValuePair, isRecursive) {
277
+ return {
278
+ kind: scope_1.ScopeItemKind.LetVariable,
279
+ nodeId: keyValuePair.source.node.id,
280
+ isRecursive,
281
+ key: keyValuePair.key,
282
+ value: keyValuePair.value,
283
+ };
284
+ }
285
+ function scopeItemFactoryForParameter(parameter, type) {
286
+ return {
287
+ kind: scope_1.ScopeItemKind.Parameter,
288
+ nodeId: parameter.id,
289
+ isRecursive: false,
290
+ name: parameter.name,
291
+ isOptional: parameter.isOptional,
292
+ isNullable: parameter.isNullable,
293
+ type,
294
+ };
295
+ }
296
+ function scopeItemFactoryForRecordMember(keyValuePair, isRecursive) {
297
+ return {
298
+ kind: scope_1.ScopeItemKind.RecordField,
299
+ nodeId: keyValuePair.source.node.id,
300
+ isRecursive,
301
+ key: keyValuePair.key,
302
+ value: keyValuePair.value,
303
+ };
304
+ }
305
+ function scopeItemFactoryForSectionMember(keyValuePair, isRecursive) {
306
+ return {
307
+ kind: scope_1.ScopeItemKind.SectionMember,
308
+ nodeId: keyValuePair.source.node.id,
309
+ isRecursive,
310
+ key: keyValuePair.key,
311
+ value: keyValuePair.value,
312
+ };
313
+ }
328
314
  //# sourceMappingURL=scopeInspection.js.map