@digital-science-dsl/dimensions-analytics-mcp 0.5.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 (722) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +152 -0
  3. package/bin/dimensions-analytics-mcp-http.js +2 -0
  4. package/bin/dimensions-analytics-mcp.js +2 -0
  5. package/dist/client/auth/config-loaders.d.ts +22 -0
  6. package/dist/client/auth/config-loaders.d.ts.map +1 -0
  7. package/dist/client/auth/config-loaders.js +68 -0
  8. package/dist/client/auth/config-loaders.js.map +1 -0
  9. package/dist/client/auth/decorators/index.d.ts +7 -0
  10. package/dist/client/auth/decorators/index.d.ts.map +1 -0
  11. package/dist/client/auth/decorators/index.js +6 -0
  12. package/dist/client/auth/decorators/index.js.map +1 -0
  13. package/dist/client/auth/decorators/with-caching.d.ts +81 -0
  14. package/dist/client/auth/decorators/with-caching.d.ts.map +1 -0
  15. package/dist/client/auth/decorators/with-caching.js +168 -0
  16. package/dist/client/auth/decorators/with-caching.js.map +1 -0
  17. package/dist/client/auth/factory.d.ts +13 -0
  18. package/dist/client/auth/factory.d.ts.map +1 -0
  19. package/dist/client/auth/factory.js +29 -0
  20. package/dist/client/auth/factory.js.map +1 -0
  21. package/dist/client/auth/index.d.ts +7 -0
  22. package/dist/client/auth/index.d.ts.map +1 -0
  23. package/dist/client/auth/index.js +6 -0
  24. package/dist/client/auth/index.js.map +1 -0
  25. package/dist/client/auth/jwt-utils.d.ts +17 -0
  26. package/dist/client/auth/jwt-utils.d.ts.map +1 -0
  27. package/dist/client/auth/jwt-utils.js +33 -0
  28. package/dist/client/auth/jwt-utils.js.map +1 -0
  29. package/dist/client/auth/node.d.ts +16 -0
  30. package/dist/client/auth/node.d.ts.map +1 -0
  31. package/dist/client/auth/node.js +15 -0
  32. package/dist/client/auth/node.js.map +1 -0
  33. package/dist/client/auth/providers/index.d.ts +2 -0
  34. package/dist/client/auth/providers/index.d.ts.map +1 -0
  35. package/dist/client/auth/providers/index.js +2 -0
  36. package/dist/client/auth/providers/index.js.map +1 -0
  37. package/dist/client/auth/providers/jwt-auth-provider.d.ts +70 -0
  38. package/dist/client/auth/providers/jwt-auth-provider.d.ts.map +1 -0
  39. package/dist/client/auth/providers/jwt-auth-provider.js +134 -0
  40. package/dist/client/auth/providers/jwt-auth-provider.js.map +1 -0
  41. package/dist/client/auth/schemas.d.ts +19 -0
  42. package/dist/client/auth/schemas.d.ts.map +1 -0
  43. package/dist/client/auth/schemas.js +23 -0
  44. package/dist/client/auth/schemas.js.map +1 -0
  45. package/dist/client/auth/types.d.ts +25 -0
  46. package/dist/client/auth/types.d.ts.map +1 -0
  47. package/dist/client/auth/types.js +9 -0
  48. package/dist/client/auth/types.js.map +1 -0
  49. package/dist/client/command.d.ts +44 -0
  50. package/dist/client/command.d.ts.map +1 -0
  51. package/dist/client/command.js +23 -0
  52. package/dist/client/command.js.map +1 -0
  53. package/dist/client/config/index.d.ts +11 -0
  54. package/dist/client/config/index.d.ts.map +1 -0
  55. package/dist/client/config/index.js +8 -0
  56. package/dist/client/config/index.js.map +1 -0
  57. package/dist/client/config/loader.d.ts +27 -0
  58. package/dist/client/config/loader.d.ts.map +1 -0
  59. package/dist/client/config/loader.js +128 -0
  60. package/dist/client/config/loader.js.map +1 -0
  61. package/dist/client/config/node.d.ts +18 -0
  62. package/dist/client/config/node.d.ts.map +1 -0
  63. package/dist/client/config/node.js +17 -0
  64. package/dist/client/config/node.js.map +1 -0
  65. package/dist/client/config/schemas.d.ts +23 -0
  66. package/dist/client/config/schemas.d.ts.map +1 -0
  67. package/dist/client/config/schemas.js +24 -0
  68. package/dist/client/config/schemas.js.map +1 -0
  69. package/dist/client/config/types.d.ts +37 -0
  70. package/dist/client/config/types.d.ts.map +1 -0
  71. package/dist/client/config/types.js +6 -0
  72. package/dist/client/config/types.js.map +1 -0
  73. package/dist/client/config/unified-loader.d.ts +41 -0
  74. package/dist/client/config/unified-loader.d.ts.map +1 -0
  75. package/dist/client/config/unified-loader.js +86 -0
  76. package/dist/client/config/unified-loader.js.map +1 -0
  77. package/dist/client/config.d.ts +43 -0
  78. package/dist/client/config.d.ts.map +1 -0
  79. package/dist/client/config.js +56 -0
  80. package/dist/client/config.js.map +1 -0
  81. package/dist/client/deployment-config.d.ts +36 -0
  82. package/dist/client/deployment-config.d.ts.map +1 -0
  83. package/dist/client/deployment-config.js +79 -0
  84. package/dist/client/deployment-config.js.map +1 -0
  85. package/dist/client/errors.d.ts +180 -0
  86. package/dist/client/errors.d.ts.map +1 -0
  87. package/dist/client/errors.js +253 -0
  88. package/dist/client/errors.js.map +1 -0
  89. package/dist/client/http-client.d.ts +215 -0
  90. package/dist/client/http-client.d.ts.map +1 -0
  91. package/dist/client/http-client.js +419 -0
  92. package/dist/client/http-client.js.map +1 -0
  93. package/dist/client/index.d.ts +28 -0
  94. package/dist/client/index.d.ts.map +1 -0
  95. package/dist/client/index.js +18 -0
  96. package/dist/client/index.js.map +1 -0
  97. package/dist/client/internal-dsl-client.d.ts +30 -0
  98. package/dist/client/internal-dsl-client.d.ts.map +1 -0
  99. package/dist/client/internal-dsl-client.js +101 -0
  100. package/dist/client/internal-dsl-client.js.map +1 -0
  101. package/dist/client/rate-limiter.d.ts +79 -0
  102. package/dist/client/rate-limiter.d.ts.map +1 -0
  103. package/dist/client/rate-limiter.js +118 -0
  104. package/dist/client/rate-limiter.js.map +1 -0
  105. package/dist/client/resolve-api-key-user.d.ts +24 -0
  106. package/dist/client/resolve-api-key-user.d.ts.map +1 -0
  107. package/dist/client/resolve-api-key-user.js +80 -0
  108. package/dist/client/resolve-api-key-user.js.map +1 -0
  109. package/dist/client/types.d.ts +44 -0
  110. package/dist/client/types.d.ts.map +1 -0
  111. package/dist/client/types.js +10 -0
  112. package/dist/client/types.js.map +1 -0
  113. package/dist/dsl/client.d.ts +330 -0
  114. package/dist/dsl/client.d.ts.map +1 -0
  115. package/dist/dsl/client.js +433 -0
  116. package/dist/dsl/client.js.map +1 -0
  117. package/dist/dsl/commands/apply-filters.d.ts +15 -0
  118. package/dist/dsl/commands/apply-filters.d.ts.map +1 -0
  119. package/dist/dsl/commands/apply-filters.js +29 -0
  120. package/dist/dsl/commands/apply-filters.js.map +1 -0
  121. package/dist/dsl/commands/facet/index.d.ts +6 -0
  122. package/dist/dsl/commands/facet/index.d.ts.map +1 -0
  123. package/dist/dsl/commands/facet/index.js +6 -0
  124. package/dist/dsl/commands/facet/index.js.map +1 -0
  125. package/dist/dsl/commands/facet/schemas.d.ts +71 -0
  126. package/dist/dsl/commands/facet/schemas.d.ts.map +1 -0
  127. package/dist/dsl/commands/facet/schemas.js +84 -0
  128. package/dist/dsl/commands/facet/schemas.js.map +1 -0
  129. package/dist/dsl/commands/functions/ClassifyCommand.d.ts +96 -0
  130. package/dist/dsl/commands/functions/ClassifyCommand.d.ts.map +1 -0
  131. package/dist/dsl/commands/functions/ClassifyCommand.js +95 -0
  132. package/dist/dsl/commands/functions/ClassifyCommand.js.map +1 -0
  133. package/dist/dsl/commands/functions/ExtractAffiliationsCommand.d.ts +86 -0
  134. package/dist/dsl/commands/functions/ExtractAffiliationsCommand.d.ts.map +1 -0
  135. package/dist/dsl/commands/functions/ExtractAffiliationsCommand.js +131 -0
  136. package/dist/dsl/commands/functions/ExtractAffiliationsCommand.js.map +1 -0
  137. package/dist/dsl/commands/functions/ExtractConceptsCommand.d.ts +73 -0
  138. package/dist/dsl/commands/functions/ExtractConceptsCommand.d.ts.map +1 -0
  139. package/dist/dsl/commands/functions/ExtractConceptsCommand.js +110 -0
  140. package/dist/dsl/commands/functions/ExtractConceptsCommand.js.map +1 -0
  141. package/dist/dsl/commands/functions/ExtractGrantsCommand.d.ts +66 -0
  142. package/dist/dsl/commands/functions/ExtractGrantsCommand.d.ts.map +1 -0
  143. package/dist/dsl/commands/functions/ExtractGrantsCommand.js +87 -0
  144. package/dist/dsl/commands/functions/ExtractGrantsCommand.js.map +1 -0
  145. package/dist/dsl/commands/functions/index.d.ts +10 -0
  146. package/dist/dsl/commands/functions/index.d.ts.map +1 -0
  147. package/dist/dsl/commands/functions/index.js +10 -0
  148. package/dist/dsl/commands/functions/index.js.map +1 -0
  149. package/dist/dsl/commands/index.d.ts +8 -0
  150. package/dist/dsl/commands/index.d.ts.map +1 -0
  151. package/dist/dsl/commands/index.js +7 -0
  152. package/dist/dsl/commands/index.js.map +1 -0
  153. package/dist/dsl/commands/validate-input.d.ts +18 -0
  154. package/dist/dsl/commands/validate-input.d.ts.map +1 -0
  155. package/dist/dsl/commands/validate-input.js +27 -0
  156. package/dist/dsl/commands/validate-input.js.map +1 -0
  157. package/dist/dsl/create-client.d.ts +32 -0
  158. package/dist/dsl/create-client.d.ts.map +1 -0
  159. package/dist/dsl/create-client.js +58 -0
  160. package/dist/dsl/create-client.js.map +1 -0
  161. package/dist/dsl/fluent-query-builder.d.ts +439 -0
  162. package/dist/dsl/fluent-query-builder.d.ts.map +1 -0
  163. package/dist/dsl/fluent-query-builder.js +534 -0
  164. package/dist/dsl/fluent-query-builder.js.map +1 -0
  165. package/dist/dsl/index.d.ts +32 -0
  166. package/dist/dsl/index.d.ts.map +1 -0
  167. package/dist/dsl/index.js +31 -0
  168. package/dist/dsl/index.js.map +1 -0
  169. package/dist/dsl/pagination.d.ts +82 -0
  170. package/dist/dsl/pagination.d.ts.map +1 -0
  171. package/dist/dsl/pagination.js +135 -0
  172. package/dist/dsl/pagination.js.map +1 -0
  173. package/dist/dsl/query-builder.d.ts +456 -0
  174. package/dist/dsl/query-builder.d.ts.map +1 -0
  175. package/dist/dsl/query-builder.js +994 -0
  176. package/dist/dsl/query-builder.js.map +1 -0
  177. package/dist/dsl/response-parser.d.ts +111 -0
  178. package/dist/dsl/response-parser.d.ts.map +1 -0
  179. package/dist/dsl/response-parser.js +210 -0
  180. package/dist/dsl/response-parser.js.map +1 -0
  181. package/dist/dsl/schema/cache.d.ts +52 -0
  182. package/dist/dsl/schema/cache.d.ts.map +1 -0
  183. package/dist/dsl/schema/cache.js +97 -0
  184. package/dist/dsl/schema/cache.js.map +1 -0
  185. package/dist/dsl/schema/extract.d.ts +18 -0
  186. package/dist/dsl/schema/extract.d.ts.map +1 -0
  187. package/dist/dsl/schema/extract.js +41 -0
  188. package/dist/dsl/schema/extract.js.map +1 -0
  189. package/dist/dsl/schema/index.d.ts +13 -0
  190. package/dist/dsl/schema/index.d.ts.map +1 -0
  191. package/dist/dsl/schema/index.js +12 -0
  192. package/dist/dsl/schema/index.js.map +1 -0
  193. package/dist/dsl/schema/load.d.ts +41 -0
  194. package/dist/dsl/schema/load.d.ts.map +1 -0
  195. package/dist/dsl/schema/load.js +119 -0
  196. package/dist/dsl/schema/load.js.map +1 -0
  197. package/dist/dsl/schema/store.d.ts +137 -0
  198. package/dist/dsl/schema/store.d.ts.map +1 -0
  199. package/dist/dsl/schema/store.js +204 -0
  200. package/dist/dsl/schema/store.js.map +1 -0
  201. package/dist/dsl/schema/structured-entities.d.ts +21 -0
  202. package/dist/dsl/schema/structured-entities.d.ts.map +1 -0
  203. package/dist/dsl/schema/structured-entities.js +39 -0
  204. package/dist/dsl/schema/structured-entities.js.map +1 -0
  205. package/dist/dsl/schema/summary.d.ts +51 -0
  206. package/dist/dsl/schema/summary.d.ts.map +1 -0
  207. package/dist/dsl/schema/summary.js +61 -0
  208. package/dist/dsl/schema/summary.js.map +1 -0
  209. package/dist/dsl/schema/types.d.ts +36 -0
  210. package/dist/dsl/schema/types.d.ts.map +1 -0
  211. package/dist/dsl/schema/types.js +6 -0
  212. package/dist/dsl/schema/types.js.map +1 -0
  213. package/dist/dsl/schema/validation.d.ts +21 -0
  214. package/dist/dsl/schema/validation.d.ts.map +1 -0
  215. package/dist/dsl/schema/validation.js +44 -0
  216. package/dist/dsl/schema/validation.js.map +1 -0
  217. package/dist/dsl/types/buckets.d.ts +18 -0
  218. package/dist/dsl/types/buckets.d.ts.map +1 -0
  219. package/dist/dsl/types/buckets.js +6 -0
  220. package/dist/dsl/types/buckets.js.map +1 -0
  221. package/dist/dsl/types/common.d.ts +91 -0
  222. package/dist/dsl/types/common.d.ts.map +1 -0
  223. package/dist/dsl/types/common.js +6 -0
  224. package/dist/dsl/types/common.js.map +1 -0
  225. package/dist/dsl/types/entities.d.ts +35 -0
  226. package/dist/dsl/types/entities.d.ts.map +1 -0
  227. package/dist/dsl/types/entities.js +11 -0
  228. package/dist/dsl/types/entities.js.map +1 -0
  229. package/dist/dsl/types/index.d.ts +12 -0
  230. package/dist/dsl/types/index.d.ts.map +1 -0
  231. package/dist/dsl/types/index.js +7 -0
  232. package/dist/dsl/types/index.js.map +1 -0
  233. package/dist/dsl/types/return-clauses.d.ts +107 -0
  234. package/dist/dsl/types/return-clauses.d.ts.map +1 -0
  235. package/dist/dsl/types/return-clauses.js +22 -0
  236. package/dist/dsl/types/return-clauses.js.map +1 -0
  237. package/dist/dsl/types/special-functions.d.ts +175 -0
  238. package/dist/dsl/types/special-functions.d.ts.map +1 -0
  239. package/dist/dsl/types/special-functions.js +25 -0
  240. package/dist/dsl/types/special-functions.js.map +1 -0
  241. package/dist/dsl/types/vocabulary.d.ts +21 -0
  242. package/dist/dsl/types/vocabulary.d.ts.map +1 -0
  243. package/dist/dsl/types/vocabulary.js +44 -0
  244. package/dist/dsl/types/vocabulary.js.map +1 -0
  245. package/dist/dsl/usage-policy.d.ts +87 -0
  246. package/dist/dsl/usage-policy.d.ts.map +1 -0
  247. package/dist/dsl/usage-policy.js +133 -0
  248. package/dist/dsl/usage-policy.js.map +1 -0
  249. package/dist/dsl/utils/escape.d.ts +24 -0
  250. package/dist/dsl/utils/escape.d.ts.map +1 -0
  251. package/dist/dsl/utils/escape.js +124 -0
  252. package/dist/dsl/utils/escape.js.map +1 -0
  253. package/dist/dsl/utils/sanitize.d.ts +13 -0
  254. package/dist/dsl/utils/sanitize.d.ts.map +1 -0
  255. package/dist/dsl/utils/sanitize.js +19 -0
  256. package/dist/dsl/utils/sanitize.js.map +1 -0
  257. package/dist/dsl/utils/string-utils.d.ts +35 -0
  258. package/dist/dsl/utils/string-utils.d.ts.map +1 -0
  259. package/dist/dsl/utils/string-utils.js +145 -0
  260. package/dist/dsl/utils/string-utils.js.map +1 -0
  261. package/dist/dsl/utils/validate-field-name.d.ts +11 -0
  262. package/dist/dsl/utils/validate-field-name.d.ts.map +1 -0
  263. package/dist/dsl/utils/validate-field-name.js +18 -0
  264. package/dist/dsl/utils/validate-field-name.js.map +1 -0
  265. package/dist/examples/dsl-examples.d.ts +11 -0
  266. package/dist/examples/dsl-examples.d.ts.map +1 -0
  267. package/dist/examples/dsl-examples.js +49 -0
  268. package/dist/examples/dsl-examples.js.map +1 -0
  269. package/dist/examples/usage-scenarios.d.ts +22 -0
  270. package/dist/examples/usage-scenarios.d.ts.map +1 -0
  271. package/dist/examples/usage-scenarios.js +173 -0
  272. package/dist/examples/usage-scenarios.js.map +1 -0
  273. package/dist/funder-org-names.d.ts +12 -0
  274. package/dist/funder-org-names.d.ts.map +1 -0
  275. package/dist/funder-org-names.js +30 -0
  276. package/dist/funder-org-names.js.map +1 -0
  277. package/dist/http-main.d.ts +7 -0
  278. package/dist/http-main.d.ts.map +1 -0
  279. package/dist/http-main.js +36 -0
  280. package/dist/http-main.js.map +1 -0
  281. package/dist/http.d.ts +29 -0
  282. package/dist/http.d.ts.map +1 -0
  283. package/dist/http.js +173 -0
  284. package/dist/http.js.map +1 -0
  285. package/dist/index.d.ts +9 -0
  286. package/dist/index.d.ts.map +1 -0
  287. package/dist/index.js +7 -0
  288. package/dist/index.js.map +1 -0
  289. package/dist/kwq/build-query.d.ts +26 -0
  290. package/dist/kwq/build-query.d.ts.map +1 -0
  291. package/dist/kwq/build-query.js +37 -0
  292. package/dist/kwq/build-query.js.map +1 -0
  293. package/dist/kwq/concept-groups.d.ts +49 -0
  294. package/dist/kwq/concept-groups.d.ts.map +1 -0
  295. package/dist/kwq/concept-groups.js +55 -0
  296. package/dist/kwq/concept-groups.js.map +1 -0
  297. package/dist/kwq/dsl-assembler.d.ts +28 -0
  298. package/dist/kwq/dsl-assembler.d.ts.map +1 -0
  299. package/dist/kwq/dsl-assembler.js +124 -0
  300. package/dist/kwq/dsl-assembler.js.map +1 -0
  301. package/dist/kwq/ensemble.d.ts +38 -0
  302. package/dist/kwq/ensemble.d.ts.map +1 -0
  303. package/dist/kwq/ensemble.js +107 -0
  304. package/dist/kwq/ensemble.js.map +1 -0
  305. package/dist/kwq/index.d.ts +16 -0
  306. package/dist/kwq/index.d.ts.map +1 -0
  307. package/dist/kwq/index.js +14 -0
  308. package/dist/kwq/index.js.map +1 -0
  309. package/dist/kwq/types.d.ts +120 -0
  310. package/dist/kwq/types.d.ts.map +1 -0
  311. package/dist/kwq/types.js +11 -0
  312. package/dist/kwq/types.js.map +1 -0
  313. package/dist/lambda.d.ts +10 -0
  314. package/dist/lambda.d.ts.map +1 -0
  315. package/dist/lambda.js +4 -0
  316. package/dist/lambda.js.map +1 -0
  317. package/dist/main.d.ts +8 -0
  318. package/dist/main.d.ts.map +1 -0
  319. package/dist/main.js +33 -0
  320. package/dist/main.js.map +1 -0
  321. package/dist/mcp/batch-fetch.d.ts +89 -0
  322. package/dist/mcp/batch-fetch.d.ts.map +1 -0
  323. package/dist/mcp/batch-fetch.js +178 -0
  324. package/dist/mcp/batch-fetch.js.map +1 -0
  325. package/dist/mcp/examples/dsl-examples.d.ts +21 -0
  326. package/dist/mcp/examples/dsl-examples.d.ts.map +1 -0
  327. package/dist/mcp/examples/dsl-examples.js +61 -0
  328. package/dist/mcp/examples/dsl-examples.js.map +1 -0
  329. package/dist/mcp/examples/usage-scenarios.d.ts +20 -0
  330. package/dist/mcp/examples/usage-scenarios.d.ts.map +1 -0
  331. package/dist/mcp/examples/usage-scenarios.js +169 -0
  332. package/dist/mcp/examples/usage-scenarios.js.map +1 -0
  333. package/dist/mcp/export-format.d.ts +43 -0
  334. package/dist/mcp/export-format.d.ts.map +1 -0
  335. package/dist/mcp/export-format.js +92 -0
  336. package/dist/mcp/export-format.js.map +1 -0
  337. package/dist/mcp/funder-org-names.d.ts +12 -0
  338. package/dist/mcp/funder-org-names.d.ts.map +1 -0
  339. package/dist/mcp/funder-org-names.js +30 -0
  340. package/dist/mcp/funder-org-names.js.map +1 -0
  341. package/dist/mcp/http-server.d.ts +20 -0
  342. package/dist/mcp/http-server.d.ts.map +1 -0
  343. package/dist/mcp/http-server.js +118 -0
  344. package/dist/mcp/http-server.js.map +1 -0
  345. package/dist/mcp/middleware/field-aliases.d.ts +97 -0
  346. package/dist/mcp/middleware/field-aliases.d.ts.map +1 -0
  347. package/dist/mcp/middleware/field-aliases.js +208 -0
  348. package/dist/mcp/middleware/field-aliases.js.map +1 -0
  349. package/dist/mcp/resources/schema.d.ts +13 -0
  350. package/dist/mcp/resources/schema.d.ts.map +1 -0
  351. package/dist/mcp/resources/schema.js +262 -0
  352. package/dist/mcp/resources/schema.js.map +1 -0
  353. package/dist/mcp/schema/context.d.ts +10 -0
  354. package/dist/mcp/schema/context.d.ts.map +1 -0
  355. package/dist/mcp/schema/context.js +6 -0
  356. package/dist/mcp/schema/context.js.map +1 -0
  357. package/dist/mcp/schema/index.d.ts +8 -0
  358. package/dist/mcp/schema/index.d.ts.map +1 -0
  359. package/dist/mcp/schema/index.js +6 -0
  360. package/dist/mcp/schema/index.js.map +1 -0
  361. package/dist/mcp/server.d.ts +56 -0
  362. package/dist/mcp/server.d.ts.map +1 -0
  363. package/dist/mcp/server.js +168 -0
  364. package/dist/mcp/server.js.map +1 -0
  365. package/dist/mcp/shared-schema.d.ts +13 -0
  366. package/dist/mcp/shared-schema.d.ts.map +1 -0
  367. package/dist/mcp/shared-schema.js +28 -0
  368. package/dist/mcp/shared-schema.js.map +1 -0
  369. package/dist/mcp/tools/analytics-filters.d.ts +18 -0
  370. package/dist/mcp/tools/analytics-filters.d.ts.map +1 -0
  371. package/dist/mcp/tools/analytics-filters.js +35 -0
  372. package/dist/mcp/tools/analytics-filters.js.map +1 -0
  373. package/dist/mcp/tools/analytics.d.ts +16 -0
  374. package/dist/mcp/tools/analytics.d.ts.map +1 -0
  375. package/dist/mcp/tools/analytics.js +381 -0
  376. package/dist/mcp/tools/analytics.js.map +1 -0
  377. package/dist/mcp/tools/concept-profile.d.ts +14 -0
  378. package/dist/mcp/tools/concept-profile.d.ts.map +1 -0
  379. package/dist/mcp/tools/concept-profile.js +130 -0
  380. package/dist/mcp/tools/concept-profile.js.map +1 -0
  381. package/dist/mcp/tools/dataset-profile.d.ts +15 -0
  382. package/dist/mcp/tools/dataset-profile.d.ts.map +1 -0
  383. package/dist/mcp/tools/dataset-profile.js +194 -0
  384. package/dist/mcp/tools/dataset-profile.js.map +1 -0
  385. package/dist/mcp/tools/fetch-search-pages.d.ts +15 -0
  386. package/dist/mcp/tools/fetch-search-pages.d.ts.map +1 -0
  387. package/dist/mcp/tools/fetch-search-pages.js +237 -0
  388. package/dist/mcp/tools/fetch-search-pages.js.map +1 -0
  389. package/dist/mcp/tools/functions.d.ts +14 -0
  390. package/dist/mcp/tools/functions.d.ts.map +1 -0
  391. package/dist/mcp/tools/functions.js +87 -0
  392. package/dist/mcp/tools/functions.js.map +1 -0
  393. package/dist/mcp/tools/impact-chain.d.ts +15 -0
  394. package/dist/mcp/tools/impact-chain.d.ts.map +1 -0
  395. package/dist/mcp/tools/impact-chain.js +96 -0
  396. package/dist/mcp/tools/impact-chain.js.map +1 -0
  397. package/dist/mcp/tools/kwq.d.ts +19 -0
  398. package/dist/mcp/tools/kwq.d.ts.map +1 -0
  399. package/dist/mcp/tools/kwq.js +156 -0
  400. package/dist/mcp/tools/kwq.js.map +1 -0
  401. package/dist/mcp/tools/lookup.d.ts +14 -0
  402. package/dist/mcp/tools/lookup.d.ts.map +1 -0
  403. package/dist/mcp/tools/lookup.js +146 -0
  404. package/dist/mcp/tools/lookup.js.map +1 -0
  405. package/dist/mcp/tools/policy-profile.d.ts +15 -0
  406. package/dist/mcp/tools/policy-profile.d.ts.map +1 -0
  407. package/dist/mcp/tools/policy-profile.js +174 -0
  408. package/dist/mcp/tools/policy-profile.js.map +1 -0
  409. package/dist/mcp/tools/profile.d.ts +14 -0
  410. package/dist/mcp/tools/profile.d.ts.map +1 -0
  411. package/dist/mcp/tools/profile.js +349 -0
  412. package/dist/mcp/tools/profile.js.map +1 -0
  413. package/dist/mcp/tools/query.d.ts +16 -0
  414. package/dist/mcp/tools/query.d.ts.map +1 -0
  415. package/dist/mcp/tools/query.js +75 -0
  416. package/dist/mcp/tools/query.js.map +1 -0
  417. package/dist/mcp/tools/schema.d.ts +23 -0
  418. package/dist/mcp/tools/schema.d.ts.map +1 -0
  419. package/dist/mcp/tools/schema.js +124 -0
  420. package/dist/mcp/tools/schema.js.map +1 -0
  421. package/dist/mcp/tools/search-entity-metadata.d.ts +18 -0
  422. package/dist/mcp/tools/search-entity-metadata.d.ts.map +1 -0
  423. package/dist/mcp/tools/search-entity-metadata.js +221 -0
  424. package/dist/mcp/tools/search-entity-metadata.js.map +1 -0
  425. package/dist/mcp/tools/search-input.d.ts +58 -0
  426. package/dist/mcp/tools/search-input.d.ts.map +1 -0
  427. package/dist/mcp/tools/search-input.js +76 -0
  428. package/dist/mcp/tools/search-input.js.map +1 -0
  429. package/dist/mcp/tools/search.d.ts +24 -0
  430. package/dist/mcp/tools/search.d.ts.map +1 -0
  431. package/dist/mcp/tools/search.js +115 -0
  432. package/dist/mcp/tools/search.js.map +1 -0
  433. package/dist/mcp/utils.d.ts +82 -0
  434. package/dist/mcp/utils.d.ts.map +1 -0
  435. package/dist/mcp/utils.js +126 -0
  436. package/dist/mcp/utils.js.map +1 -0
  437. package/dist/middleware/field-aliases.d.ts +97 -0
  438. package/dist/middleware/field-aliases.d.ts.map +1 -0
  439. package/dist/middleware/field-aliases.js +208 -0
  440. package/dist/middleware/field-aliases.js.map +1 -0
  441. package/dist/resources/schema.d.ts +13 -0
  442. package/dist/resources/schema.d.ts.map +1 -0
  443. package/dist/resources/schema.js +204 -0
  444. package/dist/resources/schema.js.map +1 -0
  445. package/dist/schema/context.d.ts +10 -0
  446. package/dist/schema/context.d.ts.map +1 -0
  447. package/dist/schema/context.js +6 -0
  448. package/dist/schema/context.js.map +1 -0
  449. package/dist/schema/index.d.ts +9 -0
  450. package/dist/schema/index.d.ts.map +1 -0
  451. package/dist/schema/index.js +6 -0
  452. package/dist/schema/index.js.map +1 -0
  453. package/dist/schema/load.d.ts +43 -0
  454. package/dist/schema/load.d.ts.map +1 -0
  455. package/dist/schema/load.js +139 -0
  456. package/dist/schema/load.js.map +1 -0
  457. package/dist/schema/store.d.ts +112 -0
  458. package/dist/schema/store.d.ts.map +1 -0
  459. package/dist/schema/store.js +173 -0
  460. package/dist/schema/store.js.map +1 -0
  461. package/dist/schema/structured-entities.d.ts +21 -0
  462. package/dist/schema/structured-entities.d.ts.map +1 -0
  463. package/dist/schema/structured-entities.js +39 -0
  464. package/dist/schema/structured-entities.js.map +1 -0
  465. package/dist/schema/types.d.ts +36 -0
  466. package/dist/schema/types.d.ts.map +1 -0
  467. package/dist/schema/types.js +6 -0
  468. package/dist/schema/types.js.map +1 -0
  469. package/dist/server.d.ts +57 -0
  470. package/dist/server.d.ts.map +1 -0
  471. package/dist/server.js +144 -0
  472. package/dist/server.js.map +1 -0
  473. package/dist/telemetry.d.ts +172 -0
  474. package/dist/telemetry.d.ts.map +1 -0
  475. package/dist/telemetry.js +233 -0
  476. package/dist/telemetry.js.map +1 -0
  477. package/dist/tools/analytics-filters.d.ts +18 -0
  478. package/dist/tools/analytics-filters.d.ts.map +1 -0
  479. package/dist/tools/analytics-filters.js +35 -0
  480. package/dist/tools/analytics-filters.js.map +1 -0
  481. package/dist/tools/analytics.d.ts +16 -0
  482. package/dist/tools/analytics.d.ts.map +1 -0
  483. package/dist/tools/analytics.js +381 -0
  484. package/dist/tools/analytics.js.map +1 -0
  485. package/dist/tools/concept-profile.d.ts +14 -0
  486. package/dist/tools/concept-profile.d.ts.map +1 -0
  487. package/dist/tools/concept-profile.js +130 -0
  488. package/dist/tools/concept-profile.js.map +1 -0
  489. package/dist/tools/dataset-profile.d.ts +15 -0
  490. package/dist/tools/dataset-profile.d.ts.map +1 -0
  491. package/dist/tools/dataset-profile.js +194 -0
  492. package/dist/tools/dataset-profile.js.map +1 -0
  493. package/dist/tools/functions.d.ts +14 -0
  494. package/dist/tools/functions.d.ts.map +1 -0
  495. package/dist/tools/functions.js +294 -0
  496. package/dist/tools/functions.js.map +1 -0
  497. package/dist/tools/impact-chain.d.ts +15 -0
  498. package/dist/tools/impact-chain.d.ts.map +1 -0
  499. package/dist/tools/impact-chain.js +96 -0
  500. package/dist/tools/impact-chain.js.map +1 -0
  501. package/dist/tools/kwq.d.ts +19 -0
  502. package/dist/tools/kwq.d.ts.map +1 -0
  503. package/dist/tools/kwq.js +156 -0
  504. package/dist/tools/kwq.js.map +1 -0
  505. package/dist/tools/lookup.d.ts +14 -0
  506. package/dist/tools/lookup.d.ts.map +1 -0
  507. package/dist/tools/lookup.js +213 -0
  508. package/dist/tools/lookup.js.map +1 -0
  509. package/dist/tools/policy-profile.d.ts +15 -0
  510. package/dist/tools/policy-profile.d.ts.map +1 -0
  511. package/dist/tools/policy-profile.js +174 -0
  512. package/dist/tools/policy-profile.js.map +1 -0
  513. package/dist/tools/profile.d.ts +14 -0
  514. package/dist/tools/profile.d.ts.map +1 -0
  515. package/dist/tools/profile.js +349 -0
  516. package/dist/tools/profile.js.map +1 -0
  517. package/dist/tools/query.d.ts +16 -0
  518. package/dist/tools/query.d.ts.map +1 -0
  519. package/dist/tools/query.js +53 -0
  520. package/dist/tools/query.js.map +1 -0
  521. package/dist/tools/schema.d.ts +23 -0
  522. package/dist/tools/schema.d.ts.map +1 -0
  523. package/dist/tools/schema.js +124 -0
  524. package/dist/tools/schema.js.map +1 -0
  525. package/dist/tools/search-entity-metadata.d.ts +18 -0
  526. package/dist/tools/search-entity-metadata.d.ts.map +1 -0
  527. package/dist/tools/search-entity-metadata.js +221 -0
  528. package/dist/tools/search-entity-metadata.js.map +1 -0
  529. package/dist/tools/search.d.ts +23 -0
  530. package/dist/tools/search.d.ts.map +1 -0
  531. package/dist/tools/search.js +110 -0
  532. package/dist/tools/search.js.map +1 -0
  533. package/dist/tools/solr-fields.d.ts +39 -0
  534. package/dist/tools/solr-fields.d.ts.map +1 -0
  535. package/dist/tools/solr-fields.js +40 -0
  536. package/dist/tools/solr-fields.js.map +1 -0
  537. package/dist/utils.d.ts +70 -0
  538. package/dist/utils.d.ts.map +1 -0
  539. package/dist/utils.js +104 -0
  540. package/dist/utils.js.map +1 -0
  541. package/package.json +41 -0
  542. package/src/client/auth/config-loaders.ts +81 -0
  543. package/src/client/auth/decorators/index.ts +7 -0
  544. package/src/client/auth/decorators/with-caching.ts +237 -0
  545. package/src/client/auth/factory.ts +34 -0
  546. package/src/client/auth/index.ts +6 -0
  547. package/src/client/auth/jwt-utils.ts +36 -0
  548. package/src/client/auth/node.ts +16 -0
  549. package/src/client/auth/providers/index.ts +1 -0
  550. package/src/client/auth/providers/jwt-auth-provider.ts +153 -0
  551. package/src/client/auth/schemas.ts +25 -0
  552. package/src/client/auth/types.ts +30 -0
  553. package/src/client/command.ts +54 -0
  554. package/src/client/config/index.ts +15 -0
  555. package/src/client/config/loader.ts +155 -0
  556. package/src/client/config/node.ts +22 -0
  557. package/src/client/config/schemas.ts +28 -0
  558. package/src/client/config/types.ts +39 -0
  559. package/src/client/config/unified-loader.ts +118 -0
  560. package/src/client/config.ts +69 -0
  561. package/src/client/deployment-config.ts +98 -0
  562. package/src/client/errors.ts +295 -0
  563. package/src/client/http-client.ts +577 -0
  564. package/src/client/index.ts +68 -0
  565. package/src/client/internal-dsl-client.ts +128 -0
  566. package/src/client/rate-limiter.ts +139 -0
  567. package/src/client/resolve-api-key-user.ts +99 -0
  568. package/src/client/types.ts +44 -0
  569. package/src/dsl/client.ts +538 -0
  570. package/src/dsl/commands/apply-filters.ts +35 -0
  571. package/src/dsl/commands/facet/index.ts +12 -0
  572. package/src/dsl/commands/facet/schemas.ts +101 -0
  573. package/src/dsl/commands/functions/ClassifyCommand.ts +129 -0
  574. package/src/dsl/commands/functions/ExtractAffiliationsCommand.ts +163 -0
  575. package/src/dsl/commands/functions/ExtractConceptsCommand.ts +141 -0
  576. package/src/dsl/commands/functions/ExtractGrantsCommand.ts +112 -0
  577. package/src/dsl/commands/functions/index.ts +31 -0
  578. package/src/dsl/commands/index.ts +29 -0
  579. package/src/dsl/commands/validate-input.ts +29 -0
  580. package/src/dsl/create-client.ts +80 -0
  581. package/src/dsl/fluent-query-builder.ts +684 -0
  582. package/src/dsl/index.ts +206 -0
  583. package/src/dsl/pagination.ts +202 -0
  584. package/src/dsl/query-builder.ts +1120 -0
  585. package/src/dsl/response-parser.ts +299 -0
  586. package/src/dsl/schema/cache.ts +124 -0
  587. package/src/dsl/schema/extract.ts +44 -0
  588. package/src/dsl/schema/index.ts +50 -0
  589. package/src/dsl/schema/load.ts +160 -0
  590. package/src/dsl/schema/store.ts +253 -0
  591. package/src/dsl/schema/structured-entities.ts +44 -0
  592. package/src/dsl/schema/summary.ts +94 -0
  593. package/src/dsl/schema/types.ts +40 -0
  594. package/src/dsl/schema/validation.ts +56 -0
  595. package/src/dsl/types/buckets.ts +22 -0
  596. package/src/dsl/types/common.ts +99 -0
  597. package/src/dsl/types/entities.ts +43 -0
  598. package/src/dsl/types/index.ts +63 -0
  599. package/src/dsl/types/return-clauses.ts +147 -0
  600. package/src/dsl/types/special-functions.ts +220 -0
  601. package/src/dsl/types/vocabulary.ts +82 -0
  602. package/src/dsl/usage-policy.ts +219 -0
  603. package/src/dsl/utils/escape.ts +123 -0
  604. package/src/dsl/utils/sanitize.ts +21 -0
  605. package/src/dsl/utils/string-utils.ts +147 -0
  606. package/src/dsl/utils/validate-field-name.ts +19 -0
  607. package/src/http-main.ts +41 -0
  608. package/src/index.ts +14 -0
  609. package/src/main.ts +40 -0
  610. package/src/mcp/batch-fetch.ts +255 -0
  611. package/src/mcp/examples/dsl-examples.ts +66 -0
  612. package/src/mcp/examples/usage-scenarios.ts +185 -0
  613. package/src/mcp/export-format.ts +113 -0
  614. package/src/mcp/funder-org-names.ts +30 -0
  615. package/src/mcp/http-server.ts +148 -0
  616. package/src/mcp/middleware/field-aliases.ts +274 -0
  617. package/src/mcp/resources/schema.ts +364 -0
  618. package/src/mcp/schema/context.ts +11 -0
  619. package/src/mcp/schema/index.ts +38 -0
  620. package/src/mcp/server.ts +247 -0
  621. package/src/mcp/shared-schema.ts +34 -0
  622. package/src/mcp/tools/analytics-filters.ts +46 -0
  623. package/src/mcp/tools/analytics.ts +453 -0
  624. package/src/mcp/tools/fetch-search-pages.ts +329 -0
  625. package/src/mcp/tools/functions.ts +105 -0
  626. package/src/mcp/tools/lookup.ts +182 -0
  627. package/src/mcp/tools/query.ts +91 -0
  628. package/src/mcp/tools/schema.ts +147 -0
  629. package/src/mcp/tools/search-entity-metadata.ts +253 -0
  630. package/src/mcp/tools/search-input.ts +87 -0
  631. package/src/mcp/tools/search.ts +168 -0
  632. package/src/mcp/utils.ts +199 -0
  633. package/test/client/auth/config-loaders.test.ts +92 -0
  634. package/test/client/auth/decorators/with-caching.test.ts +482 -0
  635. package/test/client/auth/factory.test.ts +68 -0
  636. package/test/client/auth/providers/jwt-auth-provider.test.ts +398 -0
  637. package/test/client/auth/types.test.ts +18 -0
  638. package/test/client/command.test.ts +163 -0
  639. package/test/client/config/loader.test.ts +377 -0
  640. package/test/client/config/unified-loader.test.ts +136 -0
  641. package/test/client/deployment-config.test.ts +69 -0
  642. package/test/client/errors/index.test.ts +408 -0
  643. package/test/client/helpers/mock-fetch.ts +42 -0
  644. package/test/client/http-client.test.ts +1148 -0
  645. package/test/client/integration/auth-providers.integration.test.ts +186 -0
  646. package/test/client/internal-dsl-client.test.ts +76 -0
  647. package/test/client/rate-limiter.test.ts +204 -0
  648. package/test/client/resolve-api-key-user.test.ts +87 -0
  649. package/test/dsl/client.special-functions.test.ts +387 -0
  650. package/test/dsl/client.test.ts +457 -0
  651. package/test/dsl/commands/apply-filters.test.ts +147 -0
  652. package/test/dsl/commands/functions/ClassifyCommand.test.ts +170 -0
  653. package/test/dsl/commands/functions/ExtractAffiliationsCommand.test.ts +306 -0
  654. package/test/dsl/commands/functions/ExtractConceptsCommand.test.ts +136 -0
  655. package/test/dsl/commands/functions/ExtractGrantsCommand.test.ts +202 -0
  656. package/test/dsl/commands/search/filters.test.ts +42 -0
  657. package/test/dsl/fluent-query-builder.test.ts +865 -0
  658. package/test/dsl/integration/client.integration.test.ts +294 -0
  659. package/test/dsl/integration/facet-api.integration.test.ts +276 -0
  660. package/test/dsl/integration/field-existence.integration.test.ts +148 -0
  661. package/test/dsl/integration/fluent-api-docs-examples.integration.test.ts +988 -0
  662. package/test/dsl/integration/fluent-api.integration.test.ts +615 -0
  663. package/test/dsl/integration/search-helpers.ts +27 -0
  664. package/test/dsl/integration/special-functions.integration.test.ts +224 -0
  665. package/test/dsl/integration/test-config.ts +52 -0
  666. package/test/dsl/pagination.test.ts +86 -0
  667. package/test/dsl/query-builder.test.ts +1775 -0
  668. package/test/dsl/response-parser.test.ts +520 -0
  669. package/test/dsl/schema/cache.test.ts +53 -0
  670. package/test/dsl/schema/load.test.ts +165 -0
  671. package/test/dsl/schema/summary.test.ts +61 -0
  672. package/test/dsl/schema/validation.test.ts +46 -0
  673. package/test/dsl/time-series.test.ts +135 -0
  674. package/test/dsl/unnest.test.ts +151 -0
  675. package/test/dsl/usage-policy.test.ts +100 -0
  676. package/test/dsl/utils/escape.property.test.ts +109 -0
  677. package/test/dsl/utils/escape.test.ts +140 -0
  678. package/test/dsl/utils/validate-field-name.property.test.ts +99 -0
  679. package/test/dsl/utils/validate-field-name.test.ts +55 -0
  680. package/test/examples/dsl-examples.test.ts +29 -0
  681. package/test/examples/usage-scenarios.test.ts +90 -0
  682. package/test/fixtures/describe-schema.json +4000 -0
  683. package/test/funder-org-names.test.ts +20 -0
  684. package/test/helpers/schema-fixture.ts +18 -0
  685. package/test/helpers/tool-test-harness.ts +114 -0
  686. package/test/integration/assertions.ts +263 -0
  687. package/test/integration/env.ts +108 -0
  688. package/test/integration/harness.ts +307 -0
  689. package/test/integration/hosted-client.ts +56 -0
  690. package/test/integration/hosted-mocks.ts +81 -0
  691. package/test/integration/hosted-run.ts +86 -0
  692. package/test/integration/hosted.e2e.test.ts +101 -0
  693. package/test/integration/reporter.ts +100 -0
  694. package/test/integration/run.ts +74 -0
  695. package/test/integration/suites/analytics.integration.ts +72 -0
  696. package/test/integration/suites/functions.integration.ts +37 -0
  697. package/test/integration/suites/hosted-smoke.integration.ts +38 -0
  698. package/test/integration/suites/index.ts +22 -0
  699. package/test/integration/suites/lookup.integration.ts +57 -0
  700. package/test/integration/suites/query.integration.ts +49 -0
  701. package/test/integration/suites/resources.integration.ts +68 -0
  702. package/test/integration/suites/search.integration.ts +80 -0
  703. package/test/integration/types.ts +92 -0
  704. package/test/integration/verify-usage-scenarios.ts +162 -0
  705. package/test/mcp/export-format.test.ts +67 -0
  706. package/test/mcp/http-server.test.ts +80 -0
  707. package/test/middleware/field-aliases.test.ts +287 -0
  708. package/test/resources/schema.test.ts +28 -0
  709. package/test/schema/describe-contract.test.ts +24 -0
  710. package/test/schema/store.test.ts +45 -0
  711. package/test/server.test.ts +170 -0
  712. package/test/tools/analytics-filters.test.ts +35 -0
  713. package/test/tools/analytics.test.ts +419 -0
  714. package/test/tools/fetch-search-pages.test.ts +200 -0
  715. package/test/tools/functions.test.ts +153 -0
  716. package/test/tools/lookup.test.ts +296 -0
  717. package/test/tools/query.test.ts +100 -0
  718. package/test/tools/schema.test.ts +37 -0
  719. package/test/tools/search.test.ts +415 -0
  720. package/test/utils.test.ts +45 -0
  721. package/tsconfig.json +9 -0
  722. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,534 @@
