@ahoo-wang/wow-client 9.2.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +291 -0
  3. package/README.zh-CN.md +267 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorate.cjs +1 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorate.es.js +9 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateMetadata.cjs +1 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateMetadata.es.js +6 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateParam.cjs +1 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.151.0/helpers/esm/decorateParam.es.js +8 -0
  10. package/dist/client/bindMethods.cjs +2 -0
  11. package/dist/client/bindMethods.cjs.map +1 -0
  12. package/dist/client/bindMethods.d.cts +13 -0
  13. package/dist/client/bindMethods.d.ts +13 -0
  14. package/dist/client/bindMethods.es.js +19 -0
  15. package/dist/client/bindMethods.es.js.map +1 -0
  16. package/dist/client/command/commandClient.cjs +2 -0
  17. package/dist/client/command/commandClient.cjs.map +1 -0
  18. package/dist/client/command/commandClient.d.cts +67 -0
  19. package/dist/client/command/commandClient.d.ts +67 -0
  20. package/dist/client/command/commandClient.es.js +38 -0
  21. package/dist/client/command/commandClient.es.js.map +1 -0
  22. package/dist/client/command/commandHeaders.cjs +2 -0
  23. package/dist/client/command/commandHeaders.cjs.map +1 -0
  24. package/dist/client/command/commandHeaders.d.cts +75 -0
  25. package/dist/client/command/commandHeaders.d.ts +75 -0
  26. package/dist/client/command/commandHeaders.es.js +31 -0
  27. package/dist/client/command/commandHeaders.es.js.map +1 -0
  28. package/dist/client/command/commandRequest.cjs +2 -0
  29. package/dist/client/command/commandRequest.cjs.map +1 -0
  30. package/dist/client/command/commandRequest.d.cts +180 -0
  31. package/dist/client/command/commandRequest.d.ts +180 -0
  32. package/dist/client/command/commandRequest.es.js +31 -0
  33. package/dist/client/command/commandRequest.es.js.map +1 -0
  34. package/dist/client/command/commandResult.d.cts +15 -0
  35. package/dist/client/command/commandResult.d.ts +15 -0
  36. package/dist/client/command/index.d.cts +5 -0
  37. package/dist/client/command/index.d.ts +5 -0
  38. package/dist/client/command/types.d.cts +71 -0
  39. package/dist/client/command/types.d.ts +71 -0
  40. package/dist/client/metadata/index.d.cts +2 -0
  41. package/dist/client/metadata/index.d.ts +2 -0
  42. package/dist/client/metadata/wowMetadata.d.cts +48 -0
  43. package/dist/client/metadata/wowMetadata.d.ts +48 -0
  44. package/dist/client/metadata/wowMetadataClient.cjs +2 -0
  45. package/dist/client/metadata/wowMetadataClient.cjs.map +1 -0
  46. package/dist/client/metadata/wowMetadataClient.d.cts +23 -0
  47. package/dist/client/metadata/wowMetadataClient.d.ts +23 -0
  48. package/dist/client/metadata/wowMetadataClient.es.js +25 -0
  49. package/dist/client/metadata/wowMetadataClient.es.js.map +1 -0
  50. package/dist/client/query/descriptor/descriptorEndpoints.cjs +2 -0
  51. package/dist/client/query/descriptor/descriptorEndpoints.cjs.map +1 -0
  52. package/dist/client/query/descriptor/descriptorEndpoints.d.cts +29 -0
  53. package/dist/client/query/descriptor/descriptorEndpoints.d.ts +29 -0
  54. package/dist/client/query/descriptor/descriptorEndpoints.es.js +69 -0
  55. package/dist/client/query/descriptor/descriptorEndpoints.es.js.map +1 -0
  56. package/dist/client/query/descriptor/endpointPaths.cjs +2 -0
  57. package/dist/client/query/descriptor/endpointPaths.cjs.map +1 -0
  58. package/dist/client/query/descriptor/endpointPaths.d.cts +4 -0
  59. package/dist/client/query/descriptor/endpointPaths.d.ts +4 -0
  60. package/dist/client/query/descriptor/endpointPaths.es.js +9 -0
  61. package/dist/client/query/descriptor/endpointPaths.es.js.map +1 -0
  62. package/dist/client/query/descriptor/index.d.cts +2 -0
  63. package/dist/client/query/descriptor/index.d.ts +2 -0
  64. package/dist/client/query/descriptor/queryDescriptorApi.d.cts +58 -0
  65. package/dist/client/query/descriptor/queryDescriptorApi.d.ts +58 -0
  66. package/dist/client/query/descriptor/queryDescriptorClient.cjs +2 -0
  67. package/dist/client/query/descriptor/queryDescriptorClient.cjs.map +1 -0
  68. package/dist/client/query/descriptor/queryDescriptorClient.d.cts +61 -0
  69. package/dist/client/query/descriptor/queryDescriptorClient.d.ts +61 -0
  70. package/dist/client/query/descriptor/queryDescriptorClient.es.js +20 -0
  71. package/dist/client/query/descriptor/queryDescriptorClient.es.js.map +1 -0
  72. package/dist/client/query/event/domainEventStream.cjs +2 -0
  73. package/dist/client/query/event/domainEventStream.cjs.map +1 -0
  74. package/dist/client/query/event/domainEventStream.d.cts +105 -0
  75. package/dist/client/query/event/domainEventStream.d.ts +105 -0
  76. package/dist/client/query/event/domainEventStream.es.js +23 -0
  77. package/dist/client/query/event/domainEventStream.es.js.map +1 -0
  78. package/dist/client/query/event/endpointPaths.cjs +2 -0
  79. package/dist/client/query/event/endpointPaths.cjs.map +1 -0
  80. package/dist/client/query/event/endpointPaths.d.cts +8 -0
  81. package/dist/client/query/event/endpointPaths.d.ts +8 -0
  82. package/dist/client/query/event/endpointPaths.es.js +13 -0
  83. package/dist/client/query/event/endpointPaths.es.js.map +1 -0
  84. package/dist/client/query/event/eventStreamQueryApi.d.cts +29 -0
  85. package/dist/client/query/event/eventStreamQueryApi.d.ts +29 -0
  86. package/dist/client/query/event/eventStreamQueryClient.cjs +2 -0
  87. package/dist/client/query/event/eventStreamQueryClient.cjs.map +1 -0
  88. package/dist/client/query/event/eventStreamQueryClient.d.cts +190 -0
  89. package/dist/client/query/event/eventStreamQueryClient.d.ts +190 -0
  90. package/dist/client/query/event/eventStreamQueryClient.es.js +160 -0
  91. package/dist/client/query/event/eventStreamQueryClient.es.js.map +1 -0
  92. package/dist/client/query/event/index.d.cts +3 -0
  93. package/dist/client/query/event/index.d.ts +3 -0
  94. package/dist/client/query/factory.cjs +2 -0
  95. package/dist/client/query/factory.cjs.map +1 -0
  96. package/dist/client/query/factory.d.cts +165 -0
  97. package/dist/client/query/factory.d.ts +165 -0
  98. package/dist/client/query/factory.es.js +45 -0
  99. package/dist/client/query/factory.es.js.map +1 -0
  100. package/dist/client/query/index.d.cts +6 -0
  101. package/dist/client/query/index.d.ts +6 -0
  102. package/dist/client/query/queryApi.d.cts +68 -0
  103. package/dist/client/query/queryApi.d.ts +68 -0
  104. package/dist/client/query/requests.d.cts +24 -0
  105. package/dist/client/query/requests.d.ts +24 -0
  106. package/dist/client/query/snapshot/endpointPaths.cjs +2 -0
  107. package/dist/client/query/snapshot/endpointPaths.cjs.map +1 -0
  108. package/dist/client/query/snapshot/endpointPaths.d.cts +12 -0
  109. package/dist/client/query/snapshot/endpointPaths.d.ts +12 -0
  110. package/dist/client/query/snapshot/endpointPaths.es.js +17 -0
  111. package/dist/client/query/snapshot/endpointPaths.es.js.map +1 -0
  112. package/dist/client/query/snapshot/index.d.cts +3 -0
  113. package/dist/client/query/snapshot/index.d.ts +3 -0
  114. package/dist/client/query/snapshot/snapshot.cjs +2 -0
  115. package/dist/client/query/snapshot/snapshot.cjs.map +1 -0
  116. package/dist/client/query/snapshot/snapshot.d.cts +51 -0
  117. package/dist/client/query/snapshot/snapshot.d.ts +51 -0
  118. package/dist/client/query/snapshot/snapshot.es.js +20 -0
  119. package/dist/client/query/snapshot/snapshot.es.js.map +1 -0
  120. package/dist/client/query/snapshot/snapshotQueryApi.d.cts +101 -0
  121. package/dist/client/query/snapshot/snapshotQueryApi.d.ts +101 -0
  122. package/dist/client/query/snapshot/snapshotQueryClient.cjs +2 -0
  123. package/dist/client/query/snapshot/snapshotQueryClient.cjs.map +1 -0
  124. package/dist/client/query/snapshot/snapshotQueryClient.d.cts +369 -0
  125. package/dist/client/query/snapshot/snapshotQueryClient.d.ts +369 -0
  126. package/dist/client/query/snapshot/snapshotQueryClient.es.js +239 -0
  127. package/dist/client/query/snapshot/snapshotQueryClient.es.js.map +1 -0
  128. package/dist/client/query/state/endpointPaths.cjs +2 -0
  129. package/dist/client/query/state/endpointPaths.cjs.map +1 -0
  130. package/dist/client/query/state/endpointPaths.d.cts +10 -0
  131. package/dist/client/query/state/endpointPaths.d.ts +10 -0
  132. package/dist/client/query/state/endpointPaths.es.js +14 -0
  133. package/dist/client/query/state/endpointPaths.es.js.map +1 -0
  134. package/dist/client/query/state/index.d.cts +4 -0
  135. package/dist/client/query/state/index.d.ts +4 -0
  136. package/dist/client/query/state/loadOwnerStateAggregateApi.d.cts +36 -0
  137. package/dist/client/query/state/loadOwnerStateAggregateApi.d.ts +36 -0
  138. package/dist/client/query/state/loadOwnerStateAggregateClient.cjs +2 -0
  139. package/dist/client/query/state/loadOwnerStateAggregateClient.cjs.map +1 -0
  140. package/dist/client/query/state/loadOwnerStateAggregateClient.d.cts +58 -0
  141. package/dist/client/query/state/loadOwnerStateAggregateClient.d.ts +58 -0
  142. package/dist/client/query/state/loadOwnerStateAggregateClient.es.js +56 -0
  143. package/dist/client/query/state/loadOwnerStateAggregateClient.es.js.map +1 -0
  144. package/dist/client/query/state/loadStateAggregateApi.d.cts +37 -0
  145. package/dist/client/query/state/loadStateAggregateApi.d.ts +37 -0
  146. package/dist/client/query/state/loadStateAggregateClient.cjs +2 -0
  147. package/dist/client/query/state/loadStateAggregateClient.cjs.map +1 -0
  148. package/dist/client/query/state/loadStateAggregateClient.d.cts +62 -0
  149. package/dist/client/query/state/loadStateAggregateClient.d.ts +62 -0
  150. package/dist/client/query/state/loadStateAggregateClient.es.js +65 -0
  151. package/dist/client/query/state/loadStateAggregateClient.es.js.map +1 -0
  152. package/dist/client/routing.cjs +2 -0
  153. package/dist/client/routing.cjs.map +1 -0
  154. package/dist/client/routing.d.cts +47 -0
  155. package/dist/client/routing.d.ts +47 -0
  156. package/dist/client/routing.es.js +8 -0
  157. package/dist/client/routing.es.js.map +1 -0
  158. package/dist/dsl/aggregation/admit.cjs +2 -0
  159. package/dist/dsl/aggregation/admit.cjs.map +1 -0
  160. package/dist/dsl/aggregation/admit.d.cts +6 -0
  161. package/dist/dsl/aggregation/admit.d.ts +6 -0
  162. package/dist/dsl/aggregation/admit.es.js +142 -0
  163. package/dist/dsl/aggregation/admit.es.js.map +1 -0
  164. package/dist/dsl/aggregation/builders.cjs +2 -0
  165. package/dist/dsl/aggregation/builders.cjs.map +1 -0
  166. package/dist/dsl/aggregation/builders.d.cts +309 -0
  167. package/dist/dsl/aggregation/builders.d.ts +309 -0
  168. package/dist/dsl/aggregation/builders.es.js +188 -0
  169. package/dist/dsl/aggregation/builders.es.js.map +1 -0
  170. package/dist/dsl/aggregation/derived.cjs +2 -0
  171. package/dist/dsl/aggregation/derived.cjs.map +1 -0
  172. package/dist/dsl/aggregation/derived.d.cts +33 -0
  173. package/dist/dsl/aggregation/derived.d.ts +33 -0
  174. package/dist/dsl/aggregation/derived.es.js +31 -0
  175. package/dist/dsl/aggregation/derived.es.js.map +1 -0
  176. package/dist/dsl/aggregation/expressionTrees.cjs +2 -0
  177. package/dist/dsl/aggregation/expressionTrees.cjs.map +1 -0
  178. package/dist/dsl/aggregation/expressionTrees.d.cts +10 -0
  179. package/dist/dsl/aggregation/expressionTrees.d.ts +10 -0
  180. package/dist/dsl/aggregation/expressionTrees.es.js +44 -0
  181. package/dist/dsl/aggregation/expressionTrees.es.js.map +1 -0
  182. package/dist/dsl/aggregation/having.cjs +2 -0
  183. package/dist/dsl/aggregation/having.cjs.map +1 -0
  184. package/dist/dsl/aggregation/having.d.cts +94 -0
  185. package/dist/dsl/aggregation/having.d.ts +94 -0
  186. package/dist/dsl/aggregation/having.es.js +62 -0
  187. package/dist/dsl/aggregation/having.es.js.map +1 -0
  188. package/dist/dsl/aggregation/index.d.cts +4 -0
  189. package/dist/dsl/aggregation/index.d.ts +4 -0
  190. package/dist/dsl/aggregation/sort.cjs +2 -0
  191. package/dist/dsl/aggregation/sort.cjs.map +1 -0
  192. package/dist/dsl/aggregation/sort.d.cts +7 -0
  193. package/dist/dsl/aggregation/sort.d.ts +7 -0
  194. package/dist/dsl/aggregation/sort.es.js +10 -0
  195. package/dist/dsl/aggregation/sort.es.js.map +1 -0
  196. package/dist/dsl/aggregation/types.cjs +2 -0
  197. package/dist/dsl/aggregation/types.cjs.map +1 -0
  198. package/dist/dsl/aggregation/types.d.cts +608 -0
  199. package/dist/dsl/aggregation/types.d.ts +608 -0
  200. package/dist/dsl/aggregation/types.es.js +37 -0
  201. package/dist/dsl/aggregation/types.es.js.map +1 -0
  202. package/dist/dsl/cursorQuery.cjs +2 -0
  203. package/dist/dsl/cursorQuery.cjs.map +1 -0
  204. package/dist/dsl/cursorQuery.d.cts +69 -0
  205. package/dist/dsl/cursorQuery.d.ts +69 -0
  206. package/dist/dsl/cursorQuery.es.js +19 -0
  207. package/dist/dsl/cursorQuery.es.js.map +1 -0
  208. package/dist/dsl/deletionState.cjs +2 -0
  209. package/dist/dsl/deletionState.cjs.map +1 -0
  210. package/dist/dsl/deletionState.d.cts +19 -0
  211. package/dist/dsl/deletionState.d.ts +19 -0
  212. package/dist/dsl/deletionState.es.js +8 -0
  213. package/dist/dsl/deletionState.es.js.map +1 -0
  214. package/dist/dsl/descriptor.cjs +2 -0
  215. package/dist/dsl/descriptor.cjs.map +1 -0
  216. package/dist/dsl/descriptor.d.cts +629 -0
  217. package/dist/dsl/descriptor.d.ts +629 -0
  218. package/dist/dsl/descriptor.es.js +37 -0
  219. package/dist/dsl/descriptor.es.js.map +1 -0
  220. package/dist/dsl/documents.d.cts +8 -0
  221. package/dist/dsl/documents.d.ts +8 -0
  222. package/dist/dsl/field.cjs +2 -0
  223. package/dist/dsl/field.cjs.map +1 -0
  224. package/dist/dsl/field.d.cts +2 -0
  225. package/dist/dsl/field.d.ts +2 -0
  226. package/dist/dsl/field.es.js +10 -0
  227. package/dist/dsl/field.es.js.map +1 -0
  228. package/dist/dsl/filter/builders.cjs +2 -0
  229. package/dist/dsl/filter/builders.cjs.map +1 -0
  230. package/dist/dsl/filter/builders.d.cts +962 -0
  231. package/dist/dsl/filter/builders.d.ts +962 -0
  232. package/dist/dsl/filter/builders.es.js +289 -0
  233. package/dist/dsl/filter/builders.es.js.map +1 -0
  234. package/dist/dsl/filter/datePattern.cjs +2 -0
  235. package/dist/dsl/filter/datePattern.cjs.map +1 -0
  236. package/dist/dsl/filter/datePattern.d.cts +8 -0
  237. package/dist/dsl/filter/datePattern.d.ts +8 -0
  238. package/dist/dsl/filter/datePattern.es.js +100 -0
  239. package/dist/dsl/filter/datePattern.es.js.map +1 -0
  240. package/dist/dsl/filter/index.d.cts +3 -0
  241. package/dist/dsl/filter/index.d.ts +3 -0
  242. package/dist/dsl/filter/operator.cjs +2 -0
  243. package/dist/dsl/filter/operator.cjs.map +1 -0
  244. package/dist/dsl/filter/operator.d.cts +113 -0
  245. package/dist/dsl/filter/operator.d.ts +113 -0
  246. package/dist/dsl/filter/operator.es.js +14 -0
  247. package/dist/dsl/filter/operator.es.js.map +1 -0
  248. package/dist/dsl/filter/scope.cjs +2 -0
  249. package/dist/dsl/filter/scope.cjs.map +1 -0
  250. package/dist/dsl/filter/scope.d.cts +15 -0
  251. package/dist/dsl/filter/scope.d.ts +15 -0
  252. package/dist/dsl/filter/scope.es.js +32 -0
  253. package/dist/dsl/filter/scope.es.js.map +1 -0
  254. package/dist/dsl/filter/types.d.cts +274 -0
  255. package/dist/dsl/filter/types.d.ts +274 -0
  256. package/dist/dsl/filter/validate.cjs +2 -0
  257. package/dist/dsl/filter/validate.cjs.map +1 -0
  258. package/dist/dsl/filter/validate.d.cts +18 -0
  259. package/dist/dsl/filter/validate.d.ts +18 -0
  260. package/dist/dsl/filter/validate.es.js +56 -0
  261. package/dist/dsl/filter/validate.es.js.map +1 -0
  262. package/dist/dsl/pagination.cjs +2 -0
  263. package/dist/dsl/pagination.cjs.map +1 -0
  264. package/dist/dsl/pagination.d.cts +28 -0
  265. package/dist/dsl/pagination.d.ts +28 -0
  266. package/dist/dsl/pagination.es.js +15 -0
  267. package/dist/dsl/pagination.es.js.map +1 -0
  268. package/dist/dsl/projection.cjs +2 -0
  269. package/dist/dsl/projection.cjs.map +1 -0
  270. package/dist/dsl/projection.d.cts +27 -0
  271. package/dist/dsl/projection.d.ts +27 -0
  272. package/dist/dsl/projection.es.js +12 -0
  273. package/dist/dsl/projection.es.js.map +1 -0
  274. package/dist/dsl/queryable.cjs +2 -0
  275. package/dist/dsl/queryable.cjs.map +1 -0
  276. package/dist/dsl/queryable.d.cts +101 -0
  277. package/dist/dsl/queryable.d.ts +101 -0
  278. package/dist/dsl/queryable.es.js +40 -0
  279. package/dist/dsl/queryable.es.js.map +1 -0
  280. package/dist/dsl/sort.cjs +2 -0
  281. package/dist/dsl/sort.cjs.map +1 -0
  282. package/dist/dsl/sort.d.cts +33 -0
  283. package/dist/dsl/sort.d.ts +33 -0
  284. package/dist/dsl/sort.es.js +21 -0
  285. package/dist/dsl/sort.es.js.map +1 -0
  286. package/dist/dsl.cjs +1 -0
  287. package/dist/dsl.d.cts +23 -0
  288. package/dist/dsl.d.ts +23 -0
  289. package/dist/dsl.es.js +14 -0
  290. package/dist/error/errorInfo.cjs +2 -0
  291. package/dist/error/errorInfo.cjs.map +1 -0
  292. package/dist/error/errorInfo.d.cts +139 -0
  293. package/dist/error/errorInfo.d.ts +139 -0
  294. package/dist/error/errorInfo.es.js +32 -0
  295. package/dist/error/errorInfo.es.js.map +1 -0
  296. package/dist/error/headers.cjs +2 -0
  297. package/dist/error/headers.cjs.map +1 -0
  298. package/dist/error/headers.d.cts +38 -0
  299. package/dist/error/headers.d.ts +38 -0
  300. package/dist/error/headers.es.js +10 -0
  301. package/dist/error/headers.es.js.map +1 -0
  302. package/dist/error/index.d.cts +21 -0
  303. package/dist/error/index.d.ts +21 -0
  304. package/dist/error/queryErrorCodes.cjs +2 -0
  305. package/dist/error/queryErrorCodes.cjs.map +1 -0
  306. package/dist/error/queryErrorCodes.d.cts +199 -0
  307. package/dist/error/queryErrorCodes.d.ts +199 -0
  308. package/dist/error/queryErrorCodes.es.js +53 -0
  309. package/dist/error/queryErrorCodes.es.js.map +1 -0
  310. package/dist/error/wowError.cjs +2 -0
  311. package/dist/error/wowError.cjs.map +1 -0
  312. package/dist/error/wowError.d.cts +99 -0
  313. package/dist/error/wowError.d.ts +99 -0
  314. package/dist/error/wowError.es.js +53 -0
  315. package/dist/error/wowError.es.js.map +1 -0
  316. package/dist/index.cjs +1 -0
  317. package/dist/index.d.cts +17 -0
  318. package/dist/index.d.ts +17 -0
  319. package/dist/index.es.js +34 -0
  320. package/dist/legacy/condition.cjs +2 -0
  321. package/dist/legacy/condition.cjs.map +1 -0
  322. package/dist/legacy/condition.d.cts +517 -0
  323. package/dist/legacy/condition.d.ts +517 -0
  324. package/dist/legacy/condition.es.js +338 -0
  325. package/dist/legacy/condition.es.js.map +1 -0
  326. package/dist/legacy/index.d.cts +16 -0
  327. package/dist/legacy/index.d.ts +16 -0
  328. package/dist/legacy/locale/en_US.cjs +2 -0
  329. package/dist/legacy/locale/en_US.cjs.map +1 -0
  330. package/dist/legacy/locale/en_US.d.cts +7 -0
  331. package/dist/legacy/locale/en_US.d.ts +7 -0
  332. package/dist/legacy/locale/en_US.es.js +50 -0
  333. package/dist/legacy/locale/en_US.es.js.map +1 -0
  334. package/dist/legacy/locale/operatorLocale.d.cts +10 -0
  335. package/dist/legacy/locale/operatorLocale.d.ts +10 -0
  336. package/dist/legacy/locale/zh_CN.cjs +2 -0
  337. package/dist/legacy/locale/zh_CN.cjs.map +1 -0
  338. package/dist/legacy/locale/zh_CN.d.cts +7 -0
  339. package/dist/legacy/locale/zh_CN.d.ts +7 -0
  340. package/dist/legacy/locale/zh_CN.es.js +50 -0
  341. package/dist/legacy/locale/zh_CN.es.js.map +1 -0
  342. package/dist/legacy/operator.cjs +2 -0
  343. package/dist/legacy/operator.cjs.map +1 -0
  344. package/dist/legacy/operator.d.cts +218 -0
  345. package/dist/legacy/operator.d.ts +218 -0
  346. package/dist/legacy/operator.es.js +25 -0
  347. package/dist/legacy/operator.es.js.map +1 -0
  348. package/dist/legacy/queryable.cjs +2 -0
  349. package/dist/legacy/queryable.cjs.map +1 -0
  350. package/dist/legacy/queryable.d.cts +61 -0
  351. package/dist/legacy/queryable.d.ts +61 -0
  352. package/dist/legacy/queryable.es.js +34 -0
  353. package/dist/legacy/queryable.es.js.map +1 -0
  354. package/dist/legacy.cjs +1 -0
  355. package/dist/legacy.es.js +6 -0
  356. package/dist/model/abac.cjs +2 -0
  357. package/dist/model/abac.cjs.map +1 -0
  358. package/dist/model/abac.d.cts +33 -0
  359. package/dist/model/abac.d.ts +33 -0
  360. package/dist/model/abac.es.js +6 -0
  361. package/dist/model/abac.es.js.map +1 -0
  362. package/dist/model/bi.cjs +2 -0
  363. package/dist/model/bi.cjs.map +1 -0
  364. package/dist/model/bi.d.cts +12 -0
  365. package/dist/model/bi.d.ts +12 -0
  366. package/dist/model/bi.es.js +8 -0
  367. package/dist/model/bi.es.js.map +1 -0
  368. package/dist/model/command.cjs +2 -0
  369. package/dist/model/command.cjs.map +1 -0
  370. package/dist/model/command.d.cts +137 -0
  371. package/dist/model/command.d.ts +137 -0
  372. package/dist/model/command.es.js +8 -0
  373. package/dist/model/command.es.js.map +1 -0
  374. package/dist/model/common.d.cts +19 -0
  375. package/dist/model/common.d.ts +19 -0
  376. package/dist/model/function.cjs +2 -0
  377. package/dist/model/function.cjs.map +1 -0
  378. package/dist/model/function.d.cts +41 -0
  379. package/dist/model/function.d.ts +41 -0
  380. package/dist/model/function.es.js +8 -0
  381. package/dist/model/function.es.js.map +1 -0
  382. package/dist/model/index.d.cts +22 -0
  383. package/dist/model/index.d.ts +22 -0
  384. package/dist/model/messaging.d.cts +5 -0
  385. package/dist/model/messaging.d.ts +5 -0
  386. package/dist/model/modeling.d.cts +145 -0
  387. package/dist/model/modeling.d.ts +145 -0
  388. package/dist/model/naming.d.cts +27 -0
  389. package/dist/model/naming.d.ts +27 -0
  390. package/dist/transport/endpoints.cjs +2 -0
  391. package/dist/transport/endpoints.cjs.map +1 -0
  392. package/dist/transport/endpoints.d.cts +79 -0
  393. package/dist/transport/endpoints.d.ts +79 -0
  394. package/dist/transport/endpoints.es.js +14 -0
  395. package/dist/transport/endpoints.es.js.map +1 -0
  396. package/dist/transport/eventStreams.cjs +2 -0
  397. package/dist/transport/eventStreams.cjs.map +1 -0
  398. package/dist/transport/eventStreams.d.cts +23 -0
  399. package/dist/transport/eventStreams.d.ts +23 -0
  400. package/dist/transport/eventStreams.es.js +22 -0
  401. package/dist/transport/eventStreams.es.js.map +1 -0
  402. package/dist/transport/index.d.cts +1 -0
  403. package/dist/transport/index.d.ts +1 -0
  404. package/package.json +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventStreamQueryClient.es.js","names":["_decorate","_decorateParam","_decorateMetadata","__decorateMetadata","__decorateParam","__decorate","EventStreamQueryClient","apiMetadata","bindMethods","autoGeneratedError","query","attributes","abort","filter","listQuery","pagedQuery","id","headVersion","tailVersion","post","EventStreamQueryEndpointPaths","body","attribute","QUERY_STREAM_ENDPOINT","get","path","api"],"sources":["../../../../src/client/query/event/eventStreamQueryClient.ts"],"sourcesContent":["/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { EventStreamQueryApi } from './eventStreamQueryApi.js';\nimport { EventStreamQueryEndpointPaths } from './endpointPaths.js';\nimport type { AggregationQuery } from '../../../dsl/aggregation/index.js';\nimport type { FilterExpression } from '../../../dsl/filter/index.js';\nimport type {\n Condition,\n ListQueryRequest,\n PagedQueryRequest,\n} from '../requests.js';\nimport type { PagedList } from '../../../dsl/queryable.js';\nimport type { DomainEventStream } from './domainEventStream.js';\nimport type { DynamicDocument } from '../../../dsl/documents.js';\nimport { QUERY_STREAM_ENDPOINT } from '../../../transport/endpoints.js';\nimport type { CursorPage, CursorQuery } from '../../../dsl/cursorQuery.js';\n\nimport type {\n ApiMetadata,\n ApiMetadataCapable,\n} from '@ahoo-wang/fetcher-decorator';\nimport {\n api,\n attribute,\n autoGeneratedError,\n body,\n get,\n path,\n post,\n} from '@ahoo-wang/fetcher-decorator';\nimport { bindMethods } from '../../bindMethods.js';\n\n/**\n * Client for querying event streams through HTTP endpoints.\n * Implements EventStreamQueryApi to provide methods\n * for querying domain event streams with different query patterns.\n * This client supports counting, listing, streaming, and paging operations on event streams.\n *\n * @example\n * ```typescript\n * // Create client options configuration\n * const clientOptions: ApiMetadata = {\n * fetcher: new Fetcher({ baseURL: 'http://localhost:8080/' }),\n * basePath: 'owner/{ownerId}/cart'\n * };\n *\n * // Create an event stream query client instance\n * const eventStreamQueryClient = new EventStreamQueryClient(clientOptions);\n *\n * // Count event streams\n * const count = await eventStreamQueryClient.count(filter.matchAll());\n *\n * // List event streams\n * const listQuery: FilterListQuery = {\n * filter: filter.matchAll()\n * };\n * const list = await eventStreamQueryClient.list(listQuery);\n *\n * // List event streams as stream\n * const listStream = await eventStreamQueryClient.listStream(listQuery);\n * for await (const domainEventStream of listStream) {\n * console.log('Received:', domainEventStream);\n * }\n *\n * // Paged event streams\n * const pagedQuery: FilterPagedQuery = {\n * filter: filter.matchAll()\n * };\n * const paged = await eventStreamQueryClient.paged(pagedQuery);\n * ```\n */\n@api()\nexport class EventStreamQueryClient<\n DomainEventBody = unknown,\n FIELDS extends string = string,\n>\n implements EventStreamQueryApi<DomainEventBody, FIELDS>, ApiMetadataCapable\n{\n /**\n * Creates a new EventStreamQueryClient instance.\n */\n constructor(public readonly apiMetadata?: ApiMetadata) {\n bindMethods(this);\n }\n\n /** Runs an event stream aggregation and returns all result rows. */\n @post(EventStreamQueryEndpointPaths.AGGREGATION)\n /* v8 ignore start */\n aggregate<\n Row extends object = DynamicDocument,\n AGGREGATION_FIELDS extends string = string,\n >(\n @body() query: AggregationQuery<FIELDS, AGGREGATION_FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<Row[]> {\n throw autoGeneratedError(query, attributes, abort);\n }\n /* v8 ignore stop */\n\n /** Runs an event stream aggregation and streams the result rows, one per server-sent event. */\n @post(EventStreamQueryEndpointPaths.AGGREGATION, QUERY_STREAM_ENDPOINT)\n /* v8 ignore start */\n aggregateStream<\n Row extends object = DynamicDocument,\n AGGREGATION_FIELDS extends string = string,\n >(\n @body() query: AggregationQuery<FIELDS, AGGREGATION_FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<ReadableStream<Row>> {\n throw autoGeneratedError(query, attributes, abort);\n }\n /* v8 ignore stop */\n\n /** Retrieves the next cursor page of domain event streams. */\n @post(EventStreamQueryEndpointPaths.CURSOR)\n /* v8 ignore start */\n cursor<\n T extends Partial<DomainEventStream<DomainEventBody>> =\n DomainEventStream<DomainEventBody>,\n >(\n @body() query: CursorQuery<FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<CursorPage<T>> {\n throw autoGeneratedError(query, attributes, abort);\n }\n /* v8 ignore stop */\n\n /**\n * Counts the number of domain event streams that match the given filter.\n *\n * @param filter - The filter expression or legacy condition\n * @param attributes - Optional shared attributes that can be accessed by interceptors\n * throughout the request lifecycle. These attributes allow passing\n * custom data between different interceptors.\n * @param abort - Cancels the request: an `AbortController`, or an `AbortSignal` such as `AbortSignal.timeout(ms)` or the `signal` a data-fetching library passes.\n * @returns A promise that resolves to the count of matching event streams\n *\n * @example\n * ```typescript\n * const controller = new AbortController();\n * const count = await eventStreamQueryClient.count(filter.matchAll(), undefined, controller);\n * console.log('Total event streams:', count);\n *\n * // Cancel the request if needed\n * controller.abort();\n * ```\n */\n @post(EventStreamQueryEndpointPaths.COUNT)\n /* v8 ignore start */\n count(\n // compat(wow<9): accepts the deprecated Condition, which Wow < 8.11 needs; narrow to FilterExpression in v10.\n @body() filter: FilterExpression<FIELDS> | Condition<FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<number> {\n throw autoGeneratedError(filter, attributes, abort);\n }\n /* v8 ignore stop */\n\n /**\n * Retrieves a list of domain event streams based on the provided query parameters.\n *\n * @param listQuery - The query parameters for listing event streams\n * @param attributes - Optional shared attributes that can be accessed by interceptors\n * throughout the request lifecycle. These attributes allow passing\n * custom data between different interceptors.\n * @param abort - Cancels the request: an `AbortController`, or an `AbortSignal` such as `AbortSignal.timeout(ms)` or the `signal` a data-fetching library passes.\n * @returns A promise that resolves to an array of partial domain event streams\n *\n * @example\n * ```typescript\n * const controller = new AbortController();\n * const listQuery: FilterListQuery = {\n * filter: filter.matchAll()\n * };\n * const list = await eventStreamQueryClient.list(listQuery, undefined, controller);\n * for (const domainEventStream of list) {\n * console.log('Event stream:', domainEventStream);\n * }\n *\n * // Cancel the request if needed\n * controller.abort();\n * ```\n */\n @post(EventStreamQueryEndpointPaths.LIST)\n /* v8 ignore start */\n list<\n T extends Partial<DomainEventStream<DomainEventBody>> =\n DomainEventStream<DomainEventBody>,\n >(\n @body() listQuery: ListQueryRequest<FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<T[]> {\n throw autoGeneratedError(listQuery, attributes, abort);\n }\n /* v8 ignore stop */\n\n /**\n * Retrieves a stream of domain event streams based on the provided query parameters.\n * Sets the Accept header to text/event-stream to indicate that the response should be streamed.\n *\n * @param listQuery - The query parameters for listing event streams\n * @param attributes - Optional shared attributes that can be accessed by interceptors\n * throughout the request lifecycle. These attributes allow passing\n * custom data between different interceptors.\n * @param abort - Cancels the request: an `AbortController`, or an `AbortSignal` such as `AbortSignal.timeout(ms)` or the `signal` a data-fetching library passes.\n * @returns A promise that resolves to a readable stream of partial domain event streams\n *\n * @example\n * ```typescript\n * const controller = new AbortController();\n * const listQuery: FilterListQuery = {\n * filter: filter.matchAll()\n * };\n * const listStream = await eventStreamQueryClient.listStream(listQuery, undefined, controller);\n * for await (const domainEventStream of listStream) {\n * console.log('Received event stream:', domainEventStream);\n * }\n *\n * // Cancel the request if needed\n * controller.abort();\n * ```\n */\n @post(EventStreamQueryEndpointPaths.LIST, QUERY_STREAM_ENDPOINT)\n /* v8 ignore start */\n listStream<\n T extends Partial<DomainEventStream<DomainEventBody>> =\n DomainEventStream<DomainEventBody>,\n >(\n @body() listQuery: ListQueryRequest<FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<ReadableStream<T>> {\n throw autoGeneratedError(listQuery, attributes, abort);\n }\n /* v8 ignore stop */\n\n /**\n * Retrieves a paged list of domain event streams based on the provided query parameters.\n *\n * @param pagedQuery - The query parameters for paging event streams\n * @param attributes - Optional shared attributes that can be accessed by interceptors\n * throughout the request lifecycle. These attributes allow passing\n * custom data between different interceptors.\n * @param abort - Cancels the request: an `AbortController`, or an `AbortSignal` such as `AbortSignal.timeout(ms)` or the `signal` a data-fetching library passes.\n * @returns A promise that resolves to a paged list of partial domain event streams\n *\n * @example\n * ```typescript\n * const controller = new AbortController();\n * const pagedQuery: FilterPagedQuery = {\n * filter: filter.matchAll(),\n * pagination: { index: 1, size: 10 }\n * };\n * const paged = await eventStreamQueryClient.paged(pagedQuery, undefined, controller);\n * console.log('Total:', paged.total);\n * for (const domainEventStream of paged.list) {\n * console.log('Event stream:', domainEventStream);\n * }\n *\n * // Cancel the request if needed\n * controller.abort();\n * ```\n */\n @post(EventStreamQueryEndpointPaths.PAGED)\n /* v8 ignore start */\n paged<\n T extends Partial<DomainEventStream<DomainEventBody>> =\n DomainEventStream<DomainEventBody>,\n >(\n @body() pagedQuery: PagedQueryRequest<FIELDS>,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<PagedList<T>> {\n throw autoGeneratedError(pagedQuery, attributes, abort);\n }\n /* v8 ignore stop */\n\n /**\n * Loads one aggregate's event streams from `headVersion` to `tailVersion`,\n * both inclusive, in version order — how an audit trail or an event\n * sourcing view replays an aggregate. `GET {id}/event/{headVersion}/{tailVersion}`.\n *\n * The server treats the range as a list query: more than its maximum list\n * size (1000 by default) is refused. The route carries a tenant segment by\n * default but no owner segment, like the load-state routes.\n *\n * @param id - The aggregate id\n * @param headVersion - The first version, from 1\n * @param tailVersion - The last version\n * @param attributes - Optional shared attributes for the interceptors\n * @param abort - Cancels the request: an `AbortController`, or an `AbortSignal` such as `AbortSignal.timeout(ms)` or the `signal` a data-fetching library passes.\n * @returns The event streams of versions `headVersion` to `tailVersion`\n *\n * @example\n * ```typescript\n * const firstTen = await eventStreamQueryClient.load(cartId, 1, 10);\n * ```\n */\n @get(EventStreamQueryEndpointPaths.LOAD)\n /* v8 ignore start */\n load<\n T extends Partial<DomainEventStream<DomainEventBody>> =\n DomainEventStream<DomainEventBody>,\n >(\n @path('id') id: string,\n @path('headVersion') headVersion: number,\n @path('tailVersion') tailVersion: number,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<T[]> {\n throw autoGeneratedError(id, headVersion, tailVersion, attributes, abort);\n }\n /* v8 ignore stop */\n\n /**\n * {@link load} as a stream, one event stream per server-sent event.\n * The stream errors with a `WowError` if the server fails midway.\n */\n @get(EventStreamQueryEndpointPaths.LOAD, QUERY_STREAM_ENDPOINT)\n /* v8 ignore start */\n loadStream<\n T extends Partial<DomainEventStream<DomainEventBody>> =\n DomainEventStream<DomainEventBody>,\n >(\n @path('id') id: string,\n @path('headVersion') headVersion: number,\n @path('tailVersion') tailVersion: number,\n @attribute() attributes?: Record<string, unknown>,\n abort?: AbortController | AbortSignal,\n ): Promise<ReadableStream<T>> {\n throw autoGeneratedError(id, headVersion, tailVersion, attributes, abort);\n }\n /* v8 ignore stop */\n}\n"],"mappings":";;;;;;;;AAmFO,IAAMM,IAAN,MAKP;CAIE,YAAY,GAA2C;EACrD,AAD0B,KAAA,cAAAC,GAC1BC,EAAY,IAAI;CAClB;CAGA,UAME,GACA,GACA,GACgB;EAChB,MAAMC,EAAmBC,GAAOC,GAAYC,CAAK;CACnD;;CAIA,gBAME,GACA,GACA,GAC8B;EAC9B,MAAMH,EAAmBC,GAAOC,GAAYC,CAAK;CACnD;;CAIA,OAME,GACA,GACA,GACwB;EACxB,MAAMH,EAAmBC,GAAOC,GAAYC,CAAK;CACnD;;CAuBA,MAIE,GACA,GACA,GACiB;EACjB,MAAMH,EAAmBI,GAAQF,GAAYC,CAAK;CACpD;;CA4BA,KAME,GACA,GACA,GACc;EACd,MAAMH,EAAmBK,GAAWH,GAAYC,CAAK;CACvD;;CA6BA,WAME,GACA,GACA,GAC4B;EAC5B,MAAMH,EAAmBK,GAAWH,GAAYC,CAAK;CACvD;;CA8BA,MAME,GACA,GACA,GACuB;EACvB,MAAMH,EAAmBM,GAAYJ,GAAYC,CAAK;CACxD;;CAwBA,KAME,GACA,GACA,GACA,GACA,GACc;EACd,MAAMH,EAAmBO,GAAIC,GAAaC,GAAaP,GAAYC,CAAK;CAC1E;;CAOA,WAME,GACA,GACA,GACA,GACA,GAC4B;EAC5B,MAAMH,EAAmBO,GAAIC,GAAaC,GAAaP,GAAYC,CAAK;CAC1E;AAEF;;CA5PGO,EAAKC,EAA8B,WAAW;CAM5CnB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CAQZH,EAAKC,EAA8B,aAAaG,CAAqB;CAMnEtB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CAQZH,EAAKC,EAA8B,MAAM;CAMvCnB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CA2BZH,EAAKC,EAA8B,KAAK;CAItCnB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CAgCZH,EAAKC,EAA8B,IAAI;CAMrCnB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CAiCZH,EAAKC,EAA8B,MAAMG,CAAqB;CAM5DtB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CAkCZH,EAAKC,EAA8B,KAAK;CAMtCnB,EAAA,GAAAoB,EAAK,CAAA;CACLpB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;CA4BZE,EAAIJ,EAA8B,IAAI;CAMpCnB,EAAA,GAAAwB,EAAK,IAAI,CAAA;CACTxB,EAAA,GAAAwB,EAAK,aAAa,CAAA;CAClBxB,EAAA,GAAAwB,EAAK,aAAa,CAAA;CAClBxB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;;;CAWZE,EAAIJ,EAA8B,MAAMG,CAAqB;CAM3DtB,EAAA,GAAAwB,EAAK,IAAI,CAAA;CACTxB,EAAA,GAAAwB,EAAK,aAAa,CAAA;CAClBxB,EAAA,GAAAwB,EAAK,aAAa,CAAA;CAClBxB,EAAA,GAAAqB,EAAU,CAAA;;;;;;;;;;qCArQd,IAAAtB,EAAA,CAAA0B,EAAI,GAAAxB,EAAA,qBAAA,CAAA,MAAA,CAAA,CAAA,GAAAI,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './domainEventStream.cjs';
2
+ export * from './eventStreamQueryApi.cjs';
3
+ export * from './eventStreamQueryClient.cjs';
@@ -0,0 +1,3 @@
1
+ export * from './domainEventStream.js';
2
+ export * from './eventStreamQueryApi.js';
3
+ export * from './eventStreamQueryClient.js';
@@ -0,0 +1,2 @@
1
+ const e=require("./event/eventStreamQueryClient.cjs"),t=require("./snapshot/snapshotQueryClient.cjs"),n=require("./state/loadStateAggregateClient.cjs"),r=require("./state/loadOwnerStateAggregateClient.cjs"),i=require("./descriptor/queryDescriptorClient.cjs");let a=require("@ahoo-wang/fetcher");function o(e,t,n=!0){let{contextAlias:r,resourceAttribution:i,aggregateName:a,...o}={...e,...t};return{...o,basePath:t?.basePath??e.basePath??s(r,n?i:void 0,a)}}function s(e,t,n){let r=(0,a.combineURLs)(t??``,n??``);return e?(0,a.combineURLs)(e,r):r}var c=class{constructor(e){this.defaultOptions=e}createSnapshotQueryClient(e){return new t.SnapshotQueryClient(o(this.defaultOptions,e))}createLoadStateAggregateClient(e){return new n.LoadStateAggregateClient(o(this.defaultOptions,e))}createLoadOwnerStateAggregateClient(e){return new r.LoadOwnerStateAggregateClient(o(this.defaultOptions,e))}createEventStreamQueryClient(t){return new e.EventStreamQueryClient(o(this.defaultOptions,t))}createQueryDescriptorClient(e){return new i.QueryDescriptorClient(o(this.defaultOptions,e,!1))}};exports.QueryClientFactory=c;
2
+ //# sourceMappingURL=factory.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.cjs","names":["combineURLs","SnapshotQueryClient","LoadStateAggregateClient","LoadOwnerStateAggregateClient","EventStreamQueryClient","QueryDescriptorClient","require_eventStreamQueryClient","require_snapshotQueryClient","require_loadStateAggregateClient","require_loadOwnerStateAggregateClient","require_queryDescriptorClient","_ahoo_wang_fetcher","queryApiMetadata","apiMetadata","defaults","options","routePath","contextAlias","attributed","resourceAttribution","aggregateName","path","QueryClientFactory","defaultOptions"],"sources":["../../../src/client/query/factory.ts"],"sourcesContent":["/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PartialBy } from '@ahoo-wang/fetcher';\nimport { combineURLs } from '@ahoo-wang/fetcher';\nimport type { ApiMetadata } from '@ahoo-wang/fetcher-decorator';\nimport type {\n AggregateNameCapable,\n AliasBoundedContext,\n} from '../../model/index.js';\nimport type { ResourceAttributionPathSpec } from '../routing.js';\nimport { SnapshotQueryClient } from './snapshot/index.js';\nimport { EventStreamQueryClient } from './event/index.js';\nimport { LoadStateAggregateClient } from './state/index.js';\nimport { LoadOwnerStateAggregateClient } from './state/index.js';\nimport { QueryDescriptorClient } from './descriptor/index.js';\n\n/**\n * Configuration options for query clients: the client's `ApiMetadata`\n * (`fetcher`, `headers`, `urlParams`, …, with `basePath` optional), plus\n * three keys only {@link QueryClientFactory} reads to build the base path:\n * `contextAlias`, `resourceAttribution` and `aggregateName`.\n *\n * The base path is `basePath` when one is given, and then the three keys\n * are not used. Otherwise it is\n * `{contextAlias}{resourceAttribution}/{aggregateName}`, each part left out\n * when absent. The three keys are not passed on to the client.\n */\nexport interface QueryClientOptions\n extends\n PartialBy<ApiMetadata, 'basePath'>,\n Partial<AliasBoundedContext>,\n Partial<AggregateNameCapable> {\n contextAlias?: string;\n resourceAttribution?: ResourceAttributionPathSpec;\n}\n\n/**\n * The `ApiMetadata` a factory gives a client: `options` over the factory's\n * `defaults`, the base path resolved, and the keys only the factory reads\n * left out. `attributed: false` leaves the resource attribution out of the\n * base path, for routes that have no tenant or owner segment.\n */\nfunction queryApiMetadata(\n defaults: QueryClientOptions,\n options?: QueryClientOptions,\n attributed = true,\n): ApiMetadata {\n const { contextAlias, resourceAttribution, aggregateName, ...apiMetadata } = {\n ...defaults,\n ...options,\n };\n return {\n ...apiMetadata,\n basePath:\n options?.basePath ??\n defaults.basePath ??\n routePath(\n contextAlias,\n attributed ? resourceAttribution : undefined,\n aggregateName,\n ),\n };\n}\n\n/** `{contextAlias}{resourceAttribution}/{aggregateName}`. */\nfunction routePath(\n contextAlias: string | undefined,\n resourceAttribution: ResourceAttributionPathSpec | undefined,\n aggregateName: string | undefined,\n): string {\n const path = combineURLs(resourceAttribution ?? '', aggregateName ?? '');\n return contextAlias ? combineURLs(contextAlias, path) : path;\n}\n\n/**\n * Creates the query clients of one aggregate from shared defaults: its\n * snapshot, event stream, load-state and query descriptor clients. Each `create*` call may\n * override the defaults; see {@link QueryClientOptions} for how the base path\n * is built. Generated code creates one factory per aggregate.\n *\n * @template S - The type of the aggregate state\n * @template FIELDS - The field paths snapshot queries may name\n * @template DomainEventBody - The type of the aggregate's event bodies\n */\nexport class QueryClientFactory<\n S,\n FIELDS extends string = string,\n DomainEventBody = unknown,\n> {\n /**\n * Creates a new QueryClientFactory instance with the specified default options.\n *\n * @param defaultOptions - The default options to be used for all query clients created by this factory\n *\n * @example\n * ```typescript\n * import { QueryClientFactory, ResourceAttributionPathSpec } from '@ahoo-wang/wow-client';\n *\n * const factory = new QueryClientFactory({\n * contextAlias: 'example',\n * aggregateName: 'cart',\n * resourceAttribution: ResourceAttributionPathSpec.OWNER,\n * });\n * ```\n */\n constructor(private readonly defaultOptions: QueryClientOptions) {}\n\n /**\n * Creates a snapshot query client for querying aggregate snapshots.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates a SnapshotQueryClient.\n *\n * @param options - The query client options used to configure the snapshot query client\n * @returns A new instance of SnapshotQueryClient\n *\n * @example\n * ```typescript\n * const snapshotClient = factory.createSnapshotQueryClient({\n * aggregateName: 'cart',\n * });\n *\n * const cartState = await snapshotClient.singleState(singleQuery());\n * ```\n */\n createSnapshotQueryClient(\n options?: QueryClientOptions,\n ): SnapshotQueryClient<S, FIELDS> {\n return new SnapshotQueryClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates a client for loading aggregate state by ID.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates a LoadStateAggregateClient.\n * The client supports loading current state, versioned state, and time-based state.\n *\n * @param options - The query client options used to configure the state aggregate client\n * @returns A new instance of LoadStateAggregateClient\n *\n * @example\n * ```typescript\n * const stateClient = factory.createLoadStateAggregateClient({\n * aggregateName: 'cart',\n * });\n *\n * // Load current state\n * const currentState = await stateClient.load('cart-123');\n *\n * // Load specific version\n * const versionedState = await stateClient.loadVersioned('cart-123', 5);\n *\n * // Load state at specific time\n * const timeBasedState = await stateClient.loadTimeBased('cart-123', Date.now());\n * ```\n */\n createLoadStateAggregateClient(\n options?: QueryClientOptions,\n ): LoadStateAggregateClient<S> {\n return new LoadStateAggregateClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates a client for loading owner-specific aggregate state.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates a LoadOwnerStateAggregateClient.\n * Unlike the standard state client, this client loads state for the current owner\n * without requiring an explicit ID parameter.\n *\n * @param options - The query client options used to configure the owner state aggregate client\n * @returns A new instance of LoadOwnerStateAggregateClient\n *\n * @example\n * ```typescript\n * const ownerStateClient = factory.createLoadOwnerStateAggregateClient({\n * aggregateName: 'cart',\n * resourceAttribution: ResourceAttributionPathSpec.OWNER,\n * });\n *\n * // Load current owner's state\n * const currentState = await ownerStateClient.load();\n *\n * // Load specific version of owner's state\n * const versionedState = await ownerStateClient.loadVersioned(5);\n *\n * // Load owner's state at specific time\n * const timeBasedState = await ownerStateClient.loadTimeBased(Date.now());\n * ```\n */\n createLoadOwnerStateAggregateClient(\n options?: QueryClientOptions,\n ): LoadOwnerStateAggregateClient<S> {\n return new LoadOwnerStateAggregateClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates an event stream query client for querying domain event streams.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates an EventStreamQueryClient.\n *\n * @param options - The query client options used to configure the event stream query client\n * @returns A new instance of EventStreamQueryClient\n *\n * @example\n * ```typescript\n * const eventClient = factory.createEventStreamQueryClient({\n * aggregateName: 'cart',\n * });\n *\n * const events = await eventClient.list(listQuery());\n * ```\n */\n createEventStreamQueryClient<EVENT_FIELDS extends string = string>(\n options?: QueryClientOptions,\n ): EventStreamQueryClient<DomainEventBody, EVENT_FIELDS> {\n return new EventStreamQueryClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates a client that reads the aggregate's query capability\n * descriptors (`{aggregate}/snapshot/schema`, `{aggregate}/event/schema`).\n *\n * Its base path is `basePath` when one is given, as for the other clients;\n * otherwise `{contextAlias}/{aggregateName}` without the\n * `resourceAttribution`: the schema routes have no tenant or owner segment.\n *\n * @param options - Overrides the factory's defaults, as for the other clients\n * @returns A new instance of QueryDescriptorClient\n *\n * @example\n * ```typescript\n * const descriptors = factory.createQueryDescriptorClient();\n * const snapshot = await descriptors.describeSnapshot();\n * ```\n */\n createQueryDescriptorClient(\n options?: QueryClientOptions,\n ): QueryDescriptorClient {\n return new QueryDescriptorClient(\n queryApiMetadata(this.defaultOptions, options, false),\n );\n }\n}\n"],"mappings":"uSAqDA,SAASY,EACP,EACA,EACA,EAAa,GACA,CACb,GAAM,CAAE,eAAc,sBAAqB,gBAAe,GAAGC,GAAgB,CAC3E,GAAGC,EACH,GAAGC,CACL,EACA,MAAO,CACL,GAAGF,EACH,SACEE,GAAS,UACTD,EAAS,UACTE,EACEC,EACAC,EAAaC,EAAsB,IAAA,GACnCC,CACF,CACJ,CACF,CAGA,SAASJ,EACP,EACA,EACA,EACQ,CACR,IAAMK,GAAA,EAAOrB,EAAAA,YAAAA,CAAYmB,GAAuB,GAAIC,GAAiB,EAAE,EACvE,OAAOH,GAAA,EAAejB,EAAAA,YAAAA,CAAYiB,EAAcI,CAAI,EAAIA,CAC1D,CAYA,IAAaC,EAAb,KAIE,CAiBA,YAAY,EAAqD,CAApC,KAAA,eAAAC,CAAqC,CAoBlE,0BACE,EACgC,CAChC,OAAO,IAAItB,EAAAA,oBACTW,EAAiB,KAAK,eAAgBG,CAAO,CAC/C,CACF,CA4BA,+BACE,EAC6B,CAC7B,OAAO,IAAIb,EAAAA,yBACTU,EAAiB,KAAK,eAAgBG,CAAO,CAC/C,CACF,CA8BA,oCACE,EACkC,CAClC,OAAO,IAAIZ,EAAAA,8BACTS,EAAiB,KAAK,eAAgBG,CAAO,CAC/C,CACF,CAoBA,6BACE,EACuD,CACvD,OAAO,IAAIX,EAAAA,uBACTQ,EAAiB,KAAK,eAAgBG,CAAO,CAC/C,CACF,CAmBA,4BACE,EACuB,CACvB,OAAO,IAAIV,EAAAA,sBACTO,EAAiB,KAAK,eAAgBG,EAAS,EAAK,CACtD,CACF,CACF"}
@@ -0,0 +1,165 @@
1
+ import { PartialBy } from '@ahoo-wang/fetcher';
2
+ import { ApiMetadata } from '@ahoo-wang/fetcher-decorator';
3
+ import { AggregateNameCapable, AliasBoundedContext } from '../../model/index.cjs';
4
+ import { ResourceAttributionPathSpec } from '../routing.cjs';
5
+ import { SnapshotQueryClient } from './snapshot/index.cjs';
6
+ import { EventStreamQueryClient } from './event/index.cjs';
7
+ import { LoadStateAggregateClient, LoadOwnerStateAggregateClient } from './state/index.cjs';
8
+ import { QueryDescriptorClient } from './descriptor/index.cjs';
9
+ /**
10
+ * Configuration options for query clients: the client's `ApiMetadata`
11
+ * (`fetcher`, `headers`, `urlParams`, …, with `basePath` optional), plus
12
+ * three keys only {@link QueryClientFactory} reads to build the base path:
13
+ * `contextAlias`, `resourceAttribution` and `aggregateName`.
14
+ *
15
+ * The base path is `basePath` when one is given, and then the three keys
16
+ * are not used. Otherwise it is
17
+ * `{contextAlias}{resourceAttribution}/{aggregateName}`, each part left out
18
+ * when absent. The three keys are not passed on to the client.
19
+ */
20
+ export interface QueryClientOptions extends PartialBy<ApiMetadata, 'basePath'>, Partial<AliasBoundedContext>, Partial<AggregateNameCapable> {
21
+ contextAlias?: string;
22
+ resourceAttribution?: ResourceAttributionPathSpec;
23
+ }
24
+ /**
25
+ * Creates the query clients of one aggregate from shared defaults: its
26
+ * snapshot, event stream, load-state and query descriptor clients. Each `create*` call may
27
+ * override the defaults; see {@link QueryClientOptions} for how the base path
28
+ * is built. Generated code creates one factory per aggregate.
29
+ *
30
+ * @template S - The type of the aggregate state
31
+ * @template FIELDS - The field paths snapshot queries may name
32
+ * @template DomainEventBody - The type of the aggregate's event bodies
33
+ */
34
+ export declare class QueryClientFactory<S, FIELDS extends string = string, DomainEventBody = unknown> {
35
+ private readonly defaultOptions;
36
+ /**
37
+ * Creates a new QueryClientFactory instance with the specified default options.
38
+ *
39
+ * @param defaultOptions - The default options to be used for all query clients created by this factory
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * import { QueryClientFactory, ResourceAttributionPathSpec } from '@ahoo-wang/wow-client';
44
+ *
45
+ * const factory = new QueryClientFactory({
46
+ * contextAlias: 'example',
47
+ * aggregateName: 'cart',
48
+ * resourceAttribution: ResourceAttributionPathSpec.OWNER,
49
+ * });
50
+ * ```
51
+ */
52
+ constructor(defaultOptions: QueryClientOptions);
53
+ /**
54
+ * Creates a snapshot query client for querying aggregate snapshots.
55
+ *
56
+ * This method merges the provided options with the factory's default options,
57
+ * then creates API metadata and instantiates a SnapshotQueryClient.
58
+ *
59
+ * @param options - The query client options used to configure the snapshot query client
60
+ * @returns A new instance of SnapshotQueryClient
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const snapshotClient = factory.createSnapshotQueryClient({
65
+ * aggregateName: 'cart',
66
+ * });
67
+ *
68
+ * const cartState = await snapshotClient.singleState(singleQuery());
69
+ * ```
70
+ */
71
+ createSnapshotQueryClient(options?: QueryClientOptions): SnapshotQueryClient<S, FIELDS>;
72
+ /**
73
+ * Creates a client for loading aggregate state by ID.
74
+ *
75
+ * This method merges the provided options with the factory's default options,
76
+ * then creates API metadata and instantiates a LoadStateAggregateClient.
77
+ * The client supports loading current state, versioned state, and time-based state.
78
+ *
79
+ * @param options - The query client options used to configure the state aggregate client
80
+ * @returns A new instance of LoadStateAggregateClient
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const stateClient = factory.createLoadStateAggregateClient({
85
+ * aggregateName: 'cart',
86
+ * });
87
+ *
88
+ * // Load current state
89
+ * const currentState = await stateClient.load('cart-123');
90
+ *
91
+ * // Load specific version
92
+ * const versionedState = await stateClient.loadVersioned('cart-123', 5);
93
+ *
94
+ * // Load state at specific time
95
+ * const timeBasedState = await stateClient.loadTimeBased('cart-123', Date.now());
96
+ * ```
97
+ */
98
+ createLoadStateAggregateClient(options?: QueryClientOptions): LoadStateAggregateClient<S>;
99
+ /**
100
+ * Creates a client for loading owner-specific aggregate state.
101
+ *
102
+ * This method merges the provided options with the factory's default options,
103
+ * then creates API metadata and instantiates a LoadOwnerStateAggregateClient.
104
+ * Unlike the standard state client, this client loads state for the current owner
105
+ * without requiring an explicit ID parameter.
106
+ *
107
+ * @param options - The query client options used to configure the owner state aggregate client
108
+ * @returns A new instance of LoadOwnerStateAggregateClient
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const ownerStateClient = factory.createLoadOwnerStateAggregateClient({
113
+ * aggregateName: 'cart',
114
+ * resourceAttribution: ResourceAttributionPathSpec.OWNER,
115
+ * });
116
+ *
117
+ * // Load current owner's state
118
+ * const currentState = await ownerStateClient.load();
119
+ *
120
+ * // Load specific version of owner's state
121
+ * const versionedState = await ownerStateClient.loadVersioned(5);
122
+ *
123
+ * // Load owner's state at specific time
124
+ * const timeBasedState = await ownerStateClient.loadTimeBased(Date.now());
125
+ * ```
126
+ */
127
+ createLoadOwnerStateAggregateClient(options?: QueryClientOptions): LoadOwnerStateAggregateClient<S>;
128
+ /**
129
+ * Creates an event stream query client for querying domain event streams.
130
+ *
131
+ * This method merges the provided options with the factory's default options,
132
+ * then creates API metadata and instantiates an EventStreamQueryClient.
133
+ *
134
+ * @param options - The query client options used to configure the event stream query client
135
+ * @returns A new instance of EventStreamQueryClient
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const eventClient = factory.createEventStreamQueryClient({
140
+ * aggregateName: 'cart',
141
+ * });
142
+ *
143
+ * const events = await eventClient.list(listQuery());
144
+ * ```
145
+ */
146
+ createEventStreamQueryClient<EVENT_FIELDS extends string = string>(options?: QueryClientOptions): EventStreamQueryClient<DomainEventBody, EVENT_FIELDS>;
147
+ /**
148
+ * Creates a client that reads the aggregate's query capability
149
+ * descriptors (`{aggregate}/snapshot/schema`, `{aggregate}/event/schema`).
150
+ *
151
+ * Its base path is `basePath` when one is given, as for the other clients;
152
+ * otherwise `{contextAlias}/{aggregateName}` without the
153
+ * `resourceAttribution`: the schema routes have no tenant or owner segment.
154
+ *
155
+ * @param options - Overrides the factory's defaults, as for the other clients
156
+ * @returns A new instance of QueryDescriptorClient
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const descriptors = factory.createQueryDescriptorClient();
161
+ * const snapshot = await descriptors.describeSnapshot();
162
+ * ```
163
+ */
164
+ createQueryDescriptorClient(options?: QueryClientOptions): QueryDescriptorClient;
165
+ }
@@ -0,0 +1,165 @@
1
+ import { PartialBy } from '@ahoo-wang/fetcher';
2
+ import { ApiMetadata } from '@ahoo-wang/fetcher-decorator';
3
+ import { AggregateNameCapable, AliasBoundedContext } from '../../model/index.js';
4
+ import { ResourceAttributionPathSpec } from '../routing.js';
5
+ import { SnapshotQueryClient } from './snapshot/index.js';
6
+ import { EventStreamQueryClient } from './event/index.js';
7
+ import { LoadStateAggregateClient, LoadOwnerStateAggregateClient } from './state/index.js';
8
+ import { QueryDescriptorClient } from './descriptor/index.js';
9
+ /**
10
+ * Configuration options for query clients: the client's `ApiMetadata`
11
+ * (`fetcher`, `headers`, `urlParams`, …, with `basePath` optional), plus
12
+ * three keys only {@link QueryClientFactory} reads to build the base path:
13
+ * `contextAlias`, `resourceAttribution` and `aggregateName`.
14
+ *
15
+ * The base path is `basePath` when one is given, and then the three keys
16
+ * are not used. Otherwise it is
17
+ * `{contextAlias}{resourceAttribution}/{aggregateName}`, each part left out
18
+ * when absent. The three keys are not passed on to the client.
19
+ */
20
+ export interface QueryClientOptions extends PartialBy<ApiMetadata, 'basePath'>, Partial<AliasBoundedContext>, Partial<AggregateNameCapable> {
21
+ contextAlias?: string;
22
+ resourceAttribution?: ResourceAttributionPathSpec;
23
+ }
24
+ /**
25
+ * Creates the query clients of one aggregate from shared defaults: its
26
+ * snapshot, event stream, load-state and query descriptor clients. Each `create*` call may
27
+ * override the defaults; see {@link QueryClientOptions} for how the base path
28
+ * is built. Generated code creates one factory per aggregate.
29
+ *
30
+ * @template S - The type of the aggregate state
31
+ * @template FIELDS - The field paths snapshot queries may name
32
+ * @template DomainEventBody - The type of the aggregate's event bodies
33
+ */
34
+ export declare class QueryClientFactory<S, FIELDS extends string = string, DomainEventBody = unknown> {
35
+ private readonly defaultOptions;
36
+ /**
37
+ * Creates a new QueryClientFactory instance with the specified default options.
38
+ *
39
+ * @param defaultOptions - The default options to be used for all query clients created by this factory
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * import { QueryClientFactory, ResourceAttributionPathSpec } from '@ahoo-wang/wow-client';
44
+ *
45
+ * const factory = new QueryClientFactory({
46
+ * contextAlias: 'example',
47
+ * aggregateName: 'cart',
48
+ * resourceAttribution: ResourceAttributionPathSpec.OWNER,
49
+ * });
50
+ * ```
51
+ */
52
+ constructor(defaultOptions: QueryClientOptions);
53
+ /**
54
+ * Creates a snapshot query client for querying aggregate snapshots.
55
+ *
56
+ * This method merges the provided options with the factory's default options,
57
+ * then creates API metadata and instantiates a SnapshotQueryClient.
58
+ *
59
+ * @param options - The query client options used to configure the snapshot query client
60
+ * @returns A new instance of SnapshotQueryClient
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const snapshotClient = factory.createSnapshotQueryClient({
65
+ * aggregateName: 'cart',
66
+ * });
67
+ *
68
+ * const cartState = await snapshotClient.singleState(singleQuery());
69
+ * ```
70
+ */
71
+ createSnapshotQueryClient(options?: QueryClientOptions): SnapshotQueryClient<S, FIELDS>;
72
+ /**
73
+ * Creates a client for loading aggregate state by ID.
74
+ *
75
+ * This method merges the provided options with the factory's default options,
76
+ * then creates API metadata and instantiates a LoadStateAggregateClient.
77
+ * The client supports loading current state, versioned state, and time-based state.
78
+ *
79
+ * @param options - The query client options used to configure the state aggregate client
80
+ * @returns A new instance of LoadStateAggregateClient
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const stateClient = factory.createLoadStateAggregateClient({
85
+ * aggregateName: 'cart',
86
+ * });
87
+ *
88
+ * // Load current state
89
+ * const currentState = await stateClient.load('cart-123');
90
+ *
91
+ * // Load specific version
92
+ * const versionedState = await stateClient.loadVersioned('cart-123', 5);
93
+ *
94
+ * // Load state at specific time
95
+ * const timeBasedState = await stateClient.loadTimeBased('cart-123', Date.now());
96
+ * ```
97
+ */
98
+ createLoadStateAggregateClient(options?: QueryClientOptions): LoadStateAggregateClient<S>;
99
+ /**
100
+ * Creates a client for loading owner-specific aggregate state.
101
+ *
102
+ * This method merges the provided options with the factory's default options,
103
+ * then creates API metadata and instantiates a LoadOwnerStateAggregateClient.
104
+ * Unlike the standard state client, this client loads state for the current owner
105
+ * without requiring an explicit ID parameter.
106
+ *
107
+ * @param options - The query client options used to configure the owner state aggregate client
108
+ * @returns A new instance of LoadOwnerStateAggregateClient
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const ownerStateClient = factory.createLoadOwnerStateAggregateClient({
113
+ * aggregateName: 'cart',
114
+ * resourceAttribution: ResourceAttributionPathSpec.OWNER,
115
+ * });
116
+ *
117
+ * // Load current owner's state
118
+ * const currentState = await ownerStateClient.load();
119
+ *
120
+ * // Load specific version of owner's state
121
+ * const versionedState = await ownerStateClient.loadVersioned(5);
122
+ *
123
+ * // Load owner's state at specific time
124
+ * const timeBasedState = await ownerStateClient.loadTimeBased(Date.now());
125
+ * ```
126
+ */
127
+ createLoadOwnerStateAggregateClient(options?: QueryClientOptions): LoadOwnerStateAggregateClient<S>;
128
+ /**
129
+ * Creates an event stream query client for querying domain event streams.
130
+ *
131
+ * This method merges the provided options with the factory's default options,
132
+ * then creates API metadata and instantiates an EventStreamQueryClient.
133
+ *
134
+ * @param options - The query client options used to configure the event stream query client
135
+ * @returns A new instance of EventStreamQueryClient
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const eventClient = factory.createEventStreamQueryClient({
140
+ * aggregateName: 'cart',
141
+ * });
142
+ *
143
+ * const events = await eventClient.list(listQuery());
144
+ * ```
145
+ */
146
+ createEventStreamQueryClient<EVENT_FIELDS extends string = string>(options?: QueryClientOptions): EventStreamQueryClient<DomainEventBody, EVENT_FIELDS>;
147
+ /**
148
+ * Creates a client that reads the aggregate's query capability
149
+ * descriptors (`{aggregate}/snapshot/schema`, `{aggregate}/event/schema`).
150
+ *
151
+ * Its base path is `basePath` when one is given, as for the other clients;
152
+ * otherwise `{contextAlias}/{aggregateName}` without the
153
+ * `resourceAttribution`: the schema routes have no tenant or owner segment.
154
+ *
155
+ * @param options - Overrides the factory's defaults, as for the other clients
156
+ * @returns A new instance of QueryDescriptorClient
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * const descriptors = factory.createQueryDescriptorClient();
161
+ * const snapshot = await descriptors.describeSnapshot();
162
+ * ```
163
+ */
164
+ createQueryDescriptorClient(options?: QueryClientOptions): QueryDescriptorClient;
165
+ }
@@ -0,0 +1,45 @@
1
+ import { EventStreamQueryClient as e } from "./event/eventStreamQueryClient.es.js";
2
+ import { SnapshotQueryClient as t } from "./snapshot/snapshotQueryClient.es.js";
3
+ import { LoadStateAggregateClient as n } from "./state/loadStateAggregateClient.es.js";
4
+ import { LoadOwnerStateAggregateClient as r } from "./state/loadOwnerStateAggregateClient.es.js";
5
+ import { QueryDescriptorClient as i } from "./descriptor/queryDescriptorClient.es.js";
6
+ import { combineURLs as a } from "@ahoo-wang/fetcher";
7
+ //#region src/client/query/factory.ts
8
+ function o(e, t, n = !0) {
9
+ let { contextAlias: r, resourceAttribution: i, aggregateName: a, ...o } = {
10
+ ...e,
11
+ ...t
12
+ };
13
+ return {
14
+ ...o,
15
+ basePath: t?.basePath ?? e.basePath ?? s(r, n ? i : void 0, a)
16
+ };
17
+ }
18
+ function s(e, t, n) {
19
+ let r = a(t ?? "", n ?? "");
20
+ return e ? a(e, r) : r;
21
+ }
22
+ var c = class {
23
+ constructor(e) {
24
+ this.defaultOptions = e;
25
+ }
26
+ createSnapshotQueryClient(e) {
27
+ return new t(o(this.defaultOptions, e));
28
+ }
29
+ createLoadStateAggregateClient(e) {
30
+ return new n(o(this.defaultOptions, e));
31
+ }
32
+ createLoadOwnerStateAggregateClient(e) {
33
+ return new r(o(this.defaultOptions, e));
34
+ }
35
+ createEventStreamQueryClient(t) {
36
+ return new e(o(this.defaultOptions, t));
37
+ }
38
+ createQueryDescriptorClient(e) {
39
+ return new i(o(this.defaultOptions, e, !1));
40
+ }
41
+ };
42
+ //#endregion
43
+ export { c as QueryClientFactory };
44
+
45
+ //# sourceMappingURL=factory.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.es.js","names":["queryApiMetadata","apiMetadata","defaults","options","routePath","contextAlias","attributed","resourceAttribution","aggregateName","path","combineURLs","QueryClientFactory","defaultOptions","SnapshotQueryClient","LoadStateAggregateClient","LoadOwnerStateAggregateClient","EventStreamQueryClient","QueryDescriptorClient"],"sources":["../../../src/client/query/factory.ts"],"sourcesContent":["/*\n * Copyright [2021-present] [ahoo wang <ahoowang@qq.com> (https://github.com/Ahoo-Wang)].\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PartialBy } from '@ahoo-wang/fetcher';\nimport { combineURLs } from '@ahoo-wang/fetcher';\nimport type { ApiMetadata } from '@ahoo-wang/fetcher-decorator';\nimport type {\n AggregateNameCapable,\n AliasBoundedContext,\n} from '../../model/index.js';\nimport type { ResourceAttributionPathSpec } from '../routing.js';\nimport { SnapshotQueryClient } from './snapshot/index.js';\nimport { EventStreamQueryClient } from './event/index.js';\nimport { LoadStateAggregateClient } from './state/index.js';\nimport { LoadOwnerStateAggregateClient } from './state/index.js';\nimport { QueryDescriptorClient } from './descriptor/index.js';\n\n/**\n * Configuration options for query clients: the client's `ApiMetadata`\n * (`fetcher`, `headers`, `urlParams`, …, with `basePath` optional), plus\n * three keys only {@link QueryClientFactory} reads to build the base path:\n * `contextAlias`, `resourceAttribution` and `aggregateName`.\n *\n * The base path is `basePath` when one is given, and then the three keys\n * are not used. Otherwise it is\n * `{contextAlias}{resourceAttribution}/{aggregateName}`, each part left out\n * when absent. The three keys are not passed on to the client.\n */\nexport interface QueryClientOptions\n extends\n PartialBy<ApiMetadata, 'basePath'>,\n Partial<AliasBoundedContext>,\n Partial<AggregateNameCapable> {\n contextAlias?: string;\n resourceAttribution?: ResourceAttributionPathSpec;\n}\n\n/**\n * The `ApiMetadata` a factory gives a client: `options` over the factory's\n * `defaults`, the base path resolved, and the keys only the factory reads\n * left out. `attributed: false` leaves the resource attribution out of the\n * base path, for routes that have no tenant or owner segment.\n */\nfunction queryApiMetadata(\n defaults: QueryClientOptions,\n options?: QueryClientOptions,\n attributed = true,\n): ApiMetadata {\n const { contextAlias, resourceAttribution, aggregateName, ...apiMetadata } = {\n ...defaults,\n ...options,\n };\n return {\n ...apiMetadata,\n basePath:\n options?.basePath ??\n defaults.basePath ??\n routePath(\n contextAlias,\n attributed ? resourceAttribution : undefined,\n aggregateName,\n ),\n };\n}\n\n/** `{contextAlias}{resourceAttribution}/{aggregateName}`. */\nfunction routePath(\n contextAlias: string | undefined,\n resourceAttribution: ResourceAttributionPathSpec | undefined,\n aggregateName: string | undefined,\n): string {\n const path = combineURLs(resourceAttribution ?? '', aggregateName ?? '');\n return contextAlias ? combineURLs(contextAlias, path) : path;\n}\n\n/**\n * Creates the query clients of one aggregate from shared defaults: its\n * snapshot, event stream, load-state and query descriptor clients. Each `create*` call may\n * override the defaults; see {@link QueryClientOptions} for how the base path\n * is built. Generated code creates one factory per aggregate.\n *\n * @template S - The type of the aggregate state\n * @template FIELDS - The field paths snapshot queries may name\n * @template DomainEventBody - The type of the aggregate's event bodies\n */\nexport class QueryClientFactory<\n S,\n FIELDS extends string = string,\n DomainEventBody = unknown,\n> {\n /**\n * Creates a new QueryClientFactory instance with the specified default options.\n *\n * @param defaultOptions - The default options to be used for all query clients created by this factory\n *\n * @example\n * ```typescript\n * import { QueryClientFactory, ResourceAttributionPathSpec } from '@ahoo-wang/wow-client';\n *\n * const factory = new QueryClientFactory({\n * contextAlias: 'example',\n * aggregateName: 'cart',\n * resourceAttribution: ResourceAttributionPathSpec.OWNER,\n * });\n * ```\n */\n constructor(private readonly defaultOptions: QueryClientOptions) {}\n\n /**\n * Creates a snapshot query client for querying aggregate snapshots.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates a SnapshotQueryClient.\n *\n * @param options - The query client options used to configure the snapshot query client\n * @returns A new instance of SnapshotQueryClient\n *\n * @example\n * ```typescript\n * const snapshotClient = factory.createSnapshotQueryClient({\n * aggregateName: 'cart',\n * });\n *\n * const cartState = await snapshotClient.singleState(singleQuery());\n * ```\n */\n createSnapshotQueryClient(\n options?: QueryClientOptions,\n ): SnapshotQueryClient<S, FIELDS> {\n return new SnapshotQueryClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates a client for loading aggregate state by ID.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates a LoadStateAggregateClient.\n * The client supports loading current state, versioned state, and time-based state.\n *\n * @param options - The query client options used to configure the state aggregate client\n * @returns A new instance of LoadStateAggregateClient\n *\n * @example\n * ```typescript\n * const stateClient = factory.createLoadStateAggregateClient({\n * aggregateName: 'cart',\n * });\n *\n * // Load current state\n * const currentState = await stateClient.load('cart-123');\n *\n * // Load specific version\n * const versionedState = await stateClient.loadVersioned('cart-123', 5);\n *\n * // Load state at specific time\n * const timeBasedState = await stateClient.loadTimeBased('cart-123', Date.now());\n * ```\n */\n createLoadStateAggregateClient(\n options?: QueryClientOptions,\n ): LoadStateAggregateClient<S> {\n return new LoadStateAggregateClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates a client for loading owner-specific aggregate state.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates a LoadOwnerStateAggregateClient.\n * Unlike the standard state client, this client loads state for the current owner\n * without requiring an explicit ID parameter.\n *\n * @param options - The query client options used to configure the owner state aggregate client\n * @returns A new instance of LoadOwnerStateAggregateClient\n *\n * @example\n * ```typescript\n * const ownerStateClient = factory.createLoadOwnerStateAggregateClient({\n * aggregateName: 'cart',\n * resourceAttribution: ResourceAttributionPathSpec.OWNER,\n * });\n *\n * // Load current owner's state\n * const currentState = await ownerStateClient.load();\n *\n * // Load specific version of owner's state\n * const versionedState = await ownerStateClient.loadVersioned(5);\n *\n * // Load owner's state at specific time\n * const timeBasedState = await ownerStateClient.loadTimeBased(Date.now());\n * ```\n */\n createLoadOwnerStateAggregateClient(\n options?: QueryClientOptions,\n ): LoadOwnerStateAggregateClient<S> {\n return new LoadOwnerStateAggregateClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates an event stream query client for querying domain event streams.\n *\n * This method merges the provided options with the factory's default options,\n * then creates API metadata and instantiates an EventStreamQueryClient.\n *\n * @param options - The query client options used to configure the event stream query client\n * @returns A new instance of EventStreamQueryClient\n *\n * @example\n * ```typescript\n * const eventClient = factory.createEventStreamQueryClient({\n * aggregateName: 'cart',\n * });\n *\n * const events = await eventClient.list(listQuery());\n * ```\n */\n createEventStreamQueryClient<EVENT_FIELDS extends string = string>(\n options?: QueryClientOptions,\n ): EventStreamQueryClient<DomainEventBody, EVENT_FIELDS> {\n return new EventStreamQueryClient(\n queryApiMetadata(this.defaultOptions, options),\n );\n }\n\n /**\n * Creates a client that reads the aggregate's query capability\n * descriptors (`{aggregate}/snapshot/schema`, `{aggregate}/event/schema`).\n *\n * Its base path is `basePath` when one is given, as for the other clients;\n * otherwise `{contextAlias}/{aggregateName}` without the\n * `resourceAttribution`: the schema routes have no tenant or owner segment.\n *\n * @param options - Overrides the factory's defaults, as for the other clients\n * @returns A new instance of QueryDescriptorClient\n *\n * @example\n * ```typescript\n * const descriptors = factory.createQueryDescriptorClient();\n * const snapshot = await descriptors.describeSnapshot();\n * ```\n */\n createQueryDescriptorClient(\n options?: QueryClientOptions,\n ): QueryDescriptorClient {\n return new QueryDescriptorClient(\n queryApiMetadata(this.defaultOptions, options, false),\n );\n }\n}\n"],"mappings":";;;;;;;AAqDA,SAASA,EACP,GACA,GACA,IAAa,IACA;CACb,IAAM,EAAE,iBAAc,wBAAqB,kBAAe,GAAGC,MAAgB;EAC3E,GAAGC;EACH,GAAGC;CACL;CACA,OAAO;EACL,GAAGF;EACH,UACEE,GAAS,YACTD,EAAS,YACTE,EACEC,GACAC,IAAaC,IAAsB,KAAA,GACnCC,CACF;CACJ;AACF;AAGA,SAASJ,EACP,GACA,GACA,GACQ;CACR,IAAMK,IAAOC,EAAYH,KAAuB,IAAIC,KAAiB,EAAE;CACvE,OAAOH,IAAeK,EAAYL,GAAcI,CAAI,IAAIA;AAC1D;AAYA,IAAaE,IAAb,MAIE;CAiBA,YAAY,GAAqD;EAApC,KAAA,iBAAAC;CAAqC;CAoBlE,0BACE,GACgC;EAChC,OAAO,IAAIC,EACTb,EAAiB,KAAK,gBAAgBG,CAAO,CAC/C;CACF;CA4BA,+BACE,GAC6B;EAC7B,OAAO,IAAIW,EACTd,EAAiB,KAAK,gBAAgBG,CAAO,CAC/C;CACF;CA8BA,oCACE,GACkC;EAClC,OAAO,IAAIY,EACTf,EAAiB,KAAK,gBAAgBG,CAAO,CAC/C;CACF;CAoBA,6BACE,GACuD;EACvD,OAAO,IAAIa,EACThB,EAAiB,KAAK,gBAAgBG,CAAO,CAC/C;CACF;CAmBA,4BACE,GACuB;EACvB,OAAO,IAAIc,EACTjB,EAAiB,KAAK,gBAAgBG,GAAS,EAAK,CACtD;CACF;AACF"}
@@ -0,0 +1,6 @@
1
+ export * from './queryApi.cjs';
2
+ export * from './event/index.cjs';
3
+ export * from './snapshot/index.cjs';
4
+ export * from './state/index.cjs';
5
+ export * from './descriptor/index.cjs';
6
+ export * from './factory.cjs';
@@ -0,0 +1,6 @@
1
+ export * from './queryApi.js';
2
+ export * from './event/index.js';
3
+ export * from './snapshot/index.js';
4
+ export * from './state/index.js';
5
+ export * from './descriptor/index.js';
6
+ export * from './factory.js';
@@ -0,0 +1,68 @@
1
+ import { Condition, ListQueryRequest, PagedQueryRequest, SingleQueryRequest } from './requests.cjs';
2
+ import { PagedList } from '../../dsl/queryable.cjs';
3
+ import { AggregationQuery } from '../../dsl/aggregation/index.cjs';
4
+ import { FilterExpression } from '../../dsl/filter/index.cjs';
5
+ import { DynamicDocument } from '../../dsl/documents.cjs';
6
+ import { CursorPage, CursorQuery } from '../../dsl/cursorQuery.cjs';
7
+ /**
8
+ * Interface for generic query API operations.
9
+ * Provides methods for querying resources in different ways including single item retrieval,
10
+ * list retrieval, streaming lists, paged retrieval, and counting.
11
+ *
12
+ * @see {@link EventStreamQueryApi}
13
+ * @see {@link SnapshotQueryApi}
14
+ * @template R - The type of resource being queried
15
+ */
16
+ export interface QueryApi<R, FIELDS extends string = string> {
17
+ /** Retrieves the next forward-only cursor page. */
18
+ cursor<T extends Partial<R> = R>(query: CursorQuery<FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<CursorPage<T>>;
19
+ /** Runs an aggregation and returns all result rows. */
20
+ aggregate<Row extends object = DynamicDocument, AGGREGATION_FIELDS extends string = string>(query: AggregationQuery<FIELDS, AGGREGATION_FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<Row[]>;
21
+ /** Runs an aggregation and streams the result rows, one per server-sent event. */
22
+ aggregateStream<Row extends object = DynamicDocument, AGGREGATION_FIELDS extends string = string>(query: AggregationQuery<FIELDS, AGGREGATION_FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<ReadableStream<Row>>;
23
+ /**
24
+ * Retrieves a single resource based on the provided query parameters.
25
+ * @param singleQuery - The query parameters for retrieving a single resource
26
+ * @param attributes - Optional shared attributes that can be accessed by interceptors
27
+ * throughout the request lifecycle. These attributes allow passing
28
+ * custom data between different interceptors.
29
+ * @returns A promise that resolves to a partial resource
30
+ */
31
+ single<T extends Partial<R> = R>(singleQuery: SingleQueryRequest<FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<T>;
32
+ /**
33
+ * Retrieves a list of resources based on the provided query parameters.
34
+ * @param listQuery - The query parameters for listing resources
35
+ * @param attributes - Optional shared attributes that can be accessed by interceptors
36
+ * throughout the request lifecycle. These attributes allow passing
37
+ * custom data between different interceptors.
38
+ * @returns A promise that resolves to an array of partial resources
39
+ */
40
+ list<T extends Partial<R> = R>(listQuery: ListQueryRequest<FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<T[]>;
41
+ /**
42
+ * Retrieves a stream of resources based on the provided query parameters.
43
+ * @param listQuery - The query parameters for listing resources
44
+ * @param attributes - Optional shared attributes that can be accessed by interceptors
45
+ * throughout the request lifecycle. These attributes allow passing
46
+ * custom data between different interceptors.
47
+ * @returns A promise that resolves to a readable stream of partial resources
48
+ */
49
+ listStream<T extends Partial<R> = R>(listQuery: ListQueryRequest<FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<ReadableStream<T>>;
50
+ /**
51
+ * Retrieves a paged list of resources based on the provided query parameters.
52
+ * @param pagedQuery - The query parameters for paging resources
53
+ * @param attributes - Optional shared attributes that can be accessed by interceptors
54
+ * throughout the request lifecycle. These attributes allow passing
55
+ * custom data between different interceptors.
56
+ * @returns A promise that resolves to a paged list of partial resources
57
+ */
58
+ paged<T extends Partial<R> = R>(pagedQuery: PagedQueryRequest<FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<PagedList<T>>;
59
+ /**
60
+ * Counts the number of resources that match the given filter or legacy condition.
61
+ * @param filter - The filter expression or legacy condition
62
+ * @param attributes - Optional shared attributes that can be accessed by interceptors
63
+ * throughout the request lifecycle. These attributes allow passing
64
+ * custom data between different interceptors.
65
+ * @returns A promise that resolves to the count of matching resources
66
+ */
67
+ count(filter: FilterExpression<FIELDS> | Condition<FIELDS>, attributes?: Record<string, unknown>, abort?: AbortController | AbortSignal): Promise<number>;
68
+ }