@azure/cosmos 4.9.2 → 4.9.3

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 (684) hide show
  1. package/dist/browser/common/constants.js +1 -1
  2. package/dist/browser/common/constants.js.map +1 -1
  3. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
  4. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
  5. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -5
  6. package/dist/browser/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -1
  7. package/dist/commonjs/ChangeFeedIterator.js +6 -0
  8. package/dist/commonjs/ChangeFeedIterator.js.map +2 -2
  9. package/dist/commonjs/ChangeFeedOptions.js +1 -0
  10. package/dist/commonjs/ChangeFeedOptions.js.map +1 -1
  11. package/dist/commonjs/ChangeFeedResponse.js +5 -0
  12. package/dist/commonjs/ChangeFeedResponse.js.map +2 -2
  13. package/dist/commonjs/ClientContext.js +6 -0
  14. package/dist/commonjs/ClientContext.js.map +2 -2
  15. package/dist/commonjs/CosmosClient.js +1 -0
  16. package/dist/commonjs/CosmosClient.js.map +1 -1
  17. package/dist/commonjs/CosmosClientOptions.js +1 -0
  18. package/dist/commonjs/CosmosClientOptions.js.map +1 -1
  19. package/dist/commonjs/CosmosDiagnostics.js +1 -0
  20. package/dist/commonjs/CosmosDiagnostics.js.map +1 -1
  21. package/dist/commonjs/GlobalEndpointManagerOptions.js +1 -0
  22. package/dist/commonjs/GlobalEndpointManagerOptions.js.map +1 -1
  23. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js +1 -0
  24. package/dist/commonjs/PartitionKeyRangeFailoverInfo.js.map +1 -1
  25. package/dist/commonjs/auth.js +1 -0
  26. package/dist/commonjs/auth.js.map +1 -1
  27. package/dist/commonjs/bulk/Batcher.js +1 -0
  28. package/dist/commonjs/bulk/Batcher.js.map +1 -1
  29. package/dist/commonjs/bulk/BulkHelper.js +1 -0
  30. package/dist/commonjs/bulk/BulkHelper.js.map +1 -1
  31. package/dist/commonjs/bulk/BulkResponse.js +1 -0
  32. package/dist/commonjs/bulk/BulkResponse.js.map +1 -1
  33. package/dist/commonjs/bulk/CongestionAlgorithm.js +1 -0
  34. package/dist/commonjs/bulk/CongestionAlgorithm.js.map +1 -1
  35. package/dist/commonjs/bulk/HelperPerPartition.js +1 -0
  36. package/dist/commonjs/bulk/HelperPerPartition.js.map +1 -1
  37. package/dist/commonjs/bulk/ItemOperation.js +1 -0
  38. package/dist/commonjs/bulk/ItemOperation.js.map +1 -1
  39. package/dist/commonjs/bulk/ItemOperationContext.js +1 -0
  40. package/dist/commonjs/bulk/ItemOperationContext.js.map +1 -1
  41. package/dist/commonjs/bulk/Limiter.js +1 -0
  42. package/dist/commonjs/bulk/Limiter.js.map +1 -1
  43. package/dist/commonjs/bulk/PartitionMetric.js +1 -0
  44. package/dist/commonjs/bulk/PartitionMetric.js.map +1 -1
  45. package/dist/commonjs/bulk/index.js +1 -0
  46. package/dist/commonjs/bulk/index.js.map +1 -1
  47. package/dist/commonjs/client/ChangeFeed/ChangeFeedEnums.js +1 -0
  48. package/dist/commonjs/client/ChangeFeed/ChangeFeedEnums.js.map +1 -1
  49. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js +9 -0
  50. package/dist/commonjs/client/ChangeFeed/ChangeFeedForEpkRange.js.map +2 -2
  51. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js +7 -0
  52. package/dist/commonjs/client/ChangeFeed/ChangeFeedForPartitionKey.js.map +2 -2
  53. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js +5 -0
  54. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorBuilder.js.map +2 -2
  55. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.js +1 -0
  56. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorOptions.js.map +1 -1
  57. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js +6 -0
  58. package/dist/commonjs/client/ChangeFeed/ChangeFeedIteratorResponse.js.map +2 -2
  59. package/dist/commonjs/client/ChangeFeed/ChangeFeedMode.js +1 -0
  60. package/dist/commonjs/client/ChangeFeed/ChangeFeedMode.js.map +1 -1
  61. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js +1 -0
  62. package/dist/commonjs/client/ChangeFeed/ChangeFeedPolicy.js.map +1 -1
  63. package/dist/commonjs/client/ChangeFeed/ChangeFeedPullModelIterator.js +1 -0
  64. package/dist/commonjs/client/ChangeFeed/ChangeFeedPullModelIterator.js.map +1 -1
  65. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js +1 -0
  66. package/dist/commonjs/client/ChangeFeed/ChangeFeedRange.js.map +1 -1
  67. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js +1 -0
  68. package/dist/commonjs/client/ChangeFeed/ChangeFeedRetentionTimeSpan.js.map +1 -1
  69. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFrom.js +1 -0
  70. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFrom.js.map +1 -1
  71. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js +1 -0
  72. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromBeginning.js.map +1 -1
  73. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js +1 -0
  74. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromContinuation.js.map +1 -1
  75. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js +1 -0
  76. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromNow.js.map +1 -1
  77. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js +1 -0
  78. package/dist/commonjs/client/ChangeFeed/ChangeFeedStartFromTime.js.map +1 -1
  79. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js +1 -0
  80. package/dist/commonjs/client/ChangeFeed/CompositeContinuationToken.js.map +1 -1
  81. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js +1 -0
  82. package/dist/commonjs/client/ChangeFeed/ContinuationTokenForPartitionKey.js.map +1 -1
  83. package/dist/commonjs/client/ChangeFeed/FeedRange.js +1 -0
  84. package/dist/commonjs/client/ChangeFeed/FeedRange.js.map +1 -1
  85. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js +1 -0
  86. package/dist/commonjs/client/ChangeFeed/FeedRangeQueue.js.map +1 -1
  87. package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.js +1 -0
  88. package/dist/commonjs/client/ChangeFeed/InternalChangeFeedOptions.js.map +1 -1
  89. package/dist/commonjs/client/ChangeFeed/buildChangeFeedIterator.js +1 -0
  90. package/dist/commonjs/client/ChangeFeed/buildChangeFeedIterator.js.map +1 -1
  91. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js +1 -0
  92. package/dist/commonjs/client/ChangeFeed/changeFeedUtils.js.map +1 -1
  93. package/dist/commonjs/client/ChangeFeed/index.js +1 -0
  94. package/dist/commonjs/client/ChangeFeed/index.js.map +1 -1
  95. package/dist/commonjs/client/ClientUtils.js +1 -0
  96. package/dist/commonjs/client/ClientUtils.js.map +1 -1
  97. package/dist/commonjs/client/Conflict/Conflict.js +5 -0
  98. package/dist/commonjs/client/Conflict/Conflict.js.map +2 -2
  99. package/dist/commonjs/client/Conflict/ConflictDefinition.js +1 -0
  100. package/dist/commonjs/client/Conflict/ConflictDefinition.js.map +1 -1
  101. package/dist/commonjs/client/Conflict/ConflictResolutionMode.js +1 -0
  102. package/dist/commonjs/client/Conflict/ConflictResolutionMode.js.map +1 -1
  103. package/dist/commonjs/client/Conflict/ConflictResolutionPolicy.js +1 -0
  104. package/dist/commonjs/client/Conflict/ConflictResolutionPolicy.js.map +1 -1
  105. package/dist/commonjs/client/Conflict/ConflictResponse.js +1 -0
  106. package/dist/commonjs/client/Conflict/ConflictResponse.js.map +1 -1
  107. package/dist/commonjs/client/Conflict/Conflicts.js +3 -0
  108. package/dist/commonjs/client/Conflict/Conflicts.js.map +2 -2
  109. package/dist/commonjs/client/Conflict/index.js +1 -0
  110. package/dist/commonjs/client/Conflict/index.js.map +1 -1
  111. package/dist/commonjs/client/Container/Container.js +5 -0
  112. package/dist/commonjs/client/Container/Container.js.map +2 -2
  113. package/dist/commonjs/client/Container/ContainerDefinition.js +1 -0
  114. package/dist/commonjs/client/Container/ContainerDefinition.js.map +1 -1
  115. package/dist/commonjs/client/Container/ContainerRequest.js +1 -0
  116. package/dist/commonjs/client/Container/ContainerRequest.js.map +1 -1
  117. package/dist/commonjs/client/Container/ContainerResponse.js +1 -0
  118. package/dist/commonjs/client/Container/ContainerResponse.js.map +1 -1
  119. package/dist/commonjs/client/Container/Containers.js +4 -0
  120. package/dist/commonjs/client/Container/Containers.js.map +2 -2
  121. package/dist/commonjs/client/Container/PartitionKeyRange.js +1 -0
  122. package/dist/commonjs/client/Container/PartitionKeyRange.js.map +1 -1
  123. package/dist/commonjs/client/Container/UniqueKeyPolicy.js +1 -0
  124. package/dist/commonjs/client/Container/UniqueKeyPolicy.js.map +1 -1
  125. package/dist/commonjs/client/Container/index.js +1 -0
  126. package/dist/commonjs/client/Container/index.js.map +1 -1
  127. package/dist/commonjs/client/Database/Database.js +5 -0
  128. package/dist/commonjs/client/Database/Database.js.map +2 -2
  129. package/dist/commonjs/client/Database/DatabaseDefinition.js +1 -0
  130. package/dist/commonjs/client/Database/DatabaseDefinition.js.map +1 -1
  131. package/dist/commonjs/client/Database/DatabaseRequest.js +1 -0
  132. package/dist/commonjs/client/Database/DatabaseRequest.js.map +1 -1
  133. package/dist/commonjs/client/Database/DatabaseResponse.js +1 -0
  134. package/dist/commonjs/client/Database/DatabaseResponse.js.map +1 -1
  135. package/dist/commonjs/client/Database/Databases.js +4 -0
  136. package/dist/commonjs/client/Database/Databases.js.map +2 -2
  137. package/dist/commonjs/client/Database/index.js +1 -0
  138. package/dist/commonjs/client/Database/index.js.map +1 -1
  139. package/dist/commonjs/client/Item/Item.js +4 -0
  140. package/dist/commonjs/client/Item/Item.js.map +2 -2
  141. package/dist/commonjs/client/Item/ItemDefinition.js +1 -0
  142. package/dist/commonjs/client/Item/ItemDefinition.js.map +1 -1
  143. package/dist/commonjs/client/Item/ItemResponse.js +1 -0
  144. package/dist/commonjs/client/Item/ItemResponse.js.map +1 -1
  145. package/dist/commonjs/client/Item/Items.js +3 -0
  146. package/dist/commonjs/client/Item/Items.js.map +2 -2
  147. package/dist/commonjs/client/Item/index.js +1 -0
  148. package/dist/commonjs/client/Item/index.js.map +1 -1
  149. package/dist/commonjs/client/Offer/Offer.js +4 -0
  150. package/dist/commonjs/client/Offer/Offer.js.map +2 -2
  151. package/dist/commonjs/client/Offer/OfferDefinition.js +1 -0
  152. package/dist/commonjs/client/Offer/OfferDefinition.js.map +1 -1
  153. package/dist/commonjs/client/Offer/OfferResponse.js +1 -0
  154. package/dist/commonjs/client/Offer/OfferResponse.js.map +1 -1
  155. package/dist/commonjs/client/Offer/Offers.js +3 -0
  156. package/dist/commonjs/client/Offer/Offers.js.map +2 -2
  157. package/dist/commonjs/client/Offer/index.js +1 -0
  158. package/dist/commonjs/client/Offer/index.js.map +1 -1
  159. package/dist/commonjs/client/Permission/Permission.js +4 -0
  160. package/dist/commonjs/client/Permission/Permission.js.map +2 -2
  161. package/dist/commonjs/client/Permission/PermissionBody.js +1 -0
  162. package/dist/commonjs/client/Permission/PermissionBody.js.map +1 -1
  163. package/dist/commonjs/client/Permission/PermissionDefinition.js +1 -0
  164. package/dist/commonjs/client/Permission/PermissionDefinition.js.map +1 -1
  165. package/dist/commonjs/client/Permission/PermissionResponse.js +1 -0
  166. package/dist/commonjs/client/Permission/PermissionResponse.js.map +1 -1
  167. package/dist/commonjs/client/Permission/Permissions.js +3 -0
  168. package/dist/commonjs/client/Permission/Permissions.js.map +2 -2
  169. package/dist/commonjs/client/Permission/index.js +1 -0
  170. package/dist/commonjs/client/Permission/index.js.map +1 -1
  171. package/dist/commonjs/client/Resource.js +1 -0
  172. package/dist/commonjs/client/Resource.js.map +1 -1
  173. package/dist/commonjs/client/SasToken/PermissionScopeValues.js +1 -0
  174. package/dist/commonjs/client/SasToken/PermissionScopeValues.js.map +1 -1
  175. package/dist/commonjs/client/SasToken/SasTokenProperties.js +1 -0
  176. package/dist/commonjs/client/SasToken/SasTokenProperties.js.map +1 -1
  177. package/dist/commonjs/client/Script/Scripts.js +3 -0
  178. package/dist/commonjs/client/Script/Scripts.js.map +2 -2
  179. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js +4 -0
  180. package/dist/commonjs/client/StoredProcedure/StoredProcedure.js.map +2 -2
  181. package/dist/commonjs/client/StoredProcedure/StoredProcedureDefinition.js +1 -0
  182. package/dist/commonjs/client/StoredProcedure/StoredProcedureDefinition.js.map +1 -1
  183. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js +1 -0
  184. package/dist/commonjs/client/StoredProcedure/StoredProcedureResponse.js.map +1 -1
  185. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js +3 -0
  186. package/dist/commonjs/client/StoredProcedure/StoredProcedures.js.map +2 -2
  187. package/dist/commonjs/client/StoredProcedure/index.js +1 -0
  188. package/dist/commonjs/client/StoredProcedure/index.js.map +1 -1
  189. package/dist/commonjs/client/Trigger/Trigger.js +4 -0
  190. package/dist/commonjs/client/Trigger/Trigger.js.map +2 -2
  191. package/dist/commonjs/client/Trigger/TriggerDefinition.js +1 -0
  192. package/dist/commonjs/client/Trigger/TriggerDefinition.js.map +1 -1
  193. package/dist/commonjs/client/Trigger/TriggerResponse.js +1 -0
  194. package/dist/commonjs/client/Trigger/TriggerResponse.js.map +1 -1
  195. package/dist/commonjs/client/Trigger/Triggers.js +3 -0
  196. package/dist/commonjs/client/Trigger/Triggers.js.map +2 -2
  197. package/dist/commonjs/client/Trigger/index.js +1 -0
  198. package/dist/commonjs/client/Trigger/index.js.map +1 -1
  199. package/dist/commonjs/client/User/User.js +4 -0
  200. package/dist/commonjs/client/User/User.js.map +2 -2
  201. package/dist/commonjs/client/User/UserDefinition.js +1 -0
  202. package/dist/commonjs/client/User/UserDefinition.js.map +1 -1
  203. package/dist/commonjs/client/User/UserResponse.js +1 -0
  204. package/dist/commonjs/client/User/UserResponse.js.map +1 -1
  205. package/dist/commonjs/client/User/Users.js +3 -0
  206. package/dist/commonjs/client/User/Users.js.map +2 -2
  207. package/dist/commonjs/client/User/index.js +1 -0
  208. package/dist/commonjs/client/User/index.js.map +1 -1
  209. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js +4 -0
  210. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunction.js.map +2 -2
  211. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionDefinition.js +1 -0
  212. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionDefinition.js.map +1 -1
  213. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js +1 -0
  214. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctionResponse.js.map +1 -1
  215. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js +3 -0
  216. package/dist/commonjs/client/UserDefinedFunction/UserDefinedFunctions.js.map +2 -2
  217. package/dist/commonjs/client/UserDefinedFunction/index.js +1 -0
  218. package/dist/commonjs/client/UserDefinedFunction/index.js.map +1 -1
  219. package/dist/commonjs/client/index.js +1 -0
  220. package/dist/commonjs/client/index.js.map +1 -1
  221. package/dist/commonjs/common/constants.js +2 -1
  222. package/dist/commonjs/common/constants.js.map +2 -2
  223. package/dist/commonjs/common/helper.js +1 -0
  224. package/dist/commonjs/common/helper.js.map +1 -1
  225. package/dist/commonjs/common/index.js +1 -0
  226. package/dist/commonjs/common/index.js.map +1 -1
  227. package/dist/commonjs/common/logger.js +1 -0
  228. package/dist/commonjs/common/logger.js.map +1 -1
  229. package/dist/commonjs/common/partitionKeys.js +1 -0
  230. package/dist/commonjs/common/partitionKeys.js.map +1 -1
  231. package/dist/commonjs/common/platform.js +1 -0
  232. package/dist/commonjs/common/platform.js.map +1 -1
  233. package/dist/commonjs/common/statusCodes.js +1 -0
  234. package/dist/commonjs/common/statusCodes.js.map +1 -1
  235. package/dist/commonjs/common/uriFactory.js +1 -0
  236. package/dist/commonjs/common/uriFactory.js.map +1 -1
  237. package/dist/commonjs/diagnostics/CosmosDbDiagnosticLevel.js +1 -0
  238. package/dist/commonjs/diagnostics/CosmosDbDiagnosticLevel.js.map +1 -1
  239. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js +1 -0
  240. package/dist/commonjs/diagnostics/CosmosDiagnosticsContext.js.map +1 -1
  241. package/dist/commonjs/diagnostics/DiagnosticFormatter.js +1 -0
  242. package/dist/commonjs/diagnostics/DiagnosticFormatter.js.map +1 -1
  243. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js +1 -0
  244. package/dist/commonjs/diagnostics/DiagnosticNodeInternal.js.map +1 -1
  245. package/dist/commonjs/diagnostics/DiagnosticWriter.js +1 -0
  246. package/dist/commonjs/diagnostics/DiagnosticWriter.js.map +1 -1
  247. package/dist/commonjs/diagnostics/diagnosticLevelComparator.js +1 -0
  248. package/dist/commonjs/diagnostics/diagnosticLevelComparator.js.map +1 -1
  249. package/dist/commonjs/diagnostics/index.js +1 -0
  250. package/dist/commonjs/diagnostics/index.js.map +1 -1
  251. package/dist/commonjs/documents/ComputedProperty.js +1 -0
  252. package/dist/commonjs/documents/ComputedProperty.js.map +1 -1
  253. package/dist/commonjs/documents/ConnectionMode.js +1 -0
  254. package/dist/commonjs/documents/ConnectionMode.js.map +1 -1
  255. package/dist/commonjs/documents/ConnectionPolicy.js +1 -0
  256. package/dist/commonjs/documents/ConnectionPolicy.js.map +1 -1
  257. package/dist/commonjs/documents/ConsistencyLevel.js +1 -0
  258. package/dist/commonjs/documents/ConsistencyLevel.js.map +1 -1
  259. package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js +1 -0
  260. package/dist/commonjs/documents/ContinuationToken/CompositeQueryContinuationToken.js.map +1 -1
  261. package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js +1 -0
  262. package/dist/commonjs/documents/ContinuationToken/OrderByQueryContinuationToken.js.map +1 -1
  263. package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js +1 -0
  264. package/dist/commonjs/documents/ContinuationToken/PartitionRangeUpdate.js.map +1 -1
  265. package/dist/commonjs/documents/DataType.js +1 -0
  266. package/dist/commonjs/documents/DataType.js.map +1 -1
  267. package/dist/commonjs/documents/DatabaseAccount.js +1 -0
  268. package/dist/commonjs/documents/DatabaseAccount.js.map +1 -1
  269. package/dist/commonjs/documents/Document.js +1 -0
  270. package/dist/commonjs/documents/Document.js.map +1 -1
  271. package/dist/commonjs/documents/FullTextPolicy.js +1 -0
  272. package/dist/commonjs/documents/FullTextPolicy.js.map +1 -1
  273. package/dist/commonjs/documents/GeospatialType.js +1 -0
  274. package/dist/commonjs/documents/GeospatialType.js.map +1 -1
  275. package/dist/commonjs/documents/IndexKind.js +1 -0
  276. package/dist/commonjs/documents/IndexKind.js.map +1 -1
  277. package/dist/commonjs/documents/IndexingMode.js +1 -0
  278. package/dist/commonjs/documents/IndexingMode.js.map +1 -1
  279. package/dist/commonjs/documents/IndexingPolicy.js +1 -0
  280. package/dist/commonjs/documents/IndexingPolicy.js.map +1 -1
  281. package/dist/commonjs/documents/PartitionKey.js +1 -0
  282. package/dist/commonjs/documents/PartitionKey.js.map +1 -1
  283. package/dist/commonjs/documents/PartitionKeyDefinition.js +1 -0
  284. package/dist/commonjs/documents/PartitionKeyDefinition.js.map +1 -1
  285. package/dist/commonjs/documents/PartitionKeyDefinitionVersion.js +1 -0
  286. package/dist/commonjs/documents/PartitionKeyDefinitionVersion.js.map +1 -1
  287. package/dist/commonjs/documents/PartitionKeyInternal.js +1 -0
  288. package/dist/commonjs/documents/PartitionKeyInternal.js.map +1 -1
  289. package/dist/commonjs/documents/PartitionKeyKind.js +1 -0
  290. package/dist/commonjs/documents/PartitionKeyKind.js.map +1 -1
  291. package/dist/commonjs/documents/PermissionMode.js +1 -0
  292. package/dist/commonjs/documents/PermissionMode.js.map +1 -1
  293. package/dist/commonjs/documents/PriorityLevel.js +1 -0
  294. package/dist/commonjs/documents/PriorityLevel.js.map +1 -1
  295. package/dist/commonjs/documents/TriggerOperation.js +1 -0
  296. package/dist/commonjs/documents/TriggerOperation.js.map +1 -1
  297. package/dist/commonjs/documents/TriggerType.js +1 -0
  298. package/dist/commonjs/documents/TriggerType.js.map +1 -1
  299. package/dist/commonjs/documents/UserDefinedFunctionType.js +1 -0
  300. package/dist/commonjs/documents/UserDefinedFunctionType.js.map +1 -1
  301. package/dist/commonjs/documents/VectorEmbeddingPolicy.js +1 -0
  302. package/dist/commonjs/documents/VectorEmbeddingPolicy.js.map +1 -1
  303. package/dist/commonjs/documents/index.js +1 -0
  304. package/dist/commonjs/documents/index.js.map +1 -1
  305. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js +1 -0
  306. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/AeadAes256CbcHmacSha256Algorithm.js.map +1 -1
  307. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/index.js +1 -0
  308. package/dist/commonjs/encryption/AeadAes256CbcHmacSha256Algorithm/index.js.map +1 -1
  309. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js +1 -0
  310. package/dist/commonjs/encryption/Cache/ClientEncryptionKeyPropertiesCache.js.map +1 -1
  311. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js +1 -0
  312. package/dist/commonjs/encryption/Cache/EncryptionSettingsCache.js.map +1 -1
  313. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js +1 -0
  314. package/dist/commonjs/encryption/Cache/KeyEncryptionKeyCache.js.map +1 -1
  315. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js +2 -0
  316. package/dist/commonjs/encryption/Cache/ProtectedDataEncryptionKeyCache.js.map +2 -2
  317. package/dist/commonjs/encryption/ClientEncryptionIncludedPath.js +1 -0
  318. package/dist/commonjs/encryption/ClientEncryptionIncludedPath.js.map +1 -1
  319. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyProperties.js +1 -0
  320. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyProperties.js.map +1 -1
  321. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyRequest.js +1 -0
  322. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyRequest.js.map +1 -1
  323. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js +1 -0
  324. package/dist/commonjs/encryption/ClientEncryptionKey/ClientEncryptionKeyResponse.js.map +1 -1
  325. package/dist/commonjs/encryption/ClientEncryptionKey/index.js +1 -0
  326. package/dist/commonjs/encryption/ClientEncryptionKey/index.js.map +1 -1
  327. package/dist/commonjs/encryption/ClientEncryptionOptions.js +1 -0
  328. package/dist/commonjs/encryption/ClientEncryptionOptions.js.map +1 -1
  329. package/dist/commonjs/encryption/ClientEncryptionPolicy.js +1 -0
  330. package/dist/commonjs/encryption/ClientEncryptionPolicy.js.map +1 -1
  331. package/dist/commonjs/encryption/CosmosEncryptedNumber.js +1 -0
  332. package/dist/commonjs/encryption/CosmosEncryptedNumber.js.map +1 -1
  333. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js +1 -0
  334. package/dist/commonjs/encryption/EncryptionItemQueryIterator.js.map +1 -1
  335. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js +1 -0
  336. package/dist/commonjs/encryption/EncryptionKey/DataEncryptionKey.js.map +1 -1
  337. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js +1 -0
  338. package/dist/commonjs/encryption/EncryptionKey/ProtectedDataEncryptionKey.js.map +1 -1
  339. package/dist/commonjs/encryption/EncryptionKey/index.js +1 -0
  340. package/dist/commonjs/encryption/EncryptionKey/index.js.map +1 -1
  341. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js +1 -0
  342. package/dist/commonjs/encryption/EncryptionKeyResolver/AzureKeyVaultEncryptionKeyResolver.js.map +1 -1
  343. package/dist/commonjs/encryption/EncryptionKeyResolver/EncryptionKeyResolver.js +1 -0
  344. package/dist/commonjs/encryption/EncryptionKeyResolver/EncryptionKeyResolver.js.map +1 -1
  345. package/dist/commonjs/encryption/EncryptionKeyResolver/index.js +1 -0
  346. package/dist/commonjs/encryption/EncryptionKeyResolver/index.js.map +1 -1
  347. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js +3 -0
  348. package/dist/commonjs/encryption/EncryptionKeyStoreProvider.js.map +2 -2
  349. package/dist/commonjs/encryption/EncryptionKeyWrapMetadata.js +1 -0
  350. package/dist/commonjs/encryption/EncryptionKeyWrapMetadata.js.map +1 -1
  351. package/dist/commonjs/encryption/EncryptionManager.js +1 -0
  352. package/dist/commonjs/encryption/EncryptionManager.js.map +1 -1
  353. package/dist/commonjs/encryption/EncryptionProcessor.js +6 -0
  354. package/dist/commonjs/encryption/EncryptionProcessor.js.map +2 -2
  355. package/dist/commonjs/encryption/EncryptionQueryBuilder.js +1 -0
  356. package/dist/commonjs/encryption/EncryptionQueryBuilder.js.map +1 -1
  357. package/dist/commonjs/encryption/EncryptionSettingForProperty.js +1 -0
  358. package/dist/commonjs/encryption/EncryptionSettingForProperty.js.map +1 -1
  359. package/dist/commonjs/encryption/EncryptionSettings.js +1 -0
  360. package/dist/commonjs/encryption/EncryptionSettings.js.map +1 -1
  361. package/dist/commonjs/encryption/KeyEncryptionKey.js +1 -0
  362. package/dist/commonjs/encryption/KeyEncryptionKey.js.map +1 -1
  363. package/dist/commonjs/encryption/Serializers/BooleanSerializer.js +1 -0
  364. package/dist/commonjs/encryption/Serializers/BooleanSerializer.js.map +1 -1
  365. package/dist/commonjs/encryption/Serializers/FloatSerializer.js +1 -0
  366. package/dist/commonjs/encryption/Serializers/FloatSerializer.js.map +1 -1
  367. package/dist/commonjs/encryption/Serializers/NumberSerializer.js +1 -0
  368. package/dist/commonjs/encryption/Serializers/NumberSerializer.js.map +1 -1
  369. package/dist/commonjs/encryption/Serializers/Serializer.js +1 -0
  370. package/dist/commonjs/encryption/Serializers/Serializer.js.map +1 -1
  371. package/dist/commonjs/encryption/Serializers/StringSerializer.js +1 -0
  372. package/dist/commonjs/encryption/Serializers/StringSerializer.js.map +1 -1
  373. package/dist/commonjs/encryption/Serializers/index.js +1 -0
  374. package/dist/commonjs/encryption/Serializers/index.js.map +1 -1
  375. package/dist/commonjs/encryption/enums/EncryptionAlgorithm.js +1 -0
  376. package/dist/commonjs/encryption/enums/EncryptionAlgorithm.js.map +1 -1
  377. package/dist/commonjs/encryption/enums/EncryptionKeyResolverName.js +1 -0
  378. package/dist/commonjs/encryption/enums/EncryptionKeyResolverName.js.map +1 -1
  379. package/dist/commonjs/encryption/enums/EncryptionType.js +1 -0
  380. package/dist/commonjs/encryption/enums/EncryptionType.js.map +1 -1
  381. package/dist/commonjs/encryption/enums/KeyEncryptionAlgorithm.js +1 -0
  382. package/dist/commonjs/encryption/enums/KeyEncryptionAlgorithm.js.map +1 -1
  383. package/dist/commonjs/encryption/enums/TypeMarker.js +1 -0
  384. package/dist/commonjs/encryption/enums/TypeMarker.js.map +1 -1
  385. package/dist/commonjs/encryption/enums/index.js +1 -0
  386. package/dist/commonjs/encryption/enums/index.js.map +1 -1
  387. package/dist/commonjs/encryption/index.js +1 -0
  388. package/dist/commonjs/encryption/index.js.map +1 -1
  389. package/dist/commonjs/extractPartitionKey.js +1 -0
  390. package/dist/commonjs/extractPartitionKey.js.map +1 -1
  391. package/dist/commonjs/globalEndpointManager.js +2 -0
  392. package/dist/commonjs/globalEndpointManager.js.map +2 -2
  393. package/dist/commonjs/globalPartitionEndpointManager.js +2 -0
  394. package/dist/commonjs/globalPartitionEndpointManager.js.map +2 -2
  395. package/dist/commonjs/index.js +1 -0
  396. package/dist/commonjs/index.js.map +1 -1
  397. package/dist/commonjs/plugins/Plugin.js +1 -0
  398. package/dist/commonjs/plugins/Plugin.js.map +1 -1
  399. package/dist/commonjs/queryExecutionContext/Aggregators/Aggregator.js +1 -0
  400. package/dist/commonjs/queryExecutionContext/Aggregators/Aggregator.js.map +1 -1
  401. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js +1 -0
  402. package/dist/commonjs/queryExecutionContext/Aggregators/AverageAggregator.js.map +1 -1
  403. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js +1 -0
  404. package/dist/commonjs/queryExecutionContext/Aggregators/CountAggregator.js.map +1 -1
  405. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js +1 -0
  406. package/dist/commonjs/queryExecutionContext/Aggregators/GlobalStatisticsAggregator.js.map +1 -1
  407. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js +1 -0
  408. package/dist/commonjs/queryExecutionContext/Aggregators/MakeListAggregator.js.map +1 -1
  409. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js +1 -0
  410. package/dist/commonjs/queryExecutionContext/Aggregators/MakeSetAggregator.js.map +1 -1
  411. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js +1 -0
  412. package/dist/commonjs/queryExecutionContext/Aggregators/MaxAggregator.js.map +1 -1
  413. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js +1 -0
  414. package/dist/commonjs/queryExecutionContext/Aggregators/MinAggregator.js.map +1 -1
  415. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js +1 -0
  416. package/dist/commonjs/queryExecutionContext/Aggregators/StaticValueAggregator.js.map +1 -1
  417. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js +1 -0
  418. package/dist/commonjs/queryExecutionContext/Aggregators/SumAggregator.js.map +1 -1
  419. package/dist/commonjs/queryExecutionContext/Aggregators/index.js +1 -0
  420. package/dist/commonjs/queryExecutionContext/Aggregators/index.js.map +1 -1
  421. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js +1 -0
  422. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/BaseContinuationTokenManager.js.map +1 -1
  423. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js +1 -0
  424. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ContinuationTokenManagerFactory.js.map +1 -1
  425. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js +1 -0
  426. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/OrderByQueryContinuationTokenManager.js.map +1 -1
  427. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js +1 -0
  428. package/dist/commonjs/queryExecutionContext/ContinuationTokenManager/ParallelQueryContinuationTokenManager.js.map +1 -1
  429. package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js +1 -0
  430. package/dist/commonjs/queryExecutionContext/ContinuationTokenParser.js.map +1 -1
  431. package/dist/commonjs/queryExecutionContext/CosmosHeaders.js +1 -0
  432. package/dist/commonjs/queryExecutionContext/CosmosHeaders.js.map +1 -1
  433. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js +3 -0
  434. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByEndpointComponent.js.map +2 -2
  435. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js +3 -0
  436. package/dist/commonjs/queryExecutionContext/EndpointComponent/GroupByValueEndpointComponent.js.map +2 -2
  437. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js +5 -0
  438. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js.map +2 -2
  439. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js +6 -0
  440. package/dist/commonjs/queryExecutionContext/EndpointComponent/NonStreamingOrderByEndpointComponent.js.map +2 -2
  441. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js +4 -0
  442. package/dist/commonjs/queryExecutionContext/EndpointComponent/OffsetLimitEndpointComponent.js.map +2 -2
  443. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js +3 -0
  444. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderByEndpointComponent.js.map +2 -2
  445. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js +2 -0
  446. package/dist/commonjs/queryExecutionContext/EndpointComponent/OrderedDistinctEndpointComponent.js.map +2 -2
  447. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js +2 -0
  448. package/dist/commonjs/queryExecutionContext/EndpointComponent/UnorderedDistinctEndpointComponent.js.map +2 -2
  449. package/dist/commonjs/queryExecutionContext/EndpointComponent/emptyGroup.js +1 -0
  450. package/dist/commonjs/queryExecutionContext/EndpointComponent/emptyGroup.js.map +1 -1
  451. package/dist/commonjs/queryExecutionContext/ExecutionContext.js +1 -0
  452. package/dist/commonjs/queryExecutionContext/ExecutionContext.js.map +1 -1
  453. package/dist/commonjs/queryExecutionContext/FetchResult.js +1 -0
  454. package/dist/commonjs/queryExecutionContext/FetchResult.js.map +1 -1
  455. package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js +3 -0
  456. package/dist/commonjs/queryExecutionContext/LegacyFetchImplementation.js.map +2 -2
  457. package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js +1 -0
  458. package/dist/commonjs/queryExecutionContext/PartitionRangeManager.js.map +1 -1
  459. package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js +1 -0
  460. package/dist/commonjs/queryExecutionContext/PartitionRangeUtils.js.map +1 -1
  461. package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js +3 -0
  462. package/dist/commonjs/queryExecutionContext/QueryControlFetchImplementation.js.map +2 -2
  463. package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js +1 -0
  464. package/dist/commonjs/queryExecutionContext/QueryValidationHelper.js.map +1 -1
  465. package/dist/commonjs/queryExecutionContext/SqlQuerySpec.js +1 -0
  466. package/dist/commonjs/queryExecutionContext/SqlQuerySpec.js.map +1 -1
  467. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js +1 -0
  468. package/dist/commonjs/queryExecutionContext/defaultQueryExecutionContext.js.map +1 -1
  469. package/dist/commonjs/queryExecutionContext/documentProducer.js +2 -0
  470. package/dist/commonjs/queryExecutionContext/documentProducer.js.map +2 -2
  471. package/dist/commonjs/queryExecutionContext/headerUtils.js +1 -0
  472. package/dist/commonjs/queryExecutionContext/headerUtils.js.map +1 -1
  473. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js +8 -0
  474. package/dist/commonjs/queryExecutionContext/hybridQueryExecutionContext.js.map +2 -2
  475. package/dist/commonjs/queryExecutionContext/index.js +1 -0
  476. package/dist/commonjs/queryExecutionContext/index.js.map +1 -1
  477. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResponse.js +1 -0
  478. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResponse.js.map +1 -1
  479. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js +1 -0
  480. package/dist/commonjs/queryExecutionContext/nonStreamingOrderByResult.js.map +1 -1
  481. package/dist/commonjs/queryExecutionContext/orderByComparator.js +2 -0
  482. package/dist/commonjs/queryExecutionContext/orderByComparator.js.map +2 -2
  483. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js +2 -0
  484. package/dist/commonjs/queryExecutionContext/orderByDocumentProducerComparator.js.map +2 -2
  485. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js +1 -0
  486. package/dist/commonjs/queryExecutionContext/orderByQueryExecutionContext.js.map +1 -1
  487. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js +1 -0
  488. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContext.js.map +1 -1
  489. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js +10 -0
  490. package/dist/commonjs/queryExecutionContext/parallelQueryExecutionContextBase.js.map +2 -2
  491. package/dist/commonjs/queryExecutionContext/parallelQueryResult.js +1 -0
  492. package/dist/commonjs/queryExecutionContext/parallelQueryResult.js.map +1 -1
  493. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js +8 -0
  494. package/dist/commonjs/queryExecutionContext/pipelinedQueryExecutionContext.js.map +2 -2
  495. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js +1 -0
  496. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/FilterStrategy.js.map +1 -1
  497. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
  498. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
  499. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -4
  500. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +3 -3
  501. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js +1 -0
  502. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.js.map +1 -1
  503. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js +2 -0
  504. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.js.map +2 -2
  505. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js +1 -0
  506. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.js.map +1 -1
  507. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js +1 -0
  508. package/dist/commonjs/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.js.map +1 -1
  509. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js +2 -0
  510. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.js.map +2 -2
  511. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js +1 -0
  512. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.js.map +1 -1
  513. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js +1 -0
  514. package/dist/commonjs/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.js.map +1 -1
  515. package/dist/commonjs/queryExecutionContext/queryRangeMapping.js +1 -0
  516. package/dist/commonjs/queryExecutionContext/queryRangeMapping.js.map +1 -1
  517. package/dist/commonjs/queryIterator.js +7 -0
  518. package/dist/commonjs/queryIterator.js.map +2 -2
  519. package/dist/commonjs/queryMetrics/clientSideMetrics.js +2 -0
  520. package/dist/commonjs/queryMetrics/clientSideMetrics.js.map +2 -2
  521. package/dist/commonjs/queryMetrics/index.js +1 -0
  522. package/dist/commonjs/queryMetrics/index.js.map +1 -1
  523. package/dist/commonjs/queryMetrics/queryMetrics.js +14 -0
  524. package/dist/commonjs/queryMetrics/queryMetrics.js.map +2 -2
  525. package/dist/commonjs/queryMetrics/queryMetricsConstants.js +1 -0
  526. package/dist/commonjs/queryMetrics/queryMetricsConstants.js.map +1 -1
  527. package/dist/commonjs/queryMetrics/queryMetricsUtils.js +1 -0
  528. package/dist/commonjs/queryMetrics/queryMetricsUtils.js.map +1 -1
  529. package/dist/commonjs/queryMetrics/queryPreparationTime.js +5 -0
  530. package/dist/commonjs/queryMetrics/queryPreparationTime.js.map +2 -2
  531. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js +4 -0
  532. package/dist/commonjs/queryMetrics/runtimeExecutionTimes.js.map +2 -2
  533. package/dist/commonjs/queryMetrics/timeSpan.js +1 -0
  534. package/dist/commonjs/queryMetrics/timeSpan.js.map +1 -1
  535. package/dist/commonjs/request/ErrorResponse.js +1 -0
  536. package/dist/commonjs/request/ErrorResponse.js.map +1 -1
  537. package/dist/commonjs/request/FeedOptions.js +1 -0
  538. package/dist/commonjs/request/FeedOptions.js.map +1 -1
  539. package/dist/commonjs/request/FeedResponse.js +5 -0
  540. package/dist/commonjs/request/FeedResponse.js.map +2 -2
  541. package/dist/commonjs/request/RequestContext.js +1 -0
  542. package/dist/commonjs/request/RequestContext.js.map +1 -1
  543. package/dist/commonjs/request/RequestHandler.js +1 -0
  544. package/dist/commonjs/request/RequestHandler.js.map +1 -1
  545. package/dist/commonjs/request/RequestOptions.js +1 -0
  546. package/dist/commonjs/request/RequestOptions.js.map +1 -1
  547. package/dist/commonjs/request/ResourceResponse.js +6 -0
  548. package/dist/commonjs/request/ResourceResponse.js.map +2 -2
  549. package/dist/commonjs/request/Response.js +1 -0
  550. package/dist/commonjs/request/Response.js.map +1 -1
  551. package/dist/commonjs/request/SharedOptions.js +1 -0
  552. package/dist/commonjs/request/SharedOptions.js.map +1 -1
  553. package/dist/commonjs/request/StatusCodes.js +1 -0
  554. package/dist/commonjs/request/StatusCodes.js.map +1 -1
  555. package/dist/commonjs/request/TimeoutError.js +1 -0
  556. package/dist/commonjs/request/TimeoutError.js.map +1 -1
  557. package/dist/commonjs/request/defaultAgent.js +1 -0
  558. package/dist/commonjs/request/defaultAgent.js.map +1 -1
  559. package/dist/commonjs/request/globalStatistics.js +1 -0
  560. package/dist/commonjs/request/globalStatistics.js.map +1 -1
  561. package/dist/commonjs/request/hybridSearchQueryResult.js +1 -0
  562. package/dist/commonjs/request/hybridSearchQueryResult.js.map +1 -1
  563. package/dist/commonjs/request/index.js +1 -0
  564. package/dist/commonjs/request/index.js.map +1 -1
  565. package/dist/commonjs/request/request.js +1 -0
  566. package/dist/commonjs/request/request.js.map +1 -1
  567. package/dist/commonjs/retry/RetryContext.js +1 -0
  568. package/dist/commonjs/retry/RetryContext.js.map +1 -1
  569. package/dist/commonjs/retry/RetryPolicy.js +1 -0
  570. package/dist/commonjs/retry/RetryPolicy.js.map +1 -1
  571. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js +1 -0
  572. package/dist/commonjs/retry/bulkExecutionRetryPolicy.js.map +1 -1
  573. package/dist/commonjs/retry/defaultRetryPolicy.js +2 -0
  574. package/dist/commonjs/retry/defaultRetryPolicy.js.map +2 -2
  575. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js +5 -0
  576. package/dist/commonjs/retry/endpointDiscoveryRetryPolicy.js.map +2 -2
  577. package/dist/commonjs/retry/index.js +1 -0
  578. package/dist/commonjs/retry/index.js.map +1 -1
  579. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js +1 -0
  580. package/dist/commonjs/retry/resourceThrottleRetryPolicy.js.map +1 -1
  581. package/dist/commonjs/retry/retryOptions.js +1 -0
  582. package/dist/commonjs/retry/retryOptions.js.map +1 -1
  583. package/dist/commonjs/retry/retryUtility.js +1 -0
  584. package/dist/commonjs/retry/retryUtility.js.map +1 -1
  585. package/dist/commonjs/retry/sessionRetryPolicy.js +5 -0
  586. package/dist/commonjs/retry/sessionRetryPolicy.js.map +2 -2
  587. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js +8 -0
  588. package/dist/commonjs/retry/timeoutFailoverRetryPolicy.js.map +2 -2
  589. package/dist/commonjs/routing/CollectionRoutingMapFactory.js +1 -0
  590. package/dist/commonjs/routing/CollectionRoutingMapFactory.js.map +1 -1
  591. package/dist/commonjs/routing/QueryRange.js +1 -0
  592. package/dist/commonjs/routing/QueryRange.js.map +1 -1
  593. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js +1 -0
  594. package/dist/commonjs/routing/inMemoryCollectionRoutingMap.js.map +1 -1
  595. package/dist/commonjs/routing/index.js +1 -0
  596. package/dist/commonjs/routing/index.js.map +1 -1
  597. package/dist/commonjs/routing/partitionKeyRangeCache.js +2 -0
  598. package/dist/commonjs/routing/partitionKeyRangeCache.js.map +2 -2
  599. package/dist/commonjs/routing/smartRoutingMapProvider.js +1 -0
  600. package/dist/commonjs/routing/smartRoutingMapProvider.js.map +1 -1
  601. package/dist/commonjs/session/SessionContext.js +1 -0
  602. package/dist/commonjs/session/SessionContext.js.map +1 -1
  603. package/dist/commonjs/session/VectorSessionToken.js +5 -0
  604. package/dist/commonjs/session/VectorSessionToken.js.map +2 -2
  605. package/dist/commonjs/session/sessionContainer.js +3 -0
  606. package/dist/commonjs/session/sessionContainer.js.map +2 -2
  607. package/dist/commonjs/tsdoc-metadata.json +1 -1
  608. package/dist/commonjs/utils/SasToken.js +1 -0
  609. package/dist/commonjs/utils/SasToken.js.map +1 -1
  610. package/dist/commonjs/utils/atob.js +1 -0
  611. package/dist/commonjs/utils/atob.js.map +1 -1
  612. package/dist/commonjs/utils/batch.js +1 -0
  613. package/dist/commonjs/utils/batch.js.map +1 -1
  614. package/dist/commonjs/utils/cachedClient.js +1 -0
  615. package/dist/commonjs/utils/cachedClient.js.map +1 -1
  616. package/dist/commonjs/utils/checkURL.js +1 -0
  617. package/dist/commonjs/utils/checkURL.js.map +1 -1
  618. package/dist/commonjs/utils/diagnostics.js +1 -0
  619. package/dist/commonjs/utils/diagnostics.js.map +1 -1
  620. package/dist/commonjs/utils/digest.js +1 -0
  621. package/dist/commonjs/utils/digest.js.map +1 -1
  622. package/dist/commonjs/utils/encode.js +1 -0
  623. package/dist/commonjs/utils/encode.js.map +1 -1
  624. package/dist/commonjs/utils/envUtils.js +1 -0
  625. package/dist/commonjs/utils/envUtils.js.map +1 -1
  626. package/dist/commonjs/utils/fixedSizePriorityQueue.js +1 -0
  627. package/dist/commonjs/utils/fixedSizePriorityQueue.js.map +1 -1
  628. package/dist/commonjs/utils/globalCrypto.js +1 -0
  629. package/dist/commonjs/utils/globalCrypto.js.map +1 -1
  630. package/dist/commonjs/utils/hashObject.js +1 -0
  631. package/dist/commonjs/utils/hashObject.js.map +1 -1
  632. package/dist/commonjs/utils/hashing/encoding/number.js +1 -0
  633. package/dist/commonjs/utils/hashing/encoding/number.js.map +1 -1
  634. package/dist/commonjs/utils/hashing/encoding/prefix.js +1 -0
  635. package/dist/commonjs/utils/hashing/encoding/prefix.js.map +1 -1
  636. package/dist/commonjs/utils/hashing/encoding/string.js +1 -0
  637. package/dist/commonjs/utils/hashing/encoding/string.js.map +1 -1
  638. package/dist/commonjs/utils/hashing/hash.js +1 -0
  639. package/dist/commonjs/utils/hashing/hash.js.map +1 -1
  640. package/dist/commonjs/utils/hashing/multiHash.js +1 -0
  641. package/dist/commonjs/utils/hashing/multiHash.js.map +1 -1
  642. package/dist/commonjs/utils/hashing/murmurHash.js +1 -0
  643. package/dist/commonjs/utils/hashing/murmurHash.js.map +1 -1
  644. package/dist/commonjs/utils/hashing/v1.js +1 -0
  645. package/dist/commonjs/utils/hashing/v1.js.map +1 -1
  646. package/dist/commonjs/utils/hashing/v2.js +1 -0
  647. package/dist/commonjs/utils/hashing/v2.js.map +1 -1
  648. package/dist/commonjs/utils/headers.js +1 -0
  649. package/dist/commonjs/utils/headers.js.map +1 -1
  650. package/dist/commonjs/utils/hmac.js +1 -0
  651. package/dist/commonjs/utils/hmac.js.map +1 -1
  652. package/dist/commonjs/utils/nonStreamingOrderByMap.js +1 -0
  653. package/dist/commonjs/utils/nonStreamingOrderByMap.js.map +1 -1
  654. package/dist/commonjs/utils/offers.js +1 -0
  655. package/dist/commonjs/utils/offers.js.map +1 -1
  656. package/dist/commonjs/utils/patch.js +1 -0
  657. package/dist/commonjs/utils/patch.js.map +1 -1
  658. package/dist/commonjs/utils/strings.js +1 -0
  659. package/dist/commonjs/utils/strings.js.map +1 -1
  660. package/dist/commonjs/utils/supportedQueryFeaturesBuilder.js +1 -0
  661. package/dist/commonjs/utils/supportedQueryFeaturesBuilder.js.map +1 -1
  662. package/dist/commonjs/utils/time.js +1 -0
  663. package/dist/commonjs/utils/time.js.map +1 -1
  664. package/dist/commonjs/utils/tracing.js +1 -0
  665. package/dist/commonjs/utils/tracing.js.map +1 -1
  666. package/dist/commonjs/utils/typeChecks.js +1 -0
  667. package/dist/commonjs/utils/typeChecks.js.map +1 -1
  668. package/dist/commonjs/utils/types.js +1 -0
  669. package/dist/commonjs/utils/types.js.map +1 -1
  670. package/dist/commonjs/utils/uint8.js +1 -0
  671. package/dist/commonjs/utils/uint8.js.map +1 -1
  672. package/dist/esm/common/constants.js +1 -1
  673. package/dist/esm/common/constants.js.map +1 -1
  674. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
  675. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
  676. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -5
  677. package/dist/esm/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -1
  678. package/dist/react-native/common/constants.js +1 -1
  679. package/dist/react-native/common/constants.js.map +1 -1
  680. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts +2 -1
  681. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.d.ts.map +1 -1
  682. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js +6 -5
  683. package/dist/react-native/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.js.map +1 -1
  684. package/package.json +8 -8
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/pipelinedQueryExecutionContext.ts"],
3
+ "sources": ["../../../src/queryExecutionContext/pipelinedQueryExecutionContext.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { ClientContext } from \"../ClientContext.js\";\nimport type { Response, FeedOptions } from \"../request/index.js\";\nimport type { PartitionedQueryExecutionInfo, QueryInfo } from \"../request/ErrorResponse.js\";\nimport { ErrorResponse } from \"../request/ErrorResponse.js\";\nimport { OffsetLimitEndpointComponent } from \"./EndpointComponent/OffsetLimitEndpointComponent.js\";\nimport { OrderByEndpointComponent } from \"./EndpointComponent/OrderByEndpointComponent.js\";\nimport { OrderedDistinctEndpointComponent } from \"./EndpointComponent/OrderedDistinctEndpointComponent.js\";\nimport { UnorderedDistinctEndpointComponent } from \"./EndpointComponent/UnorderedDistinctEndpointComponent.js\";\nimport { GroupByEndpointComponent } from \"./EndpointComponent/GroupByEndpointComponent.js\";\nimport type { ExecutionContext } from \"./ExecutionContext.js\";\nimport { OrderByQueryExecutionContext } from \"./orderByQueryExecutionContext.js\";\nimport { ParallelQueryExecutionContext } from \"./parallelQueryExecutionContext.js\";\nimport { GroupByValueEndpointComponent } from \"./EndpointComponent/GroupByValueEndpointComponent.js\";\nimport type { SqlQuerySpec } from \"./SqlQuerySpec.js\";\nimport type { DiagnosticNodeInternal } from \"../diagnostics/DiagnosticNodeInternal.js\";\nimport { NonStreamingOrderByDistinctEndpointComponent } from \"./EndpointComponent/NonStreamingOrderByDistinctEndpointComponent.js\";\nimport { NonStreamingOrderByEndpointComponent } from \"./EndpointComponent/NonStreamingOrderByEndpointComponent.js\";\nimport {\n rejectContinuationTokenForUnsupportedQueries,\n QueryTypes,\n} from \"./QueryValidationHelper.js\";\nimport { parseContinuationTokenFields } from \"./ContinuationTokenParser.js\";\nimport { LegacyFetchImplementation } from \"./LegacyFetchImplementation.js\";\nimport { QueryControlFetchImplementation } from \"./QueryControlFetchImplementation.js\";\nimport { QueryExecution } from \"../common/constants.js\";\n\n/** @hidden */\nexport class PipelinedQueryExecutionContext implements ExecutionContext {\n private fetchBuffer: any[];\n private endpoint: ExecutionContext;\n private readonly fetchImplementation: LegacyFetchImplementation | QueryControlFetchImplementation;\n\n constructor(\n private clientContext: ClientContext,\n private collectionLink: string,\n private query: string | SqlQuerySpec,\n private options: FeedOptions,\n private partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n correlatedActivityId: string,\n private emitRawOrderByPayload: boolean = false,\n private supportsContinuationTokens: boolean = true,\n ) {\n // Validate that queryInfo is present in partitioned query execution info\n if (!partitionedQueryExecutionInfo.queryInfo) {\n throw new ErrorResponse(\n \"Query execution requires valid query plan information. \" +\n \"The partitioned query execution info is missing queryInfo. \" +\n \"This may indicate an invalid query or a problem with query planning.\",\n );\n }\n\n if (!this.options.maxItemCount) {\n this.options.maxItemCount = QueryExecution.DEFAULT_PAGE_SIZE;\n }\n const pageSize = this.options.maxItemCount;\n\n // Extract query information and characteristics\n const analyzedQueryInfo = this.analyzeQueryInfo(partitionedQueryExecutionInfo.queryInfo);\n const {\n sortOrders,\n nonStreamingOrderBy,\n isOrderByQuery,\n isGroupByQuery,\n isUnorderedDistinctQuery,\n querySupportsTokens,\n } = analyzedQueryInfo;\n\n // Reject continuation token usage for unsupported query types\n if (!querySupportsTokens) {\n rejectContinuationTokenForUnsupportedQueries(this.options.continuationToken, [\n QueryTypes.nonStreamingOrderBy(nonStreamingOrderBy),\n QueryTypes.groupBy(isGroupByQuery),\n QueryTypes.unorderedDistinct(isUnorderedDistinctQuery),\n ]);\n }\n\n // Parse continuation token fields once for reuse in pipeline construction\n const queryContinuationFields = this.options.continuationToken\n ? parseContinuationTokenFields(this.options.continuationToken)\n : undefined;\n\n // Pick between non-streaming vs streaming execution context\n this.endpoint = nonStreamingOrderBy\n ? this.createNonStreamingEndpoint(\n partitionedQueryExecutionInfo,\n sortOrders,\n correlatedActivityId,\n options,\n )\n : this.createStreamingEndpoint(\n partitionedQueryExecutionInfo,\n sortOrders,\n correlatedActivityId,\n isGroupByQuery,\n queryContinuationFields,\n );\n this.fetchBuffer = [];\n // Initialize the appropriate fetch implementation based on enableQueryControl\n if (this.options.enableQueryControl) {\n const querySupportsContinuationTokens =\n this.supportsContinuationTokens && querySupportsTokens;\n this.fetchImplementation = new QueryControlFetchImplementation(\n this.endpoint,\n pageSize,\n this.collectionLink,\n this.options.continuationToken,\n isOrderByQuery,\n querySupportsContinuationTokens,\n );\n } else {\n this.fetchImplementation = new LegacyFetchImplementation(this.endpoint, pageSize);\n }\n }\n\n public hasMoreResults(): boolean {\n return this.fetchBuffer.length !== 0 || this.endpoint.hasMoreResults();\n }\n\n public async fetchMore(diagnosticNode: DiagnosticNodeInternal): Promise<Response<any>> {\n return this.fetchImplementation.fetchMore(diagnosticNode, this.fetchBuffer);\n }\n\n /**\n * Creates a non-streaming endpoint for vector search and similar queries that require buffering\n */\n private createNonStreamingEndpoint(\n partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n sortOrders: any[],\n correlatedActivityId: string,\n options: FeedOptions,\n ): ExecutionContext {\n const queryInfo = partitionedQueryExecutionInfo.queryInfo!; // Safe to use ! after validation in constructor\n\n if (!options.allowUnboundedNonStreamingQueries) {\n this.checkQueryConstraints(queryInfo);\n }\n\n const vectorSearchBufferSize = this.calculateVectorSearchBufferSize(queryInfo, options);\n\n this.validateVectorSearchBufferSize(vectorSearchBufferSize, options);\n\n const baseContext = new ParallelQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n this.query,\n this.options,\n this.partitionedQueryExecutionInfo,\n correlatedActivityId,\n );\n\n return this.wrapWithNonStreamingComponent(\n baseContext,\n queryInfo,\n sortOrders,\n vectorSearchBufferSize,\n );\n }\n\n /**\n * Creates a streaming endpoint with proper pipeline components\n */\n private createStreamingEndpoint(\n partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n sortOrders: any[],\n correlatedActivityId: string,\n isGroupByQuery: boolean,\n queryContinuationFields: any,\n ): ExecutionContext {\n const queryInfo = partitionedQueryExecutionInfo.queryInfo!; // Safe to use ! after validation in constructor\n\n // Create base execution context\n let endpoint = this.createBaseExecutionContext(\n partitionedQueryExecutionInfo,\n sortOrders,\n correlatedActivityId,\n );\n\n // Apply pipeline transformations\n endpoint = this.applyGroupByComponents(endpoint, queryInfo, isGroupByQuery);\n endpoint = this.applyDistinctComponents(endpoint, queryInfo, queryContinuationFields);\n endpoint = this.applyLimitComponents(endpoint, queryInfo, queryContinuationFields);\n\n return endpoint;\n }\n\n /**\n * Creates the base execution context (OrderBy or Parallel)\n */\n private createBaseExecutionContext(\n partitionedQueryExecutionInfo: PartitionedQueryExecutionInfo,\n sortOrders: any[],\n correlatedActivityId: string,\n ): ExecutionContext {\n if (Array.isArray(sortOrders) && sortOrders.length > 0) {\n // OrderBy queries need special wrapping for payload structure\n return new OrderByEndpointComponent(\n new OrderByQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n this.query,\n this.options,\n partitionedQueryExecutionInfo,\n correlatedActivityId,\n ),\n this.emitRawOrderByPayload,\n );\n }\n\n // Parallel queries\n return new ParallelQueryExecutionContext(\n this.clientContext,\n this.collectionLink,\n this.query,\n this.options,\n partitionedQueryExecutionInfo,\n correlatedActivityId,\n );\n }\n\n /**\n * Wraps base context with appropriate non-streaming component\n */\n private wrapWithNonStreamingComponent(\n baseContext: ExecutionContext,\n queryInfo: QueryInfo,\n sortOrders: any[],\n vectorSearchBufferSize: number,\n ): ExecutionContext {\n const distinctType = queryInfo.distinctType;\n\n if (distinctType === \"None\") {\n return new NonStreamingOrderByEndpointComponent(\n baseContext,\n sortOrders,\n vectorSearchBufferSize,\n queryInfo.offset,\n this.emitRawOrderByPayload,\n );\n }\n\n return new NonStreamingOrderByDistinctEndpointComponent(\n baseContext,\n queryInfo,\n vectorSearchBufferSize,\n this.emitRawOrderByPayload,\n );\n }\n\n /**\n * Applies GROUP BY components to the pipeline if needed\n */\n private applyGroupByComponents(\n endpoint: ExecutionContext,\n queryInfo: QueryInfo,\n isGroupByQuery: boolean,\n ): ExecutionContext {\n if (!isGroupByQuery) {\n return endpoint;\n }\n\n return queryInfo.hasSelectValue\n ? new GroupByValueEndpointComponent(endpoint, queryInfo)\n : new GroupByEndpointComponent(endpoint, queryInfo);\n }\n\n /**\n * Applies DISTINCT components to the pipeline if needed\n */\n private applyDistinctComponents(\n endpoint: ExecutionContext,\n queryInfo: QueryInfo,\n queryContinuationFields: any,\n ): ExecutionContext {\n const distinctType = queryInfo.distinctType;\n\n if (distinctType === \"Ordered\") {\n const lastHash = queryContinuationFields?.hashedLastResult;\n return new OrderedDistinctEndpointComponent(endpoint, lastHash);\n }\n\n if (distinctType === \"Unordered\") {\n return new UnorderedDistinctEndpointComponent(endpoint);\n }\n\n return endpoint;\n }\n\n /**\n * Applies TOP and OFFSET+LIMIT components to the pipeline if needed\n */\n private applyLimitComponents(\n endpoint: ExecutionContext,\n queryInfo: QueryInfo,\n queryContinuationFields: any,\n ): ExecutionContext {\n // Apply TOP component (TOP N is effectively OFFSET 0 LIMIT N)\n let top = queryInfo.top;\n if (typeof top === \"number\") {\n if (queryContinuationFields?.limit !== undefined) {\n top = queryContinuationFields.limit;\n }\n endpoint = new OffsetLimitEndpointComponent(endpoint, 0, top);\n }\n\n // Apply OFFSET+LIMIT component\n let limit = queryInfo.limit;\n let offset = queryInfo.offset;\n\n if (queryContinuationFields) {\n if (queryContinuationFields.limit !== undefined) {\n limit = queryContinuationFields.limit;\n }\n if (queryContinuationFields.offset !== undefined) {\n offset = queryContinuationFields.offset;\n }\n }\n\n if (typeof limit === \"number\" && typeof offset === \"number\") {\n endpoint = new OffsetLimitEndpointComponent(endpoint, offset, limit);\n }\n\n return endpoint;\n }\n\n /**\n * Validates vector search buffer size constraints\n */\n private validateVectorSearchBufferSize(\n vectorSearchBufferSize: number,\n options: FeedOptions,\n ): void {\n const maxBufferSize = options[\"vectorSearchBufferSize\"]\n ? options[\"vectorSearchBufferSize\"]\n : QueryExecution.DEFAULT_MAX_VECTOR_SEARCH_BUFFER_SIZE;\n\n if (vectorSearchBufferSize > maxBufferSize) {\n throw new ErrorResponse(\n `Executing a vector search query with TOP or OFFSET + LIMIT value ${vectorSearchBufferSize} larger than the vectorSearchBufferSize ${maxBufferSize} ` +\n `is not allowed`,\n );\n }\n }\n\n private calculateVectorSearchBufferSize(queryInfo: QueryInfo, options: FeedOptions): number {\n if (queryInfo.top === 0 || queryInfo.limit === 0) return 0;\n return queryInfo.top\n ? queryInfo.top\n : queryInfo.limit\n ? queryInfo.offset + queryInfo.limit\n : options[\"vectorSearchBufferSize\"] && options[\"vectorSearchBufferSize\"] > 0\n ? options[\"vectorSearchBufferSize\"]\n : QueryExecution.DEFAULT_MAX_VECTOR_SEARCH_BUFFER_SIZE;\n }\n\n private checkQueryConstraints(queryInfo: QueryInfo): void {\n const hasTop = queryInfo.top || queryInfo.top === 0;\n const hasLimit = queryInfo.limit || queryInfo.limit === 0;\n if (!hasTop && !hasLimit) {\n throw new ErrorResponse(\n \"Executing a non-streaming search query without TOP or LIMIT can consume a large number of RUs \" +\n \"very fast and have long runtimes. Please ensure you are using one of the above two filters \" +\n \"with your vector search query.\",\n );\n }\n return;\n }\n\n /**\n * Analyzes query information and extracts key characteristics for query execution planning\n */\n private analyzeQueryInfo(queryInfo: QueryInfo) {\n const sortOrders = queryInfo.orderBy;\n const nonStreamingOrderBy = queryInfo.hasNonStreamingOrderBy;\n const isOrderByQuery = Array.isArray(sortOrders) && sortOrders.length > 0;\n\n // Check if this is a GROUP BY query\n const isGroupByQuery =\n Object.keys(queryInfo.groupByAliasToAggregateType || {}).length > 0 ||\n (queryInfo.aggregates?.length || 0) > 0 ||\n (queryInfo.groupByExpressions?.length || 0) > 0;\n\n // Check if this is an unordered DISTINCT query\n const isUnorderedDistinctQuery = queryInfo.distinctType === \"Unordered\";\n\n // Determine if this query type supports continuation tokens\n const querySupportsTokens =\n !isUnorderedDistinctQuery && !isGroupByQuery && !nonStreamingOrderBy;\n\n return {\n sortOrders,\n nonStreamingOrderBy,\n isOrderByQuery,\n isGroupByQuery,\n isUnorderedDistinctQuery,\n querySupportsTokens,\n };\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -13,3 +13,4 @@ var __copyProps = (to, from, except, desc) => {
13
13
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
14
  var FilterStrategy_exports = {};
15
15
  module.exports = __toCommonJS(FilterStrategy_exports);
16
+ //# sourceMappingURL=FilterStrategy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryFilteringStrategy/FilterStrategy.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryFilteringStrategy/FilterStrategy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Represents the context for filtering, including the values from the continuation token.\n */\nexport interface FilterContext {\n /**\n * The _rid of the document from which the continuation token was created.\n */\n rid: string;\n /**\n * The number of documents with the same _rid to skip, used in JOIN queries.\n */\n skipCount: number;\n /**\n * The order by item values from the last document of the previous page.\n */\n orderByItems: any[];\n /**\n * The sort orders for the ORDER BY fields (\"Ascending\" or \"Descending\").\n */\n sortOrders: any[];\n /**\n * Query execution information from x-ms-cosmos-query-execution-info header.\n */\n queryExecutionInfo?: {\n reverseRidEnabled: boolean;\n reverseIndexScan: boolean;\n };\n}\n\n/**\n * Defines the interface for a post-fetch query filter.\n */\nexport interface FilterStrategy {\n /**\n * Applies the filtering logic to a set of documents.\n * @param documents - The documents to filter.\n * @returns The filtered set of documents.\n */\n applyFilter(documents: any[]): any[];\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
@@ -33,7 +33,8 @@ export declare class OrderByQueryRangeStrategy implements TargetPartitionRangeSt
33
33
  */
34
34
  private createComparisonCondition;
35
35
  /**
36
- * Formats a value for use in SQL condition
36
+ * Formats a value for use in SQL condition.
37
+ * We escape single quotes as \\u0027 to avoid ambiguity with \\\\ followed by '
37
38
  */
38
39
  private formatValueForSQL;
39
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"OrderByQueryRangeStrategy.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AAE5F;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,4BAA4B;IAC5E,eAAe,IAAI,MAAM;IAIzB,qBAAqB,CACnB,YAAY,EAAE,iBAAiB,EAAE,EACjC,kBAAkB,CAAC,EAAE,mCAAmC,EAAE,EAC1D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,0BAA0B;IAkG7B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAkFlC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyDxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkCjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;CAK5B"}
1
+ {"version":3,"file":"OrderByQueryRangeStrategy.d.ts","sourceRoot":"","sources":["../../../../src/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AAE5F;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,4BAA4B;IAC5E,eAAe,IAAI,MAAM;IAIzB,qBAAqB,CACnB,YAAY,EAAE,iBAAiB,EAAE,EACjC,kBAAkB,CAAC,EAAE,mCAAmC,EAAE,EAC1D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,0BAA0B;IAkG7B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAkFlC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyDxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkCjC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;CAK5B"}
@@ -229,7 +229,8 @@ class OrderByQueryRangeStrategy {
229
229
  return condition;
230
230
  }
231
231
  /**
232
- * Formats a value for use in SQL condition
232
+ * Formats a value for use in SQL condition.
233
+ * We escape single quotes as \\u0027 to avoid ambiguity with \\\\ followed by '
233
234
  */
234
235
  formatValueForSQL(value) {
235
236
  if (value === null || value === void 0) {
@@ -238,7 +239,7 @@ class OrderByQueryRangeStrategy {
238
239
  const valueType = typeof value;
239
240
  switch (valueType) {
240
241
  case "string":
241
- return `'${value.toString().replace(/'/g, "''")}'`;
242
+ return `'${value.toString().replace(/\\/g, "\\\\").replace(/'/g, "\\u0027")}'`;
242
243
  case "number":
243
244
  case "bigint":
244
245
  return value.toString();
@@ -246,9 +247,9 @@ class OrderByQueryRangeStrategy {
246
247
  return value ? "true" : "false";
247
248
  default:
248
249
  if (typeof value === "object") {
249
- return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
250
+ return `'${JSON.stringify(value).replace(/\\/g, "\\\\").replace(/'/g, "\\u0027")}'`;
250
251
  }
251
- return `'${value.toString().replace(/'/g, "''")}'`;
252
+ return `'${value.toString().replace(/\\/g, "\\\\").replace(/'/g, "\\u0027")}'`;
252
253
  }
253
254
  }
254
255
  /**
@@ -274,3 +275,4 @@ class OrderByQueryRangeStrategy {
274
275
  0 && (module.exports = {
275
276
  OrderByQueryRangeStrategy
276
277
  });
278
+ //# sourceMappingURL=OrderByQueryRangeStrategy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.ts"],
4
- "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in ORDER BY query execution context\n * Supports resuming from continuation tokens with proper range-token pair management\n * @hidden\n */\nexport class OrderByQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"OrderByQuery\";\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n queryInfo?: Record<string, unknown>,\n ): PartitionRangeFilterResult {\n if (\n !targetRanges ||\n targetRanges.length === 0 ||\n !continuationRanges ||\n continuationRanges.length === 0\n ) {\n return {\n rangeTokenPairs: [],\n };\n }\n\n if (\n !queryInfo?.orderByItems ||\n !Array.isArray(queryInfo.orderByItems) ||\n queryInfo.orderByItems.length === 0\n ) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. orderByItems is required for ORDER BY queries.\",\n );\n }\n\n const result: PartitionRangeFilterResult = {\n rangeTokenPairs: [],\n };\n let filteredRanges: PartitionKeyRange[] = [];\n let resumeRangeFound = false;\n\n if (continuationRanges && continuationRanges.length > 0) {\n resumeRangeFound = true;\n // Find the range to resume from based on the composite token\n const targetRangeMapping = continuationRanges[continuationRanges.length - 1].range;\n // It is assumed that range mapping array is going to contain only range\n const targetRange: PartitionKeyRange = targetRangeMapping;\n\n const targetContinuationToken =\n continuationRanges[continuationRanges.length - 1].continuationToken;\n\n const leftRanges = targetRanges.filter((mapping) =>\n this.isRangeBeforeAnother(mapping.maxExclusive, targetRangeMapping.minInclusive),\n );\n\n const orderByItems = queryInfo.orderByItems;\n\n // Create filtering condition for left ranges based on ORDER BY items and sort orders\n const leftFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"left\");\n\n const rightRanges = targetRanges.filter((mapping) =>\n this.isRangeAfterAnother(mapping.minInclusive, targetRangeMapping.maxExclusive),\n );\n\n // Create filtering condition for right ranges based on ORDER BY items and sort orders\n const rightFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"right\");\n\n // Apply filtering logic for left ranges\n if (leftRanges.length > 0) {\n leftRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: leftFilter,\n });\n });\n }\n\n result.rangeTokenPairs.push({\n range: targetRange,\n continuationToken: targetContinuationToken,\n filteringCondition: rightFilter,\n });\n\n // Apply filtering logic for right ranges\n if (rightRanges.length > 0) {\n rightRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: rightFilter,\n });\n });\n }\n }\n\n // If we couldn't find a specific resume point, include all ranges\n // This can happen with certain types of ORDER BY continuation tokens\n if (!resumeRangeFound) {\n filteredRanges = [...targetRanges];\n filteredRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: undefined,\n });\n });\n }\n return result;\n }\n\n /**\n * Creates a filter condition for ranges based on ORDER BY items and sort orders\n * This filter ensures that ranges only return documents based on their position relative to the continuation point\n * @param orderByItems - Array of order by items from the continuation token\n * @param queryInfo - Query information containing sort orders and other metadata\n * @param rangePosition - Whether this is for \"left\" or \"right\" ranges relative to continuation point\n * @returns SQL filter condition string for the specified range position\n */\n private createRangeFilterCondition(\n orderByItems: any[],\n queryInfo: Record<string, unknown> | undefined,\n rangePosition: \"left\" | \"right\",\n ): string {\n // Extract sort orders from query info\n let sortOrders: string[];\n try {\n sortOrders = this.extractSortOrders(queryInfo);\n } catch (error) {\n // If we can't extract sort orders, we cannot create reliable filter conditions\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY sort direction configuration ` +\n `in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n\n // Extract orderByExpressions from nested structure\n let orderByExpressions: any[] | undefined;\n if (\n queryInfo &&\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n\n if (!orderByExpressions || !Array.isArray(orderByExpressions)) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration \" +\n \"in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. \" +\n \"Please retry the query without a continuation token.\",\n );\n }\n\n const filterConditions: string[] = [];\n\n // Process each order by item to create filter conditions\n for (let i = 0; i < orderByItems.length && i < sortOrders.length; i++) {\n const orderByItem = orderByItems[i];\n const sortOrder = sortOrders[i];\n\n if (!orderByItem || orderByItem.item === undefined) {\n continue;\n }\n\n try {\n // Determine the field path from ORDER BY expressions in query plan\n const fieldPath = this.extractFieldPath(queryInfo, i);\n\n // Create the comparison condition based on sort order and range position\n const condition = this.createComparisonCondition(\n fieldPath,\n orderByItem.item,\n sortOrder,\n rangePosition,\n );\n\n if (condition) {\n filterConditions.push(condition);\n }\n } catch (error) {\n // If we can't extract field path for ORDER BY expressions, we cannot safely resume from continuation token\n // This would lead to incorrect query results, so we must fail the entire request\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration ` +\n `in the query plan is invalid or incompatible with the continuation token format. ` +\n `This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n }\n\n // Combine multiple conditions with AND for multi-field ORDER BY\n const combinedFilter = filterConditions.length > 0 ? `(${filterConditions.join(\" AND \")})` : \"\";\n return combinedFilter;\n }\n\n /**\n * Extracts sort orders from query info\n * @throws Error if sort order information is missing or invalid\n */\n private extractSortOrders(queryInfo?: Record<string, unknown>): string[] {\n if (!queryInfo) {\n throw new Error(\"Query information is required to determine ORDER BY sort directions\");\n }\n\n // Extract orderBy from the nested structure: queryInfo.queryInfo.queryInfo.orderBy\n let orderBy: any[] | undefined;\n\n if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n typeof (queryInfo.queryInfo as any).queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo.orderBy &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderBy)\n ) {\n orderBy = (queryInfo.queryInfo as any).queryInfo.orderBy;\n }\n\n if (!orderBy) {\n throw new Error(\"ORDER BY sort direction information is missing from query plan\");\n }\n\n return orderBy.map((order, index) => {\n if (typeof order === \"string\") {\n return order;\n }\n // Handle object format if needed\n if (order && typeof order === \"object\") {\n const sortOrder =\n (order as any).direction || (order as any).order || (order as any).sortOrder;\n if (sortOrder) {\n return sortOrder;\n }\n }\n throw new Error(\n `ORDER BY sort direction at position ${index + 1} has an invalid format in the query plan`,\n );\n });\n }\n\n /**\n * Extracts field path from ORDER BY expressions in query plan\n * @throws Error if orderByExpressions are not found or index is out of bounds or expression format is invalid\n */\n private extractFieldPath(queryInfo: Record<string, unknown> | undefined, index: number): string {\n // Try multiple paths to find orderByExpressions due to nested structure\n let orderByExpressions: any[] | undefined;\n\n if (queryInfo) {\n // Direct path\n if (queryInfo.orderByExpressions && Array.isArray(queryInfo.orderByExpressions)) {\n orderByExpressions = queryInfo.orderByExpressions;\n }\n // Nested path: queryInfo.queryInfo.queryInfo.orderByExpressions\n else if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n }\n\n if (!orderByExpressions) {\n throw new Error(\"ORDER BY field information is missing from query plan\");\n }\n\n if (index >= orderByExpressions.length) {\n throw new Error(\n `ORDER BY field configuration mismatch: expected at least ${index + 1} fields but found ${orderByExpressions.length}`,\n );\n }\n\n const expression = orderByExpressions[index];\n\n // Handle different formats of ORDER BY expressions\n if (typeof expression === \"string\") {\n // Simple string expression like \"c.id\" or \"_FullTextScore(...)\"\n return expression;\n }\n\n if (expression && typeof expression === \"object\") {\n // Object format like { expression: \"c.id\", type: \"PropertyRef\" }\n if (expression.expression) {\n return expression.expression;\n }\n if (expression.path) {\n return expression.path.replace(/^\\//, \"\"); // Remove leading slash\n }\n if (expression.field) {\n return expression.field;\n }\n }\n\n throw new Error(\n `ORDER BY field at position ${index + 1} has an unrecognized format in the query plan`,\n );\n }\n\n /**\n * Creates a comparison condition based on the field, value, sort order, and range position\n */\n private createComparisonCondition(\n fieldPath: string,\n value: any,\n sortOrder: string,\n rangePosition: \"left\" | \"right\",\n ): string {\n const isDescending =\n sortOrder.toLowerCase() === \"descending\" || sortOrder.toLowerCase() === \"desc\";\n\n // For left ranges (ranges that come before the target):\n // - In ascending order: field > value (left ranges should seek for larger values)\n // - In descending order: field < value (left ranges should seek for smaller values)\n\n // For right ranges (ranges that come after the target):\n // - In ascending order: field >= value (right ranges have larger values)\n // - In descending order: field <= value (right ranges have smaller values in desc order)\n\n let operator: string;\n\n if (rangePosition === \"left\") {\n operator = isDescending ? \"<\" : \">\";\n } else {\n // right\n operator = isDescending ? \"<=\" : \">=\";\n }\n\n // Format the value based on its type\n const formattedValue = this.formatValueForSQL(value);\n\n // Create the condition with proper field reference\n const condition = `${fieldPath} ${operator} ${formattedValue}`;\n return condition;\n }\n\n /**\n * Formats a value for use in SQL condition\n */\n private formatValueForSQL(value: any): string {\n if (value === null || value === undefined) {\n return \"null\";\n }\n\n const valueType = typeof value;\n\n switch (valueType) {\n case \"string\":\n // Escape single quotes and wrap in quotes\n return `'${value.toString().replace(/'/g, \"''\")}'`;\n case \"number\":\n case \"bigint\":\n return value.toString();\n case \"boolean\":\n return value ? \"true\" : \"false\";\n default:\n // For objects and arrays, convert to JSON string\n if (typeof value === \"object\") {\n return `'${JSON.stringify(value).replace(/'/g, \"''\")}'`;\n }\n return `'${value.toString().replace(/'/g, \"''\")}'`;\n }\n }\n\n /**\n * Compares partition key range boundaries with proper handling for inclusive/exclusive semantics\n * @param boundary1 - First boundary to compare\n * @param boundary2 - Second boundary to compare\n * @returns negative if boundary1 is less than boundary2, positive if boundary1 is greater than boundary2, 0 if equal\n */\n private comparePartitionKeyBoundaries(boundary1: string, boundary2: string): number {\n // Handle empty string cases (empty string represents the minimum boundary)\n if (boundary1 === \"\" && boundary2 === \"\") return 0;\n if (boundary1 === \"\") return -1; // \"\" < \"AA\"\n if (boundary2 === \"\") return 1; // \"AA\" > \"\"\n\n // Use standard lexicographic comparison for non-empty boundaries\n return boundary1.localeCompare(boundary2);\n }\n\n private isRangeBeforeAnother(range1MaxExclusive: string, range2MinInclusive: string): boolean {\n // Since range1.maxExclusive is NOT part of range1, and range2.minInclusive IS part of range2,\n // range1 comes before range2 if range1.maxExclusive <= range2.minInclusive\n return this.comparePartitionKeyBoundaries(range1MaxExclusive, range2MinInclusive) <= 0;\n }\n\n private isRangeAfterAnother(range1MinInclusive: string, range2MaxExclusive: string): boolean {\n // Since range2.maxExclusive is NOT part of range2, and range1.minInclusive IS part of range1,\n // range1 comes after range2 if range1.minInclusive >= range2.maxExclusive\n return this.comparePartitionKeyBoundaries(range1MinInclusive, range2MaxExclusive) >= 0;\n }\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../../src/queryExecutionContext/queryFilteringStrategy/OrderByQueryRangeStrategy.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in ORDER BY query execution context\n * Supports resuming from continuation tokens with proper range-token pair management\n * @hidden\n */\nexport class OrderByQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"OrderByQuery\";\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n queryInfo?: Record<string, unknown>,\n ): PartitionRangeFilterResult {\n if (\n !targetRanges ||\n targetRanges.length === 0 ||\n !continuationRanges ||\n continuationRanges.length === 0\n ) {\n return {\n rangeTokenPairs: [],\n };\n }\n\n if (\n !queryInfo?.orderByItems ||\n !Array.isArray(queryInfo.orderByItems) ||\n queryInfo.orderByItems.length === 0\n ) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. orderByItems is required for ORDER BY queries.\",\n );\n }\n\n const result: PartitionRangeFilterResult = {\n rangeTokenPairs: [],\n };\n let filteredRanges: PartitionKeyRange[] = [];\n let resumeRangeFound = false;\n\n if (continuationRanges && continuationRanges.length > 0) {\n resumeRangeFound = true;\n // Find the range to resume from based on the composite token\n const targetRangeMapping = continuationRanges[continuationRanges.length - 1].range;\n // It is assumed that range mapping array is going to contain only range\n const targetRange: PartitionKeyRange = targetRangeMapping;\n\n const targetContinuationToken =\n continuationRanges[continuationRanges.length - 1].continuationToken;\n\n const leftRanges = targetRanges.filter((mapping) =>\n this.isRangeBeforeAnother(mapping.maxExclusive, targetRangeMapping.minInclusive),\n );\n\n const orderByItems = queryInfo.orderByItems;\n\n // Create filtering condition for left ranges based on ORDER BY items and sort orders\n const leftFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"left\");\n\n const rightRanges = targetRanges.filter((mapping) =>\n this.isRangeAfterAnother(mapping.minInclusive, targetRangeMapping.maxExclusive),\n );\n\n // Create filtering condition for right ranges based on ORDER BY items and sort orders\n const rightFilter = this.createRangeFilterCondition(orderByItems, queryInfo, \"right\");\n\n // Apply filtering logic for left ranges\n if (leftRanges.length > 0) {\n leftRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: leftFilter,\n });\n });\n }\n\n result.rangeTokenPairs.push({\n range: targetRange,\n continuationToken: targetContinuationToken,\n filteringCondition: rightFilter,\n });\n\n // Apply filtering logic for right ranges\n if (rightRanges.length > 0) {\n rightRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: rightFilter,\n });\n });\n }\n }\n\n // If we couldn't find a specific resume point, include all ranges\n // This can happen with certain types of ORDER BY continuation tokens\n if (!resumeRangeFound) {\n filteredRanges = [...targetRanges];\n filteredRanges.forEach((range) => {\n result.rangeTokenPairs.push({\n range: range,\n continuationToken: undefined,\n filteringCondition: undefined,\n });\n });\n }\n return result;\n }\n\n /**\n * Creates a filter condition for ranges based on ORDER BY items and sort orders\n * This filter ensures that ranges only return documents based on their position relative to the continuation point\n * @param orderByItems - Array of order by items from the continuation token\n * @param queryInfo - Query information containing sort orders and other metadata\n * @param rangePosition - Whether this is for \"left\" or \"right\" ranges relative to continuation point\n * @returns SQL filter condition string for the specified range position\n */\n private createRangeFilterCondition(\n orderByItems: any[],\n queryInfo: Record<string, unknown> | undefined,\n rangePosition: \"left\" | \"right\",\n ): string {\n // Extract sort orders from query info\n let sortOrders: string[];\n try {\n sortOrders = this.extractSortOrders(queryInfo);\n } catch (error) {\n // If we can't extract sort orders, we cannot create reliable filter conditions\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY sort direction configuration ` +\n `in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n\n // Extract orderByExpressions from nested structure\n let orderByExpressions: any[] | undefined;\n if (\n queryInfo &&\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n\n if (!orderByExpressions || !Array.isArray(orderByExpressions)) {\n throw new Error(\n \"Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration \" +\n \"in the query plan is invalid or missing. This may indicate a client version mismatch or corrupted continuation token. \" +\n \"Please retry the query without a continuation token.\",\n );\n }\n\n const filterConditions: string[] = [];\n\n // Process each order by item to create filter conditions\n for (let i = 0; i < orderByItems.length && i < sortOrders.length; i++) {\n const orderByItem = orderByItems[i];\n const sortOrder = sortOrders[i];\n\n if (!orderByItem || orderByItem.item === undefined) {\n continue;\n }\n\n try {\n // Determine the field path from ORDER BY expressions in query plan\n const fieldPath = this.extractFieldPath(queryInfo, i);\n\n // Create the comparison condition based on sort order and range position\n const condition = this.createComparisonCondition(\n fieldPath,\n orderByItem.item,\n sortOrder,\n rangePosition,\n );\n\n if (condition) {\n filterConditions.push(condition);\n }\n } catch (error) {\n // If we can't extract field path for ORDER BY expressions, we cannot safely resume from continuation token\n // This would lead to incorrect query results, so we must fail the entire request\n throw new Error(\n `Unable to resume ORDER BY query from continuation token. The ORDER BY field configuration ` +\n `in the query plan is invalid or incompatible with the continuation token format. ` +\n `This may indicate a client version mismatch or corrupted continuation token. ` +\n `Please retry the query without a continuation token. Original error: ${error}`,\n );\n }\n }\n\n // Combine multiple conditions with AND for multi-field ORDER BY\n const combinedFilter = filterConditions.length > 0 ? `(${filterConditions.join(\" AND \")})` : \"\";\n return combinedFilter;\n }\n\n /**\n * Extracts sort orders from query info\n * @throws Error if sort order information is missing or invalid\n */\n private extractSortOrders(queryInfo?: Record<string, unknown>): string[] {\n if (!queryInfo) {\n throw new Error(\"Query information is required to determine ORDER BY sort directions\");\n }\n\n // Extract orderBy from the nested structure: queryInfo.queryInfo.queryInfo.orderBy\n let orderBy: any[] | undefined;\n\n if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n typeof (queryInfo.queryInfo as any).queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo.orderBy &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderBy)\n ) {\n orderBy = (queryInfo.queryInfo as any).queryInfo.orderBy;\n }\n\n if (!orderBy) {\n throw new Error(\"ORDER BY sort direction information is missing from query plan\");\n }\n\n return orderBy.map((order, index) => {\n if (typeof order === \"string\") {\n return order;\n }\n // Handle object format if needed\n if (order && typeof order === \"object\") {\n const sortOrder =\n (order as any).direction || (order as any).order || (order as any).sortOrder;\n if (sortOrder) {\n return sortOrder;\n }\n }\n throw new Error(\n `ORDER BY sort direction at position ${index + 1} has an invalid format in the query plan`,\n );\n });\n }\n\n /**\n * Extracts field path from ORDER BY expressions in query plan\n * @throws Error if orderByExpressions are not found or index is out of bounds or expression format is invalid\n */\n private extractFieldPath(queryInfo: Record<string, unknown> | undefined, index: number): string {\n // Try multiple paths to find orderByExpressions due to nested structure\n let orderByExpressions: any[] | undefined;\n\n if (queryInfo) {\n // Direct path\n if (queryInfo.orderByExpressions && Array.isArray(queryInfo.orderByExpressions)) {\n orderByExpressions = queryInfo.orderByExpressions;\n }\n // Nested path: queryInfo.queryInfo.queryInfo.orderByExpressions\n else if (\n queryInfo.queryInfo &&\n typeof queryInfo.queryInfo === \"object\" &&\n (queryInfo.queryInfo as any).queryInfo &&\n (queryInfo.queryInfo as any).queryInfo.orderByExpressions &&\n Array.isArray((queryInfo.queryInfo as any).queryInfo.orderByExpressions)\n ) {\n orderByExpressions = (queryInfo.queryInfo as any).queryInfo.orderByExpressions;\n }\n }\n\n if (!orderByExpressions) {\n throw new Error(\"ORDER BY field information is missing from query plan\");\n }\n\n if (index >= orderByExpressions.length) {\n throw new Error(\n `ORDER BY field configuration mismatch: expected at least ${index + 1} fields but found ${orderByExpressions.length}`,\n );\n }\n\n const expression = orderByExpressions[index];\n\n // Handle different formats of ORDER BY expressions\n if (typeof expression === \"string\") {\n // Simple string expression like \"c.id\" or \"_FullTextScore(...)\"\n return expression;\n }\n\n if (expression && typeof expression === \"object\") {\n // Object format like { expression: \"c.id\", type: \"PropertyRef\" }\n if (expression.expression) {\n return expression.expression;\n }\n if (expression.path) {\n return expression.path.replace(/^\\//, \"\"); // Remove leading slash\n }\n if (expression.field) {\n return expression.field;\n }\n }\n\n throw new Error(\n `ORDER BY field at position ${index + 1} has an unrecognized format in the query plan`,\n );\n }\n\n /**\n * Creates a comparison condition based on the field, value, sort order, and range position\n */\n private createComparisonCondition(\n fieldPath: string,\n value: any,\n sortOrder: string,\n rangePosition: \"left\" | \"right\",\n ): string {\n const isDescending =\n sortOrder.toLowerCase() === \"descending\" || sortOrder.toLowerCase() === \"desc\";\n\n // For left ranges (ranges that come before the target):\n // - In ascending order: field > value (left ranges should seek for larger values)\n // - In descending order: field < value (left ranges should seek for smaller values)\n\n // For right ranges (ranges that come after the target):\n // - In ascending order: field >= value (right ranges have larger values)\n // - In descending order: field <= value (right ranges have smaller values in desc order)\n\n let operator: string;\n\n if (rangePosition === \"left\") {\n operator = isDescending ? \"<\" : \">\";\n } else {\n // right\n operator = isDescending ? \"<=\" : \">=\";\n }\n\n // Format the value based on its type\n const formattedValue = this.formatValueForSQL(value);\n\n // Create the condition with proper field reference\n const condition = `${fieldPath} ${operator} ${formattedValue}`;\n return condition;\n }\n\n /**\n * Formats a value for use in SQL condition.\n * We escape single quotes as \\\\u0027 to avoid ambiguity with \\\\\\\\ followed by '\n */\n private formatValueForSQL(value: any): string {\n if (value === null || value === undefined) {\n return \"null\";\n }\n\n const valueType = typeof value;\n\n switch (valueType) {\n case \"string\":\n // Escape backslashes first, then single quotes as unicode escape\n return `'${value.toString().replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\u0027\")}'`;\n case \"number\":\n case \"bigint\":\n return value.toString();\n case \"boolean\":\n return value ? \"true\" : \"false\";\n default:\n // For objects and arrays, convert to JSON string\n if (typeof value === \"object\") {\n return `'${JSON.stringify(value).replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\u0027\")}'`;\n }\n return `'${value.toString().replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\u0027\")}'`;\n }\n }\n\n /**\n * Compares partition key range boundaries with proper handling for inclusive/exclusive semantics\n * @param boundary1 - First boundary to compare\n * @param boundary2 - Second boundary to compare\n * @returns negative if boundary1 is less than boundary2, positive if boundary1 is greater than boundary2, 0 if equal\n */\n private comparePartitionKeyBoundaries(boundary1: string, boundary2: string): number {\n // Handle empty string cases (empty string represents the minimum boundary)\n if (boundary1 === \"\" && boundary2 === \"\") return 0;\n if (boundary1 === \"\") return -1; // \"\" < \"AA\"\n if (boundary2 === \"\") return 1; // \"AA\" > \"\"\n\n // Use standard lexicographic comparison for non-empty boundaries\n return boundary1.localeCompare(boundary2);\n }\n\n private isRangeBeforeAnother(range1MaxExclusive: string, range2MinInclusive: string): boolean {\n // Since range1.maxExclusive is NOT part of range1, and range2.minInclusive IS part of range2,\n // range1 comes before range2 if range1.maxExclusive <= range2.minInclusive\n return this.comparePartitionKeyBoundaries(range1MaxExclusive, range2MinInclusive) <= 0;\n }\n\n private isRangeAfterAnother(range1MinInclusive: string, range2MaxExclusive: string): boolean {\n // Since range2.maxExclusive is NOT part of range2, and range1.minInclusive IS part of range1,\n // range1 comes after range2 if range1.minInclusive >= range2.maxExclusive\n return this.comparePartitionKeyBoundaries(range1MinInclusive, range2MaxExclusive) >= 0;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -99,3 +99,4 @@ class ParallelQueryRangeStrategy {
99
99
  0 && (module.exports = {
100
100
  ParallelQueryRangeStrategy
101
101
  });
102
+ //# sourceMappingURL=ParallelQueryRangeStrategy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryFilteringStrategy/ParallelQueryRangeStrategy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\nimport { isPartitionExhausted } from \"../PartitionRangeManager.js\";\n\n/**\n * Strategy for filtering partition ranges in parallel query execution context\n * Supports resuming from composite continuation tokens with multi-range aggregation\n * @hidden\n */\nexport class ParallelQueryRangeStrategy implements TargetPartitionRangeStrategy {\n getStrategyType(): string {\n return \"ParallelQuery\";\n }\n\n validateContinuationToken(continuationToken: string): boolean {\n // Check for null, undefined, or empty string inputs\n if (!continuationToken) {\n return false;\n }\n\n try {\n const parsed = JSON.parse(continuationToken);\n // Check if it's a composite continuation token (has rangeMappings)\n if (!parsed || !Array.isArray(parsed.rangeMappings)) {\n return false;\n }\n\n // Validate each range mapping has a non-null partitionKeyRange\n for (const rangeMapping of parsed.rangeMappings) {\n if (!rangeMapping || !rangeMapping.partitionKeyRange) {\n return false;\n }\n }\n\n return true;\n } catch {\n return false;\n }\n }\n\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n ): PartitionRangeFilterResult {\n if (!targetRanges || targetRanges.length === 0) {\n return { rangeTokenPairs: [] };\n }\n\n // If no continuation ranges, return all ranges as range-token pairs\n if (!continuationRanges || continuationRanges.length === 0) {\n const rangeTokenPairs = targetRanges.map((range) => ({\n range,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n }));\n return { rangeTokenPairs };\n }\n\n const rangeTokenPairs: PartitionRangeWithContinuationToken[] = [];\n let lastProcessedRange: PartitionKeyRange | null = null;\n\n // sort continuationRanges in ascending order using their minInclusive values\n continuationRanges.sort((a, b) => {\n return a.range.minInclusive.localeCompare(b.range.minInclusive);\n });\n\n for (const range of continuationRanges) {\n // Always track the last processed range, even if it's exhausted\n lastProcessedRange = range.range;\n\n if (range && !isPartitionExhausted(range.continuationToken)) {\n rangeTokenPairs.push({\n range: range.range,\n continuationToken: range.continuationToken,\n filteringCondition: range.filteringCondition,\n });\n }\n }\n\n // Add any new target ranges that come after the last processed range\n if (lastProcessedRange) {\n for (const targetRange of targetRanges) {\n // Only include ranges whose minInclusive value is greater than or equal to maxExclusive of lastProcessedRange\n if (targetRange.minInclusive >= lastProcessedRange.maxExclusive) {\n rangeTokenPairs.push({\n range: targetRange,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n });\n }\n }\n } else {\n // If no ranges were processed from continuation token, add all target ranges\n for (const targetRange of targetRanges) {\n rangeTokenPairs.push({\n range: targetRange,\n continuationToken: undefined as string | undefined,\n filteringCondition: undefined as string | undefined,\n });\n }\n }\n\n return {\n rangeTokenPairs,\n };\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,mCAAqC;AAO9B,MAAM,2BAAmE;AAAA,EAC9E,kBAA0B;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,0BAA0B,mBAAoC;AAE5D,QAAI,CAAC,mBAAmB;AACtB,aAAO;AAAA,IACT;AAEA,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,iBAAiB;AAE3C,UAAI,CAAC,UAAU,CAAC,MAAM,QAAQ,OAAO,aAAa,GAAG;AACnD,eAAO;AAAA,MACT;AAGA,iBAAW,gBAAgB,OAAO,eAAe;AAC/C,YAAI,CAAC,gBAAgB,CAAC,aAAa,mBAAmB;AACpD,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,sBACE,cACA,oBAC4B;AAC5B,QAAI,CAAC,gBAAgB,aAAa,WAAW,GAAG;AAC9C,aAAO,EAAE,iBAAiB,CAAC,EAAE;AAAA,IAC/B;AAGA,QAAI,CAAC,sBAAsB,mBAAmB,WAAW,GAAG;AAC1D,YAAMA,mBAAkB,aAAa,IAAI,CAAC,WAAW;AAAA,QACnD;AAAA,QACA,mBAAmB;AAAA,QACnB,oBAAoB;AAAA,MACtB,EAAE;AACF,aAAO,EAAE,iBAAAA,iBAAgB;AAAA,IAC3B;AAEA,UAAM,kBAAyD,CAAC;AAChE,QAAI,qBAA+C;AAGnD,uBAAmB,KAAK,CAAC,GAAG,MAAM;AAChC,aAAO,EAAE,MAAM,aAAa,cAAc,EAAE,MAAM,YAAY;AAAA,IAChE,CAAC;AAED,eAAW,SAAS,oBAAoB;AAEtC,2BAAqB,MAAM;AAE3B,UAAI,SAAS,KAAC,mDAAqB,MAAM,iBAAiB,GAAG;AAC3D,wBAAgB,KAAK;AAAA,UACnB,OAAO,MAAM;AAAA,UACb,mBAAmB,MAAM;AAAA,UACzB,oBAAoB,MAAM;AAAA,QAC5B,CAAC;AAAA,MACH;AAAA,IACF;AAGA,QAAI,oBAAoB;AACtB,iBAAW,eAAe,cAAc;AAEtC,YAAI,YAAY,gBAAgB,mBAAmB,cAAc;AAC/D,0BAAgB,KAAK;AAAA,YACnB,OAAO;AAAA,YACP,mBAAmB;AAAA,YACnB,oBAAoB;AAAA,UACtB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,OAAO;AAEL,iBAAW,eAAe,cAAc;AACtC,wBAAgB,KAAK;AAAA,UACnB,OAAO;AAAA,UACP,mBAAmB;AAAA,UACnB,oBAAoB;AAAA,QACtB,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": ["rangeTokenPairs"]
@@ -29,6 +29,7 @@ class RidSkipCountFilter {
29
29
  this.filterContext = filterContext;
30
30
  this.remainingSkipCount = this.filterContext.skipCount;
31
31
  }
32
+ filterContext;
32
33
  remainingSkipCount;
33
34
  /**
34
35
  * Applies the comprehensive OrderBy + RID + SkipCount filtering logic.
@@ -152,3 +153,4 @@ class RidSkipCountFilter {
152
153
  0 && (module.exports = {
153
154
  RidSkipCountFilter
154
155
  });
156
+ //# sourceMappingURL=RidSkipCountFilter.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryFilteringStrategy/RidSkipCountFilter.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { FilterContext, FilterStrategy } from \"../index.js\";\nimport { compareOrderByItems } from \"../orderByComparator.js\";\n\n/**\n * Implements post-fetch filtering for ORDER BY queries to handle continuation tokens correctly.\n * This logic is applied only to the target partition from which a query is resumed.\n * It filters out documents that have already been emitted in previous pages by comparing\n * ORDER BY item values first, then document _rid, and finally using skip count for tie-breaking.\n *\n * Follows the .NET SDK FilterNextAsync logic:\n * 1. Compare OrderBy values with continuation token values\n * 2. Skip documents that come before continuation point\n * 3. For exact OrderBy matches, use RID comparison\n * 4. For exact RID matches, apply skip count logic\n */\nexport class RidSkipCountFilter implements FilterStrategy {\n private remainingSkipCount: number;\n\n /**\n * @param filterContext - The context containing values from the continuation token.\n */\n constructor(private readonly filterContext: FilterContext) {\n this.remainingSkipCount = this.filterContext.skipCount;\n }\n\n /**\n * Applies the comprehensive OrderBy + RID + SkipCount filtering logic.\n * @param documents - The documents fetched from the target partition.\n * @returns A new array containing only the documents that should be processed.\n */\n public applyFilter(documents: any[]): any[] {\n const filteredDocs: any[] = [];\n let skippedCount = 0;\n\n for (const doc of documents) {\n if (!this.shouldIncludeDocument(doc)) {\n skippedCount++;\n continue;\n }\n filteredDocs.push(doc);\n }\n return filteredDocs;\n }\n\n /**\n * Determines if a document should be included based on OrderBy values, RID, and skip count.\n * Implements the .NET SDK's FilterNextAsync logic with robust OrderBy comparison.\n */\n private shouldIncludeDocument(doc: any): boolean {\n // Step 1: OrderBy Value Filtering using OrderByComparator\n const sortOrderCompare = this.compareOrderByItems(doc);\n\n // FIXED: Correct the inverted logic!\n // compareOrderByItems returns: negative if doc < continuation, positive if doc > continuation\n // But for filtering: negative means doc comes BEFORE (skip), positive means doc comes AFTER (include)\n\n // If sortOrderCompare < 0, this document comes before the continuation point\n if (sortOrderCompare < 0) {\n return true; // Include documents that come after continuation point\n }\n\n // If sortOrderCompare > 0, this document comes after the continuation point\n if (sortOrderCompare > 0) {\n return false; // Skip documents that come before continuation point\n }\n\n // Step 2: RID Filtering (sortOrderCompare === 0, same OrderBy values)\n // Check if RID is available for comparison (some queries like JOIN may not have RID)\n // if (!this.filterContext.rid) {\n // // // Without RID, we can't do RID-based filtering, so include the document\n // // The skipCount logic will handle any necessary filtering\n // if (this.remainingSkipCount > 0) {\n // // this.remainingSkipCount--;\n // return false;\n // }\n // // return true;\n // }\n\n // For ORDER BY queries, _rid is at the top level of doc, not in payload\n // Query rewrites to: SELECT c._rid, [...] AS orderByItems, {...} AS payload\n const docRid = doc._rid;\n\n let ridOrderCompare: number;\n if (this.filterContext.rid === docRid) {\n ridOrderCompare = 0;\n } else {\n // Use BigInt comparison for accurate RID comparison\n const continuationBigInt = this.ridToBigInt(this.filterContext.rid);\n const docBigInt = this.ridToBigInt(docRid);\n\n if (continuationBigInt < docBigInt) {\n ridOrderCompare = -1;\n } else if (continuationBigInt > docBigInt) {\n ridOrderCompare = 1;\n } else {\n ridOrderCompare = 0;\n }\n }\n // Apply direction logic based on sort order and query execution info\n const sortOrders = this.filterContext.sortOrders || [];\n const queryExecutionInfo = this.filterContext.queryExecutionInfo;\n\n // Direction logic based on index scan direction\n // Find the first descending sort order in the array\n const hasDescendingSort = sortOrders.some((order) => order === \"Descending\");\n\n if (!queryExecutionInfo || queryExecutionInfo.reverseRidEnabled) {\n // Default behavior or when reverseRidEnabled is true\n if (hasDescendingSort) {\n ridOrderCompare = -ridOrderCompare; // Flip for DESC sort order\n }\n } else {\n // When reverseRidEnabled is false, use reverseIndexScan\n if (queryExecutionInfo.reverseIndexScan) {\n ridOrderCompare = -ridOrderCompare; // Flip based on index scan direction\n }\n }\n\n // if (ridOrderCompare > 0) continue; // Skip\n if (ridOrderCompare > 0) {\n return false; // Skip documents that were already processed\n }\n\n if (ridOrderCompare < 0) {\n return true; // Include documents that come after continuation\n }\n\n // Step 3: SkipCount Logic (ridOrderCompare === 0, exact same RID)\n if (this.remainingSkipCount > 0) {\n this.remainingSkipCount--;\n return false; // Skip this document due to skip count\n }\n\n return true; // Include this document (skip count exhausted)\n }\n\n /**\n * Convert RID to BigInt for accurate comparison.\n * Decodes base64 RID and extracts the Document ID portion (8 bytes at offset 8) as BigInt.\n *\n * RID Structure (from Java SDK ResourceId.java):\n * - Bytes 0-3: Database ID (4 bytes)\n * - Bytes 4-7: Collection ID (4 bytes)\n * - Bytes 8-15: Document ID (8 bytes, stored in Big Endian but compared in Little Endian)\n * - Bytes 16-19: Attachment ID (4 bytes, optional)\n */\n private ridToBigInt(rid: string): bigint {\n // Validate input RID\n if (rid === null || rid === undefined) {\n throw new Error(`RID is null or undefined`);\n }\n if (typeof rid !== \"string\") {\n throw new Error(`RID must be a string, got ${typeof rid}`);\n }\n if (rid.trim().length === 0) {\n throw new Error(`RID is empty string`);\n }\n\n try {\n const normalizedRid = rid.replace(/-/g, \"/\");\n const bytes = Buffer.from(normalizedRid, \"base64\");\n\n // Validate RID length - must be at least 16 bytes to contain document ID\n if (bytes.length < 16) {\n throw new Error(`RID too short: expected at least 16 bytes, got ${bytes.length}`);\n }\n\n // Extract Document ID portion (8 bytes at offset 8-15)\n // The bytes are stored as Big Endian but must be compared as Little Endian\n let result = 0n;\n for (let i = 15; i >= 8; i--) {\n result = (result << 8n) | BigInt(bytes[i] & 0xff); // & 0xFF treats as unsigned\n }\n\n return result;\n } catch (error) {\n throw new Error(\n `Failed to convert RID '${rid}' to BigInt: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n /**\n * Compares the OrderBy items of a document with the continuation token's OrderBy items.\n * Uses the exported compareOrderByItems utility function from orderByItemComparator.\n * @param doc - The document to compare\n * @returns negative if doc comes before continuation, 0 if same, positive if doc comes after\n */\n private compareOrderByItems(doc: any): number {\n const docOrderByItems = doc.orderByItems || [];\n const continuationOrderByItems = this.filterContext.orderByItems || [];\n const sortOrders = this.filterContext.sortOrders || [];\n\n // Compare doc vs continuation (not continuation vs doc!)\n // Returns: negative if doc < continuation, 0 if equal, positive if doc > continuation\n return compareOrderByItems(docOrderByItems, continuationOrderByItems, sortOrders);\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -107,3 +107,4 @@ class TargetPartitionRangeManager {
107
107
  QueryExecutionContextType,
108
108
  TargetPartitionRangeManager
109
109
  });
110
+ //# sourceMappingURL=TargetPartitionRangeManager.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeManager.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type {\n TargetPartitionRangeStrategy,\n PartitionRangeFilterResult,\n} from \"./TargetPartitionRangeStrategy.js\";\nimport { ParallelQueryRangeStrategy } from \"./ParallelQueryRangeStrategy.js\";\nimport { OrderByQueryRangeStrategy } from \"./OrderByQueryRangeStrategy.js\";\n\n/**\n * Interface representing a partition key range with its associated continuation token and filtering condition\n * @hidden\n */\nexport interface PartitionRangeWithContinuationToken {\n range: PartitionKeyRange;\n continuationToken?: string;\n filteringCondition?: string;\n}\n\n/**\n * Query execution context types\n * @hidden\n */\nexport enum QueryExecutionContextType {\n Parallel = \"Parallel\",\n OrderBy = \"OrderBy\",\n}\n\n/**\n * Configuration for the Target Partition Range Manager\n * @hidden\n */\nexport interface TargetPartitionRangeManagerConfig {\n /**\n * The type of query execution context\n */\n queryType: QueryExecutionContextType;\n\n /**\n * Additional query information that might be needed for filtering decisions\n */\n queryInfo: Record<string, unknown>;\n\n /**\n * Custom strategy instance (optional, will use default strategies if not provided)\n */\n customStrategy?: TargetPartitionRangeStrategy;\n}\n\n/**\n * Manager class responsible for filtering target partition ranges based on query type and continuation tokens.\n * Uses the Strategy pattern to provide different filtering logic for different query types.\n * @hidden\n */\nexport class TargetPartitionRangeManager {\n private strategy: TargetPartitionRangeStrategy;\n private config: TargetPartitionRangeManagerConfig;\n\n constructor(config: TargetPartitionRangeManagerConfig) {\n this.config = config;\n this.strategy = this.createStrategy(config);\n }\n\n /**\n * Creates the appropriate strategy based on configuration\n */\n private createStrategy(config: TargetPartitionRangeManagerConfig): TargetPartitionRangeStrategy {\n // Use custom strategy if provided\n if (config.customStrategy) {\n return config.customStrategy;\n }\n\n // Create default strategy based on query type\n switch (config.queryType) {\n case QueryExecutionContextType.Parallel:\n return new ParallelQueryRangeStrategy();\n\n case QueryExecutionContextType.OrderBy:\n return new OrderByQueryRangeStrategy();\n\n default:\n throw new Error(`Unsupported query execution context type: ${config.queryType}`);\n }\n }\n\n /**\n * Filters target partition ranges based on range-token pairs from partition split/merge detection\n * @param targetRanges - All available target partition ranges (fallback if no range-token pairs)\n * @param rangeTokenPairs - Pre-processed range-token pairs after split/merge detection\n * @param additionalQueryInfo - Additional query information to merge with existing queryInfo\n * @returns Filtered partition ranges and metadata\n */\n public filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n rangeTokenPairs?: PartitionRangeWithContinuationToken[],\n additionalQueryInfo?: Record<string, unknown>,\n ): PartitionRangeFilterResult {\n // Validate inputs\n if (!targetRanges || targetRanges.length === 0) {\n return { rangeTokenPairs: [] };\n }\n\n // Merge base queryInfo with additional queryInfo (additional takes precedence)\n const mergedQueryInfo = { ...this.config.queryInfo, ...additionalQueryInfo };\n\n const result = this.strategy.filterPartitionRanges(\n targetRanges,\n rangeTokenPairs,\n mergedQueryInfo,\n );\n return result;\n }\n\n /**\n * Gets the current strategy type\n */\n public getStrategyType(): string {\n return this.strategy.getStrategyType();\n }\n\n /**\n * Updates the strategy (useful for switching between query types)\n */\n public updateStrategy(newConfig: TargetPartitionRangeManagerConfig): void {\n this.config = newConfig;\n this.strategy = this.createStrategy(newConfig);\n }\n\n /**\n * Static factory method to create a manager for parallel queries\n */\n public static createForParallelQuery(\n queryInfo: Record<string, unknown>,\n ): TargetPartitionRangeManager {\n return new TargetPartitionRangeManager({\n queryType: QueryExecutionContextType.Parallel,\n queryInfo,\n });\n }\n\n /**\n * Static factory method to create a manager for ORDER BY queries\n */\n public static createForOrderByQuery(\n queryInfo: Record<string, unknown>,\n ): TargetPartitionRangeManager {\n return new TargetPartitionRangeManager({\n queryType: QueryExecutionContextType.OrderBy,\n queryInfo,\n });\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,wCAA2C;AAC3C,uCAA0C;AAgBnC,IAAK,4BAAL,kBAAKA,+BAAL;AACL,EAAAA,2BAAA,cAAW;AACX,EAAAA,2BAAA,aAAU;AAFA,SAAAA;AAAA,GAAA;AA+BL,MAAM,4BAA4B;AAAA,EAC/B;AAAA,EACA;AAAA,EAER,YAAY,QAA2C;AACrD,SAAK,SAAS;AACd,SAAK,WAAW,KAAK,eAAe,MAAM;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAKQ,eAAe,QAAyE;AAE9F,QAAI,OAAO,gBAAgB;AACzB,aAAO,OAAO;AAAA,IAChB;AAGA,YAAQ,OAAO,WAAW;AAAA,MACxB,KAAK;AACH,eAAO,IAAI,6DAA2B;AAAA,MAExC,KAAK;AACH,eAAO,IAAI,2DAA0B;AAAA,MAEvC;AACE,cAAM,IAAI,MAAM,6CAA6C,OAAO,SAAS,EAAE;AAAA,IACnF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASO,sBACL,cACA,iBACA,qBAC4B;AAE5B,QAAI,CAAC,gBAAgB,aAAa,WAAW,GAAG;AAC9C,aAAO,EAAE,iBAAiB,CAAC,EAAE;AAAA,IAC/B;AAGA,UAAM,kBAAkB,EAAE,GAAG,KAAK,OAAO,WAAW,GAAG,oBAAoB;AAE3E,UAAM,SAAS,KAAK,SAAS;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKO,kBAA0B;AAC/B,WAAO,KAAK,SAAS,gBAAgB;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKO,eAAe,WAAoD;AACxE,SAAK,SAAS;AACd,SAAK,WAAW,KAAK,eAAe,SAAS;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAc,uBACZ,WAC6B;AAC7B,WAAO,IAAI,4BAA4B;AAAA,MACrC,WAAW;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,OAAc,sBACZ,WAC6B;AAC7B,WAAO,IAAI,4BAA4B;AAAA,MACrC,WAAW;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
6
6
  "names": ["QueryExecutionContextType"]
@@ -13,3 +13,4 @@ var __copyProps = (to, from, except, desc) => {
13
13
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
14
  var TargetPartitionRangeStrategy_exports = {};
15
15
  module.exports = __toCommonJS(TargetPartitionRangeStrategy_exports);
16
+ //# sourceMappingURL=TargetPartitionRangeStrategy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryFilteringStrategy/TargetPartitionRangeStrategy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../../index.js\";\nimport type { PartitionRangeWithContinuationToken } from \"./TargetPartitionRangeManager.js\";\n\n/**\n * Represents the result of partition range filtering\n * @hidden\n */\nexport interface PartitionRangeFilterResult {\n /**\n * The filtered partition ranges with their associated continuation tokens and filtering conditions\n */\n rangeTokenPairs: PartitionRangeWithContinuationToken[];\n}\n\n/**\n * Strategy interface for filtering target partition ranges based on query type and continuation token\n * @hidden\n */\nexport interface TargetPartitionRangeStrategy {\n /**\n * Gets the strategy type identifier\n */\n getStrategyType(): string;\n\n /**\n * Filters target partition ranges based on the continuation token and query-specific logic\n * @param targetRanges - All available target partition ranges\n * @param continuationToken - The continuation token to resume from (if any)\n * @returns Filtered partition ranges and metadata\n */\n filterPartitionRanges(\n targetRanges: PartitionKeyRange[],\n continuationRanges?: PartitionRangeWithContinuationToken[],\n queryInfo?: Record<string, unknown>,\n ): PartitionRangeFilterResult;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
@@ -25,6 +25,7 @@ class OrderByQueryProcessingStrategy {
25
25
  constructor(sortOrders) {
26
26
  this.sortOrders = sortOrders;
27
27
  }
28
+ sortOrders;
28
29
  /**
29
30
  * Creates additional query info from ORDER BY continuation token
30
31
  */
@@ -66,3 +67,4 @@ class OrderByQueryProcessingStrategy {
66
67
  0 && (module.exports = {
67
68
  OrderByQueryProcessingStrategy
68
69
  });
70
+ //# sourceMappingURL=OrderByQueryProcessingStrategy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryProcessingStrategy/OrderByQueryProcessingStrategy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OrderByQueryContinuationToken } from \"../../documents/ContinuationToken/OrderByQueryContinuationToken.js\";\nimport { parseOrderByQueryContinuationToken } from \"../../documents/ContinuationToken/OrderByQueryContinuationToken.js\";\nimport type { CompositeQueryContinuationToken } from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport type { FilterContext } from \"../queryFilteringStrategy/FilterStrategy.js\";\nimport type { QueryProcessingStrategy } from \"./QueryProcessingStrategy.js\";\n\n/**\n * Strategy for processing ORDER BY queries\n * @hidden\n */\nexport class OrderByQueryProcessingStrategy implements QueryProcessingStrategy {\n constructor(private readonly sortOrders: any[]) {}\n /**\n * Creates additional query info from ORDER BY continuation token\n */\n createAdditionalQueryInfo(\n parsedToken: OrderByQueryContinuationToken | CompositeQueryContinuationToken,\n ): any {\n const orderByToken = parsedToken as OrderByQueryContinuationToken;\n const info: any = {};\n if (orderByToken.orderByItems) info.orderByItems = orderByToken.orderByItems;\n if (orderByToken.documentRid) info.rid = orderByToken.documentRid;\n return Object.keys(info).length > 0 ? info : undefined;\n }\n\n /**\n * Creates filter context for ORDER BY continuation token processing\n */\n createFilterContext(\n parsedToken: OrderByQueryContinuationToken | CompositeQueryContinuationToken,\n ): FilterContext | undefined {\n const orderByToken = parsedToken as OrderByQueryContinuationToken;\n return {\n orderByItems: orderByToken.orderByItems,\n rid: orderByToken.documentRid,\n skipCount: orderByToken.skipCount,\n sortOrders: this.sortOrders,\n };\n }\n\n /**\n * For ORDER BY queries, only apply filter to the target partition (last range in continuation)\n */\n getPartitionFilterContext(\n filterContext: FilterContext | undefined,\n targetPartitionId: string | undefined,\n partitionTargetRangeId: string,\n ): FilterContext | undefined {\n if (!filterContext) return undefined;\n const isTargetPartition = targetPartitionId === partitionTargetRangeId;\n return isTargetPartition ? filterContext : undefined;\n }\n\n /**\n * Parses ORDER BY continuation token\n */\n parseContinuationToken(\n continuationToken: string,\n ): OrderByQueryContinuationToken | CompositeQueryContinuationToken {\n return parseOrderByQueryContinuationToken(continuationToken);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,2CAAmD;AAS5C,MAAM,+BAAkE;AAAA,EAC7E,YAA6B,YAAmB;AAAnB;AAAA,EAAoB;AAAA;AAAA;AAAA;AAAA,EAIjD,0BACE,aACK;AACL,UAAM,eAAe;AACrB,UAAM,OAAY,CAAC;AACnB,QAAI,aAAa,aAAc,MAAK,eAAe,aAAa;AAChE,QAAI,aAAa,YAAa,MAAK,MAAM,aAAa;AACtD,WAAO,OAAO,KAAK,IAAI,EAAE,SAAS,IAAI,OAAO;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,oBACE,aAC2B;AAC3B,UAAM,eAAe;AACrB,WAAO;AAAA,MACL,cAAc,aAAa;AAAA,MAC3B,KAAK,aAAa;AAAA,MAClB,WAAW,aAAa;AAAA,MACxB,YAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,0BACE,eACA,mBACA,wBAC2B;AAC3B,QAAI,CAAC,cAAe,QAAO;AAC3B,UAAM,oBAAoB,sBAAsB;AAChD,WAAO,oBAAoB,gBAAgB;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,uBACE,mBACiE;AACjE,eAAO,yEAAmC,iBAAiB;AAAA,EAC7D;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,2CAAmD;AAS5C,MAAM,+BAAkE;AAAA,EAC7E,YAA6B,YAAmB;AAAnB;AAAA,EAAoB;AAAA,EAApB;AAAA;AAAA;AAAA;AAAA,EAI7B,0BACE,aACK;AACL,UAAM,eAAe;AACrB,UAAM,OAAY,CAAC;AACnB,QAAI,aAAa,aAAc,MAAK,eAAe,aAAa;AAChE,QAAI,aAAa,YAAa,MAAK,MAAM,aAAa;AACtD,WAAO,OAAO,KAAK,IAAI,EAAE,SAAS,IAAI,OAAO;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,oBACE,aAC2B;AAC3B,UAAM,eAAe;AACrB,WAAO;AAAA,MACL,cAAc,aAAa;AAAA,MAC3B,KAAK,aAAa;AAAA,MAClB,WAAW,aAAa;AAAA,MACxB,YAAY,KAAK;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,0BACE,eACA,mBACA,wBAC2B;AAC3B,QAAI,CAAC,cAAe,QAAO;AAC3B,UAAM,oBAAoB,sBAAsB;AAChD,WAAO,oBAAoB,gBAAgB;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,uBACE,mBACiE;AACjE,eAAO,yEAAmC,iBAAiB;AAAA,EAC7D;AACF;",
6
6
  "names": []
7
7
  }
@@ -51,3 +51,4 @@ class ParallelQueryProcessingStrategy {
51
51
  0 && (module.exports = {
52
52
  ParallelQueryProcessingStrategy
53
53
  });
54
+ //# sourceMappingURL=ParallelQueryProcessingStrategy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryProcessingStrategy/ParallelQueryProcessingStrategy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OrderByQueryContinuationToken } from \"../../documents/ContinuationToken/OrderByQueryContinuationToken.js\";\nimport type { CompositeQueryContinuationToken } from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport { parseCompositeQueryContinuationToken } from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport type { FilterContext } from \"../queryFilteringStrategy/FilterStrategy.js\";\nimport type { QueryProcessingStrategy } from \"./QueryProcessingStrategy.js\";\n\n/**\n * Strategy for processing parallel queries (non-ORDER BY)\n * @hidden\n */\nexport class ParallelQueryProcessingStrategy implements QueryProcessingStrategy {\n /**\n * Parallel queries don't need additional query info from continuation token\n */\n createAdditionalQueryInfo(\n _parsedToken: OrderByQueryContinuationToken | CompositeQueryContinuationToken,\n ): any {\n return undefined;\n }\n\n /**\n * Parallel queries don't use filter context for continuation token processing\n */\n createFilterContext(\n _parsedToken: OrderByQueryContinuationToken | CompositeQueryContinuationToken,\n ): FilterContext | undefined {\n return undefined;\n }\n\n /**\n * Parallel queries don't apply partition-specific filter context\n */\n getPartitionFilterContext(\n _filterContext: FilterContext | undefined,\n _targetPartitionId: string | undefined,\n _partitionTargetRangeId: string,\n ): FilterContext | undefined {\n return undefined;\n }\n\n /**\n * Parses parallel/composite continuation token\n */\n parseContinuationToken(\n continuationToken: string,\n ): OrderByQueryContinuationToken | CompositeQueryContinuationToken {\n return parseCompositeQueryContinuationToken(continuationToken);\n }\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,6CAAqD;AAQ9C,MAAM,gCAAmE;AAAA;AAAA;AAAA;AAAA,EAI9E,0BACE,cACK;AACL,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,oBACE,cAC2B;AAC3B,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,0BACE,gBACA,oBACA,yBAC2B;AAC3B,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,uBACE,mBACiE;AACjE,eAAO,6EAAqC,iBAAiB;AAAA,EAC/D;AACF;",
6
6
  "names": []
@@ -13,3 +13,4 @@ var __copyProps = (to, from, except, desc) => {
13
13
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
14
  var QueryProcessingStrategy_exports = {};
15
15
  module.exports = __toCommonJS(QueryProcessingStrategy_exports);
16
+ //# sourceMappingURL=QueryProcessingStrategy.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.ts"],
3
+ "sources": ["../../../../src/queryExecutionContext/queryProcessingStrategy/QueryProcessingStrategy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { OrderByQueryContinuationToken } from \"../../documents/ContinuationToken/OrderByQueryContinuationToken.js\";\nimport type { CompositeQueryContinuationToken } from \"../../documents/ContinuationToken/CompositeQueryContinuationToken.js\";\nimport type { FilterContext } from \"../queryFilteringStrategy/FilterStrategy.js\";\n\n/**\n * Strategy interface for processing different query types\n * @hidden\n */\nexport interface QueryProcessingStrategy {\n /**\n * Creates additional query info from parsed continuation token\n * @param parsedToken - The parsed continuation token\n * @returns Additional query info or undefined\n */\n createAdditionalQueryInfo(\n parsedToken: OrderByQueryContinuationToken | CompositeQueryContinuationToken,\n ): any;\n\n /**\n * Creates filter context for continuation token processing\n * @param parsedToken - The parsed continuation token\n * @returns Filter context or undefined\n */\n createFilterContext(\n parsedToken: OrderByQueryContinuationToken | CompositeQueryContinuationToken,\n ): FilterContext | undefined;\n\n /**\n * Determines if filter context should be applied to a specific partition\n * @param filterContext - The filter context\n * @param targetPartitionId - ID of the target partition\n * @param partitionTargetRangeId - ID of the current partition range\n * @returns Filter context to apply or undefined\n */\n getPartitionFilterContext(\n filterContext: FilterContext | undefined,\n targetPartitionId: string | undefined,\n partitionTargetRangeId: string,\n ): FilterContext | undefined;\n\n /**\n * Parses continuation token based on query type\n * @param continuationToken - The continuation token string to parse\n * @returns Parsed continuation token object\n */\n parseContinuationToken(\n continuationToken: string,\n ): OrderByQueryContinuationToken | CompositeQueryContinuationToken;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
@@ -13,3 +13,4 @@ var __copyProps = (to, from, except, desc) => {
13
13
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
14
  var queryRangeMapping_exports = {};
15
15
  module.exports = __toCommonJS(queryRangeMapping_exports);
16
+ //# sourceMappingURL=queryRangeMapping.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryExecutionContext/queryRangeMapping.ts"],
3
+ "sources": ["../../../src/queryExecutionContext/queryRangeMapping.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { PartitionKeyRange } from \"../client/Container/PartitionKeyRange.js\";\n\n/**\n * @hidden\n * Represents a range mapping for partition key range\n */\nexport interface QueryRangeMapping {\n /**\n * @internal\n * Number of items from this partition range in the current buffer\n */\n itemCount: number;\n\n /**\n * Continuation token for this partition key range\n */\n continuationToken: string | undefined;\n\n /**\n * The partition key range this mapping belongs to\n */\n partitionKeyRange: PartitionKeyRange;\n\n /**\n * Hash of the last document result for this partition key range (for distinct queries)\n */\n hashedLastResult?: string;\n\n offset?: number;\n\n limit?: number;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
@@ -48,6 +48,12 @@ class QueryIterator {
48
48
  this.isInitialized = false;
49
49
  this.partitionKeyRangeCache = this.clientContext.partitionKeyRangeCache;
50
50
  }
51
+ clientContext;
52
+ query;
53
+ options;
54
+ fetchFunctions;
55
+ resourceLink;
56
+ resourceType;
51
57
  fetchAllTempResources;
52
58
  // TODO
53
59
  fetchAllLastResHeaders;
@@ -423,3 +429,4 @@ class QueryIterator {
423
429
  0 && (module.exports = {
424
430
  QueryIterator
425
431
  });
432
+ //# sourceMappingURL=queryIterator.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["/mnt/vss/_work/1/s/sdk/cosmosdb/cosmos/src/queryIterator.ts"],
3
+ "sources": ["../../src/queryIterator.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/// <reference lib=\"esnext.asynciterable\" />\nimport type { ClientContext } from \"./ClientContext.js\";\nimport {\n DiagnosticNodeInternal,\n DiagnosticNodeType,\n} from \"./diagnostics/DiagnosticNodeInternal.js\";\nimport { getPathFromLink, ResourceType, StatusCodes } from \"./common/index.js\";\nimport type {\n CosmosHeaders,\n ExecutionContext,\n FetchFunctionCallback,\n SqlQuerySpec,\n} from \"./queryExecutionContext/index.js\";\nimport {\n DefaultQueryExecutionContext,\n getInitialHeader,\n mergeHeaders,\n PipelinedQueryExecutionContext,\n} from \"./queryExecutionContext/index.js\";\nimport type { Response } from \"./request/index.js\";\nimport type {\n ErrorResponse,\n PartitionedQueryExecutionInfo,\n QueryRange,\n} from \"./request/ErrorResponse.js\";\nimport type { FeedOptions } from \"./request/FeedOptions.js\";\nimport { FeedResponse } from \"./request/FeedResponse.js\";\nimport {\n getEmptyCosmosDiagnostics,\n withDiagnostics,\n withMetadataDiagnostics,\n} from \"./utils/diagnostics.js\";\nimport { MetadataLookUpType } from \"./CosmosDiagnostics.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { HybridQueryExecutionContext } from \"./queryExecutionContext/hybridQueryExecutionContext.js\";\nimport type { PartitionKeyRangeCache } from \"./routing/index.js\";\n\n/**\n * Represents a QueryIterator Object, an implementation of feed or query response that enables\n * traversal and iterating over the response\n * in the Azure Cosmos DB database service.\n */\nexport class QueryIterator<T> {\n private fetchAllTempResources: T[]; // TODO\n private fetchAllLastResHeaders: CosmosHeaders;\n private queryExecutionContext: ExecutionContext;\n private queryPlanPromise: Promise<Response<PartitionedQueryExecutionInfo>>;\n private isInitialized: boolean;\n private correlatedActivityId: string;\n private partitionKeyRangeCache: PartitionKeyRangeCache;\n /**\n * @hidden\n */\n constructor(\n private clientContext: ClientContext,\n private query: SqlQuerySpec | string,\n private options: FeedOptions,\n private fetchFunctions: FetchFunctionCallback | FetchFunctionCallback[],\n private resourceLink?: string,\n private resourceType?: ResourceType,\n ) {\n this.query = query;\n this.fetchFunctions = fetchFunctions;\n this.options = options || {};\n this.resourceLink = resourceLink;\n this.fetchAllLastResHeaders = getInitialHeader();\n this.reset();\n this.isInitialized = false;\n this.partitionKeyRangeCache = this.clientContext.partitionKeyRangeCache;\n }\n\n /**\n * Gets an async iterator that will yield results until completion.\n *\n * NOTE: AsyncIterators are a very new feature and you might need to\n * use polyfils/etc. in order to use them in your code.\n *\n * If you're using TypeScript, you can use the following polyfill as long\n * as you target ES6 or higher and are running on Node 6 or higher.\n *\n * ```ts snippet:ignore\n * if (!Symbol || !Symbol.asyncIterator) {\n * (Symbol as any).asyncIterator = Symbol.for(\"Symbol.asyncIterator\");\n * }\n * ```\n *\n * @example Iterate over all databases\n * ```ts snippet:QueryIteratorIterateDatabases\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * for await (const { resources: db } of client.databases.readAll().getAsyncIterator()) {\n * console.log(`Got ${db} from AsyncIterator`);\n * }\n * ```\n */\n public async *getAsyncIterator(): AsyncIterable<FeedResponse<T>> {\n const diagnosticNode = new DiagnosticNodeInternal(\n this.clientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n yield* this.getAsyncIteratorInternal(diagnosticNode);\n }\n /**\n * @internal\n */\n public async *getAsyncIteratorInternal(\n diagnosticNode: DiagnosticNodeInternal,\n ): AsyncIterable<FeedResponse<T>> {\n this.reset();\n this.queryPlanPromise = this.fetchQueryPlan(diagnosticNode);\n while (this.queryExecutionContext.hasMoreResults()) {\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (queryError: any) {\n this.handleSplitError(queryError);\n }\n } else {\n throw error;\n }\n }\n\n const feedResponse = new FeedResponse<T>(\n response.result,\n response.headers,\n this.queryExecutionContext.hasMoreResults(),\n diagnosticNode.toDiagnostic(this.clientContext.getClientConfig()),\n );\n diagnosticNode = new DiagnosticNodeInternal(\n this.clientContext.diagnosticLevel,\n DiagnosticNodeType.CLIENT_REQUEST_NODE,\n null,\n );\n if (response.result !== undefined) {\n yield feedResponse;\n }\n }\n }\n\n /**\n * Determine if there are still remaining resources to process based on the value of the continuation token or the\n * elements remaining on the current batch in the QueryIterator.\n * @returns true if there is other elements to process in the QueryIterator.\n */\n public hasMoreResults(): boolean {\n return this.queryExecutionContext.hasMoreResults();\n }\n\n /**\n * Fetch all pages for the query and return a single FeedResponse.\n * @example\n * ```ts snippet:ReadmeSampleQueryDatabase\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const { resources } = await container.items\n * .query(\"SELECT * from c WHERE c.isCapitol = true\")\n * .fetchAll();\n * ```\n */\n\n public async fetchAll(): Promise<FeedResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.fetchAllInternal(diagnosticNode);\n }, this.clientContext);\n }\n\n /**\n * @hidden\n */\n public async fetchAllInternal(diagnosticNode: DiagnosticNodeInternal): Promise<FeedResponse<T>> {\n this.reset();\n let response: FeedResponse<T>;\n try {\n response = await this.toArrayImplementation(diagnosticNode);\n } catch (error: any) {\n this.handleSplitError(error);\n }\n return response;\n }\n\n /**\n * Retrieve the next batch from the feed.\n *\n * This may or may not fetch more pages from the backend depending on your settings\n * and the type of query. Aggregate queries will generally fetch all backend pages\n * before returning the first batch of responses.\n *\n * @example\n * ```ts snippet:ReadmeSampleNonStreamableCrossPartitionQuery\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n *\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n *\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const querySpec = {\n * query: \"SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status\",\n * };\n * const queryOptions = {\n * maxItemCount: 10, // maximum number of items to return per page\n * enableCrossPartitionQuery: true,\n * };\n * const queryIterator = container.items.query(querySpec, queryOptions);\n * while (queryIterator.hasMoreResults()) {\n * const { resources: result } = await queryIterator.fetchNext();\n * // process results\n * }\n * ```\n */\n public async fetchNext(): Promise<FeedResponse<T>> {\n return withDiagnostics(async (diagnosticNode: DiagnosticNodeInternal) => {\n return this.fetchNextInternal(diagnosticNode);\n }, this.clientContext);\n }\n /**\n * @internal\n */\n public async fetchNextInternal(diagnosticNode: DiagnosticNodeInternal): Promise<FeedResponse<T>> {\n this.queryPlanPromise = withMetadataDiagnostics(\n async (metadataNode: DiagnosticNodeInternal) => {\n return this.fetchQueryPlan(metadataNode);\n },\n diagnosticNode,\n MetadataLookUpType.QueryPlanLookUp,\n );\n if (!this.isInitialized) {\n await this.init(diagnosticNode);\n }\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (queryError: any) {\n this.handleSplitError(queryError);\n }\n } else {\n throw error;\n }\n }\n return new FeedResponse<T>(\n response.result,\n response.headers,\n this.queryExecutionContext.hasMoreResults(),\n getEmptyCosmosDiagnostics(),\n );\n }\n\n /**\n * Reset the QueryIterator to the beginning and clear all the resources inside it\n * @example\n * ```ts snippet:QueryIteratorReset\n * import { CosmosClient } from \"@azure/cosmos\";\n *\n * const endpoint = \"https://your-account.documents.azure.com\";\n * const key = \"<database account masterkey>\";\n * const client = new CosmosClient({ endpoint, key });\n * const { database } = await client.databases.createIfNotExists({ id: \"Test Database\" });\n * const { container } = await database.containers.createIfNotExists({ id: \"Test Container\" });\n *\n * const querySpec = {\n * query: \"SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status\",\n * };\n * const queryIterator = container.items.query(querySpec);\n * while (queryIterator.hasMoreResults()) {\n * const { resources: result } = await queryIterator.fetchNext();\n * // process results\n * }\n * queryIterator.reset();\n * ```\n *\n */\n public reset(): void {\n this.correlatedActivityId = randomUUID();\n this.queryPlanPromise = undefined;\n this.fetchAllLastResHeaders = getInitialHeader();\n this.fetchAllTempResources = [];\n this.queryExecutionContext = new DefaultQueryExecutionContext(\n this.options,\n this.fetchFunctions,\n this.correlatedActivityId,\n );\n }\n\n private async toArrayImplementation(\n diagnosticNode: DiagnosticNodeInternal,\n ): Promise<FeedResponse<T>> {\n this.queryPlanPromise = withMetadataDiagnostics(\n async (metadataNode: DiagnosticNodeInternal) => {\n return this.fetchQueryPlan(metadataNode);\n },\n diagnosticNode,\n MetadataLookUpType.QueryPlanLookUp,\n );\n // this.queryPlanPromise = this.fetchQueryPlan(diagnosticNode);\n if (!this.isInitialized) {\n await this.init(diagnosticNode);\n }\n while (this.queryExecutionContext.hasMoreResults()) {\n let response: Response<any>;\n try {\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } catch (error: any) {\n if (this.needsQueryPlan(error)) {\n await this.createExecutionContext(diagnosticNode);\n response = await this.queryExecutionContext.fetchMore(diagnosticNode);\n } else {\n throw error;\n }\n }\n const { result, headers } = response;\n // concatenate the results and fetch more\n mergeHeaders(this.fetchAllLastResHeaders, headers);\n if (result) {\n this.fetchAllTempResources.push(...result);\n }\n }\n return new FeedResponse(\n this.fetchAllTempResources,\n this.fetchAllLastResHeaders,\n this.queryExecutionContext.hasMoreResults(),\n getEmptyCosmosDiagnostics(),\n );\n }\n\n private async createExecutionContext(diagnosticNode?: DiagnosticNodeInternal): Promise<void> {\n const queryPlanResponse = await this.queryPlanPromise;\n\n // We always coerce queryPlanPromise to resolved. So if it errored, we need to manually inspect the resolved value\n if (queryPlanResponse instanceof Error) {\n throw queryPlanResponse;\n }\n\n const queryPlan: PartitionedQueryExecutionInfo = queryPlanResponse.result;\n if (queryPlan.hybridSearchQueryInfo && queryPlan.hybridSearchQueryInfo !== null) {\n await this.createHybridQueryExecutionContext(queryPlan, diagnosticNode);\n } else {\n await this.createPipelinedExecutionContext(queryPlan);\n }\n }\n\n private async createHybridQueryExecutionContext(\n queryPlan: PartitionedQueryExecutionInfo,\n diagnosticNode?: DiagnosticNodeInternal,\n ): Promise<void> {\n const allPartitionKeyRanges = (\n await this.partitionKeyRangeCache.onCollectionRoutingMap(this.resourceLink, diagnosticNode)\n ).getOrderedParitionKeyRanges();\n\n // convert allPartitionKeyRanges to QueryRanges\n const queryRanges: QueryRange[] = allPartitionKeyRanges.map((partitionKeyRange) => {\n return {\n min: partitionKeyRange.minInclusive,\n max: partitionKeyRange.maxExclusive,\n isMinInclusive: true,\n isMaxInclusive: false,\n };\n });\n\n this.queryExecutionContext = new HybridQueryExecutionContext(\n this.clientContext,\n this.resourceLink,\n this.query,\n this.options,\n queryPlan,\n this.correlatedActivityId,\n queryRanges,\n );\n }\n\n private async createPipelinedExecutionContext(\n queryPlan: PartitionedQueryExecutionInfo,\n ): Promise<void> {\n const queryInfo = queryPlan.queryInfo;\n if (queryInfo.aggregates.length > 0 && queryInfo.hasSelectValue === false) {\n throw new Error(\"Aggregate queries must use the VALUE keyword\");\n }\n this.queryExecutionContext = new PipelinedQueryExecutionContext(\n this.clientContext,\n this.resourceLink,\n this.query,\n this.options,\n queryPlan,\n this.correlatedActivityId,\n );\n }\n\n private async fetchQueryPlan(diagnosticNode: DiagnosticNodeInternal): Promise<any> {\n if (!this.queryPlanPromise && this.resourceType === ResourceType.item) {\n return this.clientContext\n .getQueryPlan(\n getPathFromLink(this.resourceLink) + \"/docs\",\n ResourceType.item,\n this.resourceLink,\n this.query,\n this.options,\n diagnosticNode,\n this.correlatedActivityId,\n )\n .catch((error: any) => error); // Without this catch, node reports an unhandled rejection. So we stash the promise as resolved even if it errored.\n }\n return this.queryPlanPromise;\n }\n\n private needsQueryPlan(error: ErrorResponse): error is ErrorResponse {\n if (\n error.body?.additionalErrorInfo ||\n error.message.includes(\"Cross partition query only supports\")\n ) {\n return error.code === StatusCodes.BadRequest && this.resourceType === ResourceType.item;\n } else {\n throw error;\n }\n }\n\n private initPromise: Promise<void>;\n /**\n * @internal\n */\n public async init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n if (this.isInitialized === true) {\n return;\n }\n if (this.initPromise === undefined) {\n this.initPromise = this._init(diagnosticNode);\n }\n return this.initPromise;\n }\n private async _init(diagnosticNode: DiagnosticNodeInternal): Promise<void> {\n if (this.options.forceQueryPlan === true && this.resourceType === ResourceType.item) {\n await this.createExecutionContext(diagnosticNode);\n }\n this.isInitialized = true;\n }\n\n private handleSplitError(err: any): void {\n if (err.code === 410) {\n const error = new Error(\n \"Encountered partition split and could not recover. This request is retryable\",\n ) as any;\n error.code = 503;\n error.originalError = err;\n throw error;\n } else {\n throw err;\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oCAGO;AACP,oBAA2D;AAO3D,mCAKO;AAQP,0BAA6B;AAC7B,yBAIO;AACP,+BAAmC;AACnC,uBAA2B;AAC3B,yCAA4C;AAQrC,MAAM,cAAiB;AAAA;AAAA;AAAA;AAAA,EAW5B,YACU,eACA,OACA,SACA,gBACA,cACA,cACR;AANQ;AACA;AACA;AACA;AACA;AACA;AAER,SAAK,QAAQ;AACb,SAAK,iBAAiB;AACtB,SAAK,UAAU,WAAW,CAAC;AAC3B,SAAK,eAAe;AACpB,SAAK,6BAAyB,+CAAiB;AAC/C,SAAK,MAAM;AACX,SAAK,gBAAgB;AACrB,SAAK,yBAAyB,KAAK,cAAc;AAAA,EACnD;AAAA,EA1BQ;AAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkDR,OAAc,mBAAmD;AAC/D,UAAM,iBAAiB,IAAI;AAAA,MACzB,KAAK,cAAc;AAAA,MACnB,iDAAmB;AAAA,MACnB;AAAA,IACF;AACA,WAAO,KAAK,yBAAyB,cAAc;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAIA,OAAc,yBACZ,gBACgC;AAChC,SAAK,MAAM;AACX,SAAK,mBAAmB,KAAK,eAAe,cAAc;AAC1D,WAAO,KAAK,sBAAsB,eAAe,GAAG;AAClD,UAAI;AACJ,UAAI;AACF,mBAAW,MAAM,KAAK,sBAAsB,UAAU,cAAc;AAAA,MACtE,SAAS,OAAY;AACnB,YAAI,KAAK,eAAe,KAAK,GAAG;AAC9B,gBAAM,KAAK,uBAAuB,cAAc;AAChD,cAAI;AACF,uBAAW,MAAM,KAAK,sBAAsB,UAAU,cAAc;AAAA,UACtE,SAAS,YAAiB;AACxB,iBAAK,iBAAiB,UAAU;AAAA,UAClC;AAAA,QACF,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAEA,YAAM,eAAe,IAAI;AAAA,QACvB,SAAS;AAAA,QACT,SAAS;AAAA,QACT,KAAK,sBAAsB,eAAe;AAAA,QAC1C,eAAe,aAAa,KAAK,cAAc,gBAAgB,CAAC;AAAA,MAClE;AACA,uBAAiB,IAAI;AAAA,QACnB,KAAK,cAAc;AAAA,QACnB,iDAAmB;AAAA,QACnB;AAAA,MACF;AACA,UAAI,SAAS,WAAW,QAAW;AACjC,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,iBAA0B;AAC/B,WAAO,KAAK,sBAAsB,eAAe;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,MAAa,WAAqC;AAChD,eAAO,oCAAgB,OAAO,mBAA2C;AACvE,aAAO,KAAK,iBAAiB,cAAc;AAAA,IAC7C,GAAG,KAAK,aAAa;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAa,iBAAiB,gBAAkE;AAC9F,SAAK,MAAM;AACX,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,KAAK,sBAAsB,cAAc;AAAA,IAC5D,SAAS,OAAY;AACnB,WAAK,iBAAiB,KAAK;AAAA,IAC7B;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCA,MAAa,YAAsC;AACjD,eAAO,oCAAgB,OAAO,mBAA2C;AACvE,aAAO,KAAK,kBAAkB,cAAc;AAAA,IAC9C,GAAG,KAAK,aAAa;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAIA,MAAa,kBAAkB,gBAAkE;AAC/F,SAAK,uBAAmB;AAAA,MACtB,OAAO,iBAAyC;AAC9C,eAAO,KAAK,eAAe,YAAY;AAAA,MACzC;AAAA,MACA;AAAA,MACA,4CAAmB;AAAA,IACrB;AACA,QAAI,CAAC,KAAK,eAAe;AACvB,YAAM,KAAK,KAAK,cAAc;AAAA,IAChC;AACA,QAAI;AACJ,QAAI;AACF,iBAAW,MAAM,KAAK,sBAAsB,UAAU,cAAc;AAAA,IACtE,SAAS,OAAY;AACnB,UAAI,KAAK,eAAe,KAAK,GAAG;AAC9B,cAAM,KAAK,uBAAuB,cAAc;AAChD,YAAI;AACF,qBAAW,MAAM,KAAK,sBAAsB,UAAU,cAAc;AAAA,QACtE,SAAS,YAAiB;AACxB,eAAK,iBAAiB,UAAU;AAAA,QAClC;AAAA,MACF,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF;AACA,WAAO,IAAI;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,KAAK,sBAAsB,eAAe;AAAA,UAC1C,8CAA0B;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BO,QAAc;AACnB,SAAK,2BAAuB,6BAAW;AACvC,SAAK,mBAAmB;AACxB,SAAK,6BAAyB,+CAAiB;AAC/C,SAAK,wBAAwB,CAAC;AAC9B,SAAK,wBAAwB,IAAI;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEA,MAAc,sBACZ,gBAC0B;AAC1B,SAAK,uBAAmB;AAAA,MACtB,OAAO,iBAAyC;AAC9C,eAAO,KAAK,eAAe,YAAY;AAAA,MACzC;AAAA,MACA;AAAA,MACA,4CAAmB;AAAA,IACrB;AAEA,QAAI,CAAC,KAAK,eAAe;AACvB,YAAM,KAAK,KAAK,cAAc;AAAA,IAChC;AACA,WAAO,KAAK,sBAAsB,eAAe,GAAG;AAClD,UAAI;AACJ,UAAI;AACF,mBAAW,MAAM,KAAK,sBAAsB,UAAU,cAAc;AAAA,MACtE,SAAS,OAAY;AACnB,YAAI,KAAK,eAAe,KAAK,GAAG;AAC9B,gBAAM,KAAK,uBAAuB,cAAc;AAChD,qBAAW,MAAM,KAAK,sBAAsB,UAAU,cAAc;AAAA,QACtE,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AACA,YAAM,EAAE,QAAQ,QAAQ,IAAI;AAE5B,qDAAa,KAAK,wBAAwB,OAAO;AACjD,UAAI,QAAQ;AACV,aAAK,sBAAsB,KAAK,GAAG,MAAM;AAAA,MAC3C;AAAA,IACF;AACA,WAAO,IAAI;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,sBAAsB,eAAe;AAAA,UAC1C,8CAA0B;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,MAAc,uBAAuB,gBAAwD;AAC3F,UAAM,oBAAoB,MAAM,KAAK;AAGrC,QAAI,6BAA6B,OAAO;AACtC,YAAM;AAAA,IACR;AAEA,UAAM,YAA2C,kBAAkB;AACnE,QAAI,UAAU,yBAAyB,UAAU,0BAA0B,MAAM;AAC/E,YAAM,KAAK,kCAAkC,WAAW,cAAc;AAAA,IACxE,OAAO;AACL,YAAM,KAAK,gCAAgC,SAAS;AAAA,IACtD;AAAA,EACF;AAAA,EAEA,MAAc,kCACZ,WACA,gBACe;AACf,UAAM,yBACJ,MAAM,KAAK,uBAAuB,uBAAuB,KAAK,cAAc,cAAc,GAC1F,4BAA4B;AAG9B,UAAM,cAA4B,sBAAsB,IAAI,CAAC,sBAAsB;AACjF,aAAO;AAAA,QACL,KAAK,kBAAkB;AAAA,QACvB,KAAK,kBAAkB;AAAA,QACvB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAClB;AAAA,IACF,CAAC;AAED,SAAK,wBAAwB,IAAI;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,gCACZ,WACe;AACf,UAAM,YAAY,UAAU;AAC5B,QAAI,UAAU,WAAW,SAAS,KAAK,UAAU,mBAAmB,OAAO;AACzE,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AACA,SAAK,wBAAwB,IAAI;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEA,MAAc,eAAe,gBAAsD;AACjF,QAAI,CAAC,KAAK,oBAAoB,KAAK,iBAAiB,2BAAa,MAAM;AACrE,aAAO,KAAK,cACT;AAAA,YACC,+BAAgB,KAAK,YAAY,IAAI;AAAA,QACrC,2BAAa;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL;AAAA,QACA,KAAK;AAAA,MACP,EACC,MAAM,CAAC,UAAe,KAAK;AAAA,IAChC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ,eAAe,OAA8C;AACnE,QACE,MAAM,MAAM,uBACZ,MAAM,QAAQ,SAAS,qCAAqC,GAC5D;AACA,aAAO,MAAM,SAAS,0BAAY,cAAc,KAAK,iBAAiB,2BAAa;AAAA,IACrF,OAAO;AACL,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEQ;AAAA;AAAA;AAAA;AAAA,EAIR,MAAa,KAAK,gBAAuD;AACvE,QAAI,KAAK,kBAAkB,MAAM;AAC/B;AAAA,IACF;AACA,QAAI,KAAK,gBAAgB,QAAW;AAClC,WAAK,cAAc,KAAK,MAAM,cAAc;AAAA,IAC9C;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EACA,MAAc,MAAM,gBAAuD;AACzE,QAAI,KAAK,QAAQ,mBAAmB,QAAQ,KAAK,iBAAiB,2BAAa,MAAM;AACnF,YAAM,KAAK,uBAAuB,cAAc;AAAA,IAClD;AACA,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEQ,iBAAiB,KAAgB;AACvC,QAAI,IAAI,SAAS,KAAK;AACpB,YAAM,QAAQ,IAAI;AAAA,QAChB;AAAA,MACF;AACA,YAAM,OAAO;AACb,YAAM,gBAAgB;AACtB,YAAM;AAAA,IACR,OAAO;AACL,YAAM;AAAA,IACR;AAAA,EACF;AACF;",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -24,6 +24,7 @@ class ClientSideMetrics {
24
24
  constructor(requestCharge) {
25
25
  this.requestCharge = requestCharge;
26
26
  }
27
+ requestCharge;
27
28
  /**
28
29
  * Adds one or more ClientSideMetrics to a copy of this instance and returns the result.
29
30
  */
@@ -49,3 +50,4 @@ class ClientSideMetrics {
49
50
  0 && (module.exports = {
50
51
  ClientSideMetrics
51
52
  });
53
+ //# sourceMappingURL=clientSideMetrics.js.map