1
+ /**
2
+ * Fluent query builder that wraps QueryBuilder with execute() capability.
3
+ * Provides a chainable API for building and executing Dimensions DSL queries.
4
+ * @module fluent-query-builder
5
+ */
6
+ import { QueryBuilder } from "./query-builder.js";
7
+ import { parseEntityResponse, parseFacetResponse, } from "./response-parser.js";
8
+ /**
9
+ * Abstract base class for fluent query builders.
10
+ * Contains all common query-building methods shared between FluentQueryBuilder
11
+ * and FluentQueryBuilderWithFacets.
12
+ *
13
+ * @template T - The entity type
14
+ * @template E - The entity type key
15
+ */
16
+ class FluentQueryBuilderBase {
17
+ executor;
18
+ entity;
19
+ queryBuilder;
20
+ /**
21
+ * Creates a new FluentQueryBuilderBase instance.
22
+ * @param executor - The query executor to use for executing queries
23
+ * @param entity - The entity type to search
24
+ * @param queryBuilder - The underlying query builder instance
25
+ */
26
+ constructor(executor, entity, queryBuilder) {
27
+ this.executor = executor;
28
+ this.entity = entity;
29
+ this.queryBuilder = queryBuilder;
30
+ }
31
+ /**
32
+ * Sets the search index for full-text search.
33
+ * @param index - The search index to use
34
+ * @returns This builder for chaining
35
+ */
36
+ in(index) {
37
+ this.queryBuilder.in(index);
38
+ return this;
39
+ }
40
+ /**
41
+ * Sets the search terms.
42
+ * @param terms - Search terms to look for
43
+ * @returns This builder for chaining
44
+ */
45
+ for(terms) {
46
+ this.queryBuilder.for(terms);
47
+ return this;
48
+ }
49
+ /**
50
+ * Sets the search to find semantically similar documents.
51
+ * Uses the similar_documents() DSL function.
52
+ * Available for publications and grants.
53
+ * @param text - Abstract or description text to find similar documents for
54
+ * @returns This builder for chaining
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const result = await client
59
+ * .publications()
60
+ * .forSimilar("After spinal cord injury, macrophages infiltrate...")
61
+ * .where("year", ">", 2015)
62
+ * .limit(10)
63
+ * .execute();
64
+ * ```
65
+ */
66
+ forSimilar(text) {
67
+ this.queryBuilder.forSimilar(text);
68
+ return this;
69
+ }
70
+ /**
71
+ * Sets the search to use proximity matching via the complex() DSL function.
72
+ * Finds documents where search terms appear within a maximum distance of each other.
73
+ * @param phrase - The search phrase
74
+ * @param maxDist - Maximum distance between terms (must be >= 1)
75
+ * @returns This builder for chaining
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const result = await client
80
+ * .publications()
81
+ * .forComplex("quantum networking", 3)
82
+ * .where("year", ">", 2020)
83
+ * .limit(10)
84
+ * .execute();
85
+ * ```
86
+ */
87
+ forComplex(phrase, maxDist) {
88
+ this.queryBuilder.forComplex(phrase, maxDist);
89
+ return this;
90
+ }
91
+ /**
92
+ * Sets the search to use minimum term matching via the min_should_match() DSL function.
93
+ * Finds documents matching at least `min` of the terms in the phrase.
94
+ * @param phrase - The search phrase
95
+ * @param min - Minimum number of terms that must match (must be >= 1)
96
+ * @returns This builder for chaining
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const result = await client
101
+ * .publications()
102
+ * .forMinShouldMatch("quantum OR optical networking", 2)
103
+ * .where("year", ">", 2020)
104
+ * .limit(10)
105
+ * .execute();
106
+ * ```
107
+ */
108
+ forMinShouldMatch(phrase, min) {
109
+ this.queryBuilder.forMinShouldMatch(phrase, min);
110
+ return this;
111
+ }
112
+ /**
113
+ * Adds a where clause condition.
114
+ * @param field - Field name to filter on
115
+ * @param operator - Comparison operator
116
+ * @param value - Value to compare against
117
+ * @returns This builder for chaining
118
+ */
119
+ where(field, operator, value) {
120
+ this.queryBuilder.where(field, operator, value);
121
+ return this;
122
+ }
123
+ /**
124
+ * Adds a condition checking if a field is empty.
125
+ * @param field - Field name to check
126
+ * @returns This builder for chaining
127
+ */
128
+ whereEmpty(field) {
129
+ this.queryBuilder.whereEmpty(field);
130
+ return this;
131
+ }
132
+ /**
133
+ * Adds a condition checking if a field is not empty.
134
+ * @param field - Field name to check
135
+ * @returns This builder for chaining
136
+ */
137
+ whereNotEmpty(field) {
138
+ this.queryBuilder.whereNotEmpty(field);
139
+ return this;
140
+ }
141
+ /**
142
+ * Adds a list filter condition (field in ["a", "b", "c"]).
143
+ * @param field - Field name to filter on
144
+ * @param values - Array of values to match
145
+ * @returns This builder for chaining
146
+ */
147
+ whereIn(field, values) {
148
+ this.queryBuilder.whereIn(field, values);
149
+ return this;
150
+ }
151
+ /**
152
+ * Adds a range filter condition (field in [start:end]).
153
+ * @param field - Field name to filter on
154
+ * @param start - Start of range (inclusive)
155
+ * @param end - End of range (inclusive)
156
+ * @returns This builder for chaining
157
+ */
158
+ whereRange(field, start, end) {
159
+ this.queryBuilder.whereRange(field, start, end);
160
+ return this;
161
+ }
162
+ /**
163
+ * Adds a count filter condition (count(field) op value).
164
+ * @param field - Multi-value field name to count
165
+ * @param operator - Comparison operator
166
+ * @param value - Count to compare against
167
+ * @returns This builder for chaining
168
+ */
169
+ whereCount(field, operator, value) {
170
+ this.queryBuilder.whereCount(field, operator, value);
171
+ return this;
172
+ }
173
+ /**
174
+ * Sets the next connector to OR.
175
+ * @returns This builder for chaining
176
+ */
177
+ or() {
178
+ this.queryBuilder.or();
179
+ return this;
180
+ }
181
+ /**
182
+ * Sets the next connector to NOT.
183
+ * @returns This builder for chaining
184
+ */
185
+ not() {
186
+ this.queryBuilder.not();
187
+ return this;
188
+ }
189
+ /**
190
+ * Sets the next connector to AND explicitly.
191
+ * @returns This builder for chaining
192
+ */
193
+ and() {
194
+ this.queryBuilder.and();
195
+ return this;
196
+ }
197
+ /**
198
+ * Opens a parenthesized group.
199
+ * @returns This builder for chaining
200
+ */
201
+ openGroup() {
202
+ this.queryBuilder.openGroup();
203
+ return this;
204
+ }
205
+ /**
206
+ * Closes a parenthesized group.
207
+ * @returns This builder for chaining
208
+ */
209
+ closeGroup() {
210
+ this.queryBuilder.closeGroup();
211
+ return this;
212
+ }
213
+ /**
214
+ * Sets the fields to return.
215
+ * When T is a known entity type, provides autocomplete for field names.
216
+ * Also accepts string[] for nested fields like "authors.name".
217
+ * @param fieldList - Array of field names to return
218
+ * @returns This builder for chaining
219
+ */
220
+ fields(fieldList) {
221
+ this.queryBuilder.fields(fieldList);
222
+ return this;
223
+ }
224
+ /**
225
+ * Sets the sort field and order.
226
+ * @param field - Field name to sort by
227
+ * @param order - Sort direction (asc or desc)
228
+ * @returns This builder for chaining
229
+ */
230
+ sort(field, order = "asc") {
231
+ this.queryBuilder.sort(field, order);
232
+ return this;
233
+ }
234
+ /**
235
+ * Sets the number of results to skip (for pagination).
236
+ * @param count - Number of results to skip
237
+ * @returns This builder for chaining
238
+ */
239
+ skip(count) {
240
+ this.queryBuilder.skip(count);
241
+ return this;
242
+ }
243
+ /**
244
+ * Sets the maximum number of results to return.
245
+ * @param count - Maximum number of results
246
+ * @returns This builder for chaining
247
+ */
248
+ limit(count) {
249
+ this.queryBuilder.limit(count);
250
+ return this;
251
+ }
252
+ /**
253
+ * Gets the built DSL query string without executing.
254
+ * Useful for debugging or logging.
255
+ * @returns The DSL query string
256
+ */
257
+ getDsl() {
258
+ return this.queryBuilder.build();
259
+ }
260
+ /**
261
+ * Adds a citations_per_year time-series return clause.
262
+ * Returns citation counts per year for the specified range.
263
+ *
264
+ * @param startYear - Start year for the time series (inclusive)
265
+ * @param endYear - End year for the time series (inclusive)
266
+ * @returns This builder for chaining
267
+ *
268
+ * @example
269
+ * ```typescript
270
+ * const result = await client
271
+ * .publications()
272
+ * .for("machine learning")
273
+ * .returnCitationsPerYear(2010, 2023)
274
+ * .execute();
275
+ * ```
276
+ */
277
+ returnCitationsPerYear(startYear, endYear) {
278
+ this.queryBuilder.returnCitationsPerYear(startYear, endYear);
279
+ return this;
280
+ }
281
+ /**
282
+ * Adds a funding_per_year time-series return clause.
283
+ * Returns funding amounts per year for the specified range.
284
+ *
285
+ * @param startYear - Start year for the time series (inclusive)
286
+ * @param endYear - End year for the time series (inclusive)
287
+ * @param currency - Currency for the funding amounts (default: "USD")
288
+ * @returns This builder for chaining
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * const result = await client
293
+ * .grants()
294
+ * .for("cancer research")
295
+ * .returnFundingPerYear(2015, 2023, "EUR")
296
+ * .execute();
297
+ * ```
298
+ */
299
+ returnFundingPerYear(startYear, endYear, currency = "USD") {
300
+ this.queryBuilder.returnFundingPerYear(startYear, endYear, currency);
301
+ return this;
302
+ }
303
+ /**
304
+ * Sets the fields to return including unnest operations.
305
+ * Unnest flattens nested arrays into separate rows (Cartesian product).
306
+ *
307
+ * @param fieldList - Array of regular field names to return
308
+ * @param unnestFieldList - Array of field names to unnest
309
+ * @returns This builder for chaining
310
+ *
311
+ * @example
312
+ * ```typescript
313
+ * const result = await client
314
+ * .publications()
315
+ * .for("machine learning")
316
+ * .fieldsWithUnnest(["id", "title"], ["researchers", "category_for"])
317
+ * .execute();
318
+ * // Returns flattened rows - one row per researcher × category combination
319
+ * ```
320
+ */
321
+ fieldsWithUnnest(fieldList, unnestFieldList) {
322
+ this.queryBuilder.fieldsWithUnnest(fieldList, unnestFieldList);
323
+ return this;
324
+ }
325
+ /**
326
+ * Adds an unnest field to the return clause.
327
+ * Can be chained with fields() to add unnest operations.
328
+ *
329
+ * @param field - Field name to unnest
330
+ * @returns This builder for chaining
331
+ *
332
+ * @example
333
+ * ```typescript
334
+ * const result = await client
335
+ * .publications()
336
+ * .for("test")
337
+ * .fields(["id", "title"])
338
+ * .unnest("researchers")
339
+ * .unnest("category_for")
340
+ * .execute();
341
+ * ```
342
+ */
343
+ unnest(field) {
344
+ this.queryBuilder.addUnnest(field);
345
+ return this;
346
+ }
347
+ /**
348
+ * Builds and executes the query against the Dimensions API.
349
+ * @returns The query result with data and totalCount
350
+ * @throws {ValidationError} If response structure is invalid
351
+ */
352
+ async execute() {
353
+ const dsl = this.queryBuilder.build();
354
+ const response = await this.executor.rawQuery(dsl);
355
+ const entityResult = parseEntityResponse(response, this.entity);
356
+ return {
357
+ data: entityResult.data,
358
+ totalCount: entityResult.totalCount,
359
+ };
360
+ }
361
+ }
362
+ /**
363
+ * Fluent query builder with facet support.
364
+ * Extends FluentQueryBuilderBase to add type-safe facet methods.
365
+ *
366
+ * @template T - The entity type
367
+ * @template E - The entity type key
368
+ * @template TFacets - Record of tracked facet configurations
369
+ */
370
+ export class FluentQueryBuilderWithFacets extends FluentQueryBuilderBase {
371
+ facetConfigs;
372
+ constructor(executor, entity, queryBuilder, facetConfigs = {}) {
373
+ super(executor, entity, queryBuilder);
374
+ this.facetConfigs = facetConfigs;
375
+ }
376
+ /**
377
+ * Adds a simple facet return clause.
378
+ * Only allows valid facet fields for this entity type.
379
+ *
380
+ * **Important:** This method returns a **new** builder instance. You must use the
381
+ * returned builder for subsequent chaining — calling `withFacet()` on the original
382
+ * builder and discarding the result will silently lose the facet configuration.
383
+ *
384
+ * @param field - The facet field
385
+ * @param options - Optional limit for facet results
386
+ * @returns A new builder with tracked facet configuration (must be used for further chaining)
387
+ */
388
+ withFacet(field, options) {
389
+ const cloned = this.queryBuilder.clone();
390
+ cloned.returnFacet(field, options);
391
+ const newConfig = {
392
+ field,
393
+ limit: options?.limit,
394
+ };
395
+ return new FluentQueryBuilderWithFacets(this.executor, this.entity, cloned, {
396
+ ...this.facetConfigs,
397
+ [field]: newConfig,
398
+ });
399
+ }
400
+ /**
401
+ * Adds an aggregated facet return clause.
402
+ * Only allows valid facet fields and indicators for this entity type.
403
+ *
404
+ * **Important:** This method returns a **new** builder instance. You must use the
405
+ * returned builder for subsequent chaining — calling `withAggregate()` on the original
406
+ * builder and discarding the result will silently lose the aggregation configuration.
407
+ *
408
+ * @param field - The facet field
409
+ * @param indicators - Array of indicator names to aggregate
410
+ * @param options - Optional sort and limit options
411
+ * @returns A new builder with tracked facet configuration (must be used for further chaining)
412
+ */
413
+ withAggregate(field, indicators, options) {
414
+ const cloned = this.queryBuilder.clone();
415
+ cloned.returnAggregate(field, [...indicators], options);
416
+ const newConfig = {
417
+ field,
418
+ indicators,
419
+ sortBy: options?.sortBy,
420
+ sortOrder: options?.sortOrder,
421
+ limit: options?.limit,
422
+ };
423
+ return new FluentQueryBuilderWithFacets(this.executor, this.entity, cloned, {
424
+ ...this.facetConfigs,
425
+ [field]: newConfig,
426
+ });
427
+ }
428
+ /**
429
+ * Executes query and returns result with typed facets.
430
+ * Returns facets as a record with TypedFacetResult for each configured facet.
431
+ * Bucket types are inferred from the entity type and facet configuration.
432
+ * @param options - Optional configuration for parsing the response
433
+ * @returns Result with entities and typed facet results
434
+ */
435
+ async executeWithFacets(options) {
436
+ const dsl = this.queryBuilder.build();
437
+ const response = await this.executor.rawQuery(dsl);
438
+ // Build facet field configs with indicators for validation
439
+ const facetFieldConfigs = {};
440
+ for (const [field, config] of Object.entries(this.facetConfigs)) {
441
+ facetFieldConfigs[field] = {
442
+ indicators: config.indicators,
443
+ };
444
+ }
445
+ return parseFacetResponse(response, this.entity, facetFieldConfigs, options);
446
+ }
447
+ }
448
+ /**
449
+ * Fluent query builder that wraps QueryBuilder with execute() capability.
450
+ * Provides a chainable API for building and executing Dimensions DSL queries.
451
+ *
452
+ * @template T - The entity type
453
+ * @template E - The entity type key (defaults to EntityType for backward compatibility)
454
+ *
455
+ * @example
456
+ * ```typescript
457
+ * // Use via DimensionsClient entity methods
458
+ * const result = await client
459
+ * .publications()
460
+ * .for("machine learning")
461
+ * .where("year", ">=", 2020)
462
+ * .fields(["id", "title", "doi"])
463
+ * .sort("times_cited", "desc")
464
+ * .limit(100)
465
+ * .execute();
466
+ *
467
+ * console.log(`Found ${result.totalCount} publications`);
468
+ * for (const pub of result.data) {
469
+ * console.log(pub.title);
470
+ * }
471
+ * ```
472
+ */
473
+ export class FluentQueryBuilder extends FluentQueryBuilderBase {
474
+ /**
475
+ * Creates a new FluentQueryBuilder instance.
476
+ * @param executor - The query executor to use for executing queries
477
+ * @param entity - The entity type to search
478
+ */
479
+ constructor(executor, entity, schemaStore) {
480
+ const queryBuilder = new QueryBuilder(schemaStore).search(entity);
481
+ super(executor, entity, queryBuilder);
482
+ }
483
+ /**
484
+ * Adds a simple facet return clause.
485
+ * Transitions to FluentQueryBuilderWithFacets for facet execution.
486
+ *
487
+ * **Important:** This method returns a **new** builder instance. You must use the
488
+ * returned builder for subsequent chaining — calling `withFacet()` on the original
489
+ * builder and discarding the result will silently lose the facet configuration.
490
+ *
491
+ * @param field - The facet field
492
+ * @param options - Optional limit for facet results
493
+ * @returns A new builder with facet support (must be used for further chaining)
494
+ */
495
+ withFacet(field, options) {
496
+ const cloned = this.queryBuilder.clone();
497
+ cloned.returnFacet(field, options);
498
+ const config = {
499
+ field,
500
+ limit: options?.limit,
501
+ };
502
+ return new FluentQueryBuilderWithFacets(this.executor, this.entity, cloned, {
503
+ [field]: config,
504
+ });
505
+ }
506
+ /**
507
+ * Adds an aggregated facet return clause.
508
+ * Transitions to FluentQueryBuilderWithFacets for facet execution.
509
+ *
510
+ * **Important:** This method returns a **new** builder instance. You must use the
511
+ * returned builder for subsequent chaining — calling `withAggregate()` on the original
512
+ * builder and discarding the result will silently lose the aggregation configuration.
513
+ *
514
+ * @param field - The facet field
515
+ * @param indicators - Array of indicator names to aggregate
516
+ * @param options - Optional sort and limit options
517
+ * @returns A new builder with facet support (must be used for further chaining)
518
+ */
519
+ withAggregate(field, indicators, options) {
520
+ const cloned = this.queryBuilder.clone();
521
+ cloned.returnAggregate(field, [...indicators], options);
522
+ const config = {
523
+ field,
524
+ indicators,
525
+ sortBy: options?.sortBy,
526
+ sortOrder: options?.sortOrder,
527
+ limit: options?.limit,
528
+ };
529
+ return new FluentQueryBuilderWithFacets(this.executor, this.entity, cloned, {
530
+ [field]: config,
531
+ });
532
+ }
533
+ }
534
+ //# sourceMappingURL=fluent-query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent-query-builder.js","sourceRoot":"","sources":["../../src/dsl/fluent-query-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @digital-science/dimensions-dsl - DSL query builders and commands for Dimensions API.
3
+ *
4
+ * This package provides:
5
+ * - DimensionsClient with fluent API and rawQuery
6
+ * - QueryBuilder for DSL construction
7
+ * - Function commands (classify, extract-*)
8
+ * - Response parsers and runtime describe schema (`SchemaStore`)
9
+ *
10
+ * @module @digital-science/dimensions-dsl
11
+ */
12
+ export type { Command, CommandInput, CommandOutput, DimensionsClientConfig, QueryExecutor, } from "../client/index.js";
13
+ export { AuthenticationError, DimensionsError, NetworkError, QuerySyntaxError, RateLimitError, ServerError, TimeoutError, ValidationError, } from "../client/index.js";
14
+ export { DimensionsClient, type RateLimitInfo } from "./client.js";
15
+ export { applyFilters } from "./commands/apply-filters.js";
16
+ export type { ExtendedWhereFilterInput, WhereFilterInput } from "./commands/index.js";
17
+ export { ClassifyCommand, type ClassifyCommandInput, type ClassifyCommandParsedInput, ClassifyInputSchema, EntitySchema, ExtendedWhereFilterSchema, ExtractAffiliationsCommand, type ExtractAffiliationsCommandInput, type ExtractAffiliationsCommandParsedInput, ExtractAffiliationsInputSchema, ExtractConceptsCommand, type ExtractConceptsCommandInput, type ExtractConceptsCommandParsedInput, ExtractConceptsInputSchema, ExtractGrantsCommand, type ExtractGrantsCommandInput, type ExtractGrantsCommandParsedInput, ExtractGrantsInputSchema, WhereFilterSchema, } from "./commands/index.js";
18
+ export type { EntityTypeMap, FacetQueryResult, FluentQueryResult, TypedFacetResult, } from "./fluent-query-builder.js";
19
+ export { FluentQueryBuilder, FluentQueryBuilderWithFacets, } from "./fluent-query-builder.js";
20
+ export { AGGREGATE_ID_CAP, type BatchPaginationOptions, buildPaginationMetadata, CONFIRM_LARGE_FETCH_PAGES, CONFIRM_LARGE_FETCH_RECORDS, DEFAULT_BATCH_MAX_PAGES, HARD_MAX_BATCH_PAGES, LARGE_RESULT_THRESHOLD, largeResultWarning, type PaginationInput, type PaginationMetadata, resolveSkipAndLimit, validateBatchPagination, validatePaginationBounds, } from "./pagination.js";
21
+ export { QueryBuilder } from "./query-builder.js";
22
+ export { type EntityResult, type FacetFieldConfig, type ParseFacetOptions, parseEntityResponse, parseFacetResponse, } from "./response-parser.js";
23
+ export type { DescribeField, DescribeSchemaResponse, DescribeVersionResponse, EntityDescribe, LoadSchemaOptions, SchemaCacheEntry, SchemaCacheEnvelope, SchemaLoadSource, SchemaSourceSummary, SchemaStoreMetadata, SchemaSummary, SourceDescribe, StructuredEntityType, } from "./schema/index.js";
24
+ export { assertValidEntity, assertValidSearchIndex, buildSchemaSummary, clearSchemaCache, createSchemaStoreFromResponse, DEFAULT_SCHEMA_CACHE_TTL_MS, extractDescribeSchema, extractDescribeVersion, getCachedSchemaStore, getOrLoadSchema, isCacheFresh, loadSchema, parseCachePayload, SCHEMA_LIMITS, SCHEMA_RESOURCE_URIS, SchemaStore, STRUCTURED_ENTITY_TYPES, searchResultKey, searchToolName, } from "./schema/index.js";
25
+ export type { Affiliation, AffiliationInput, AffiliationResult, AggregatedFacetReturnClause, Author, BaseBucket, BucketWithAggregations, CategoryCode, ClassificationEntry, ClassificationSystem, ClassifyInput, ClassifyResponse, ClinicalTrial, ConceptBasic, ConceptScore, ConceptWithScore, Currency, Dataset, DimensionsEntityBase, EntityReturnClause, ExtractAffiliationsInput, ExtractAffiliationsResponse, ExtractConceptsInput, ExtractConceptsResponse, ExtractGrantsInput, ExtractGrantsResponse, FacetClause, FacetReturnClause, FunderOrg, Grant, GroupedReturnClause, Journal, Organization, Patent, PolicyDocument, Publication, Researcher, ResearchOrg, ReturnClause, TimeSeriesDataPoint, TimeSeriesFunction, TimeSeriesResult, TimeSeriesReturnClause, UnnestField, } from "./types/index.js";
26
+ export { CLASSIFICATION_SYSTEMS, SUPPORTED_CURRENCIES } from "./types/index.js";
27
+ export type { EntityType, SearchIndex, SortOrder, WhereOperator, } from "./types/vocabulary.js";
28
+ export { VALID_ENTITIES, VALID_INDEXES, VALID_OPERATORS, } from "./types/vocabulary.js";
29
+ export { buildExecuteDslPolicyHints, buildUsagePolicy, type DslPaginationModifiers, type ExecuteDslPolicyOptions, isFacetOnlyQuery, POLICY_NOTICE, parseDslPagination, type SearchPolicyOptions, USAGE_POLICY_RESOURCE_URI, USAGE_POLICY_URL, type UsagePolicyPayload, validateExecuteDslPolicy, validateSearchPaginationPolicy, } from "./usage-policy.js";
30
+ export { escapeDslString } from "./utils/escape.js";
31
+ export { validateFieldName } from "./utils/validate-field-name.js";
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @digital-science/dimensions-dsl - DSL query builders and commands for Dimensions API.
3
+ *
4
+ * This package provides:
5
+ * - DimensionsClient with fluent API and rawQuery
6
+ * - QueryBuilder for DSL construction
7
+ * - Function commands (classify, extract-*)
8
+ * - Response parsers and runtime describe schema (`SchemaStore`)
9
+ *
10
+ * @module @digital-science/dimensions-dsl
11
+ */
12
+ export { AuthenticationError, DimensionsError, NetworkError, QuerySyntaxError, RateLimitError, ServerError, TimeoutError, ValidationError, } from "../client/index.js";
13
+ // Client
14
+ export { DimensionsClient } from "./client.js";
15
+ export { applyFilters } from "./commands/apply-filters.js";
16
+ export { ClassifyCommand, ClassifyInputSchema, EntitySchema, ExtendedWhereFilterSchema, ExtractAffiliationsCommand, ExtractAffiliationsInputSchema, ExtractConceptsCommand, ExtractConceptsInputSchema, ExtractGrantsCommand, ExtractGrantsInputSchema, WhereFilterSchema, } from "./commands/index.js";
17
+ export { FluentQueryBuilder, FluentQueryBuilderWithFacets, } from "./fluent-query-builder.js";
18
+ // Pagination (Dimensions usage policy limits)
19
+ export { AGGREGATE_ID_CAP, buildPaginationMetadata, CONFIRM_LARGE_FETCH_PAGES, CONFIRM_LARGE_FETCH_RECORDS, DEFAULT_BATCH_MAX_PAGES, HARD_MAX_BATCH_PAGES, LARGE_RESULT_THRESHOLD, largeResultWarning, resolveSkipAndLimit, validateBatchPagination, validatePaginationBounds, } from "./pagination.js";
20
+ // Query Builders
21
+ export { QueryBuilder } from "./query-builder.js";
22
+ // Response Parser
23
+ export { parseEntityResponse, parseFacetResponse, } from "./response-parser.js";
24
+ export { assertValidEntity, assertValidSearchIndex, buildSchemaSummary, clearSchemaCache, createSchemaStoreFromResponse, DEFAULT_SCHEMA_CACHE_TTL_MS, extractDescribeSchema, extractDescribeVersion, getCachedSchemaStore, getOrLoadSchema, isCacheFresh, loadSchema, parseCachePayload, SCHEMA_LIMITS, SCHEMA_RESOURCE_URIS, SchemaStore, STRUCTURED_ENTITY_TYPES, searchResultKey, searchToolName, } from "./schema/index.js";
25
+ export { CLASSIFICATION_SYSTEMS, SUPPORTED_CURRENCIES } from "./types/index.js";
26
+ export { VALID_ENTITIES, VALID_INDEXES, VALID_OPERATORS, } from "./types/vocabulary.js";
27
+ export { buildExecuteDslPolicyHints, buildUsagePolicy, isFacetOnlyQuery, POLICY_NOTICE, parseDslPagination, USAGE_POLICY_RESOURCE_URI, USAGE_POLICY_URL, validateExecuteDslPolicy, validateSearchPaginationPolicy, } from "./usage-policy.js";
28
+ // Utils
29
+ export { escapeDslString } from "./utils/escape.js";
30
+ export { validateFieldName } from "./utils/validate-field-name.js";
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dsl/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EACL,eAAe,EAGf,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,0BAA0B,EAG1B,8BAA8B,EAC9B,sBAAsB,EAGtB,0BAA0B,EAC1B,oBAAoB,EAGpB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,8CAA8C;AAC9C,OAAO,EACL,gBAAgB,EAEhB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAGlB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,kBAAkB;AAClB,OAAO,EAIL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAgD3B,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOhF,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAGhB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAElB,yBAAyB,EACzB,gBAAgB,EAEhB,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,mBAAmB,CAAC;AAC3B,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC"}