@graphext/cuery 0.2.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 (712) hide show
  1. package/README.md +18 -0
  2. package/esm/_dnt.shims.d.ts +6 -0
  3. package/esm/_dnt.shims.d.ts.map +1 -0
  4. package/esm/_dnt.shims.js +61 -0
  5. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts +5 -0
  6. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts.map +1 -0
  7. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/index.js +4 -0
  8. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts +2 -0
  9. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.js +1 -0
  11. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts +18 -0
  12. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.js +17 -0
  14. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts +51 -0
  15. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.js +31 -0
  17. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts +31 -0
  18. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.js +48 -0
  20. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts +14 -0
  21. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.js +18 -0
  23. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts +23 -0
  24. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.js +30 -0
  26. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts +32 -0
  27. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.js +15 -0
  29. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts +674 -0
  30. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.js +1040 -0
  32. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts +296 -0
  33. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.js +925 -0
  35. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts +279 -0
  36. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.js +560 -0
  38. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts +53 -0
  39. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts.map +1 -0
  40. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.js +65 -0
  41. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts +15 -0
  42. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts.map +1 -0
  43. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.js +36 -0
  44. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts +211 -0
  45. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts.map +1 -0
  46. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.js +181 -0
  47. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts +15 -0
  48. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts.map +1 -0
  49. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.js +14 -0
  50. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts +89 -0
  51. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts.map +1 -0
  52. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.js +1 -0
  53. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts +50 -0
  54. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts.map +1 -0
  55. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.js +93 -0
  56. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts +79 -0
  57. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts.map +1 -0
  58. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.js +127 -0
  59. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts +36 -0
  60. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts.map +1 -0
  61. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.js +52 -0
  62. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts +1115 -0
  63. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts.map +1 -0
  64. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.js +1954 -0
  65. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts +56 -0
  66. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts.map +1 -0
  67. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.js +1 -0
  68. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts +91 -0
  69. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts.map +1 -0
  70. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.js +920 -0
  71. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts +198 -0
  72. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts.map +1 -0
  73. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.js +600 -0
  74. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts +6 -0
  75. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts.map +1 -0
  76. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.js +5 -0
  77. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts +5 -0
  78. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts.map +1 -0
  79. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.js +116 -0
  80. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts +5 -0
  81. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts.map +1 -0
  82. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.js +115 -0
  83. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts +5 -0
  84. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts.map +1 -0
  85. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.js +164 -0
  86. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts +6 -0
  87. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts.map +1 -0
  88. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.js +128 -0
  89. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts +5 -0
  90. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts.map +1 -0
  91. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.js +118 -0
  92. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts +5 -0
  93. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts.map +1 -0
  94. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.js +135 -0
  95. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts +5 -0
  96. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts.map +1 -0
  97. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.js +131 -0
  98. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts +5 -0
  99. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts.map +1 -0
  100. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.js +116 -0
  101. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts +6 -0
  102. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts.map +1 -0
  103. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.js +117 -0
  104. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts +6 -0
  105. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts.map +1 -0
  106. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.js +116 -0
  107. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts +5 -0
  108. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts.map +1 -0
  109. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.js +149 -0
  110. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts +5 -0
  111. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts.map +1 -0
  112. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.js +122 -0
  113. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts +5 -0
  114. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts.map +1 -0
  115. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.js +122 -0
  116. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts +5 -0
  117. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts.map +1 -0
  118. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.js +117 -0
  119. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts +5 -0
  120. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts.map +1 -0
  121. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.js +116 -0
  122. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts +5 -0
  123. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts.map +1 -0
  124. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.js +117 -0
  125. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts +5 -0
  126. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts.map +1 -0
  127. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.js +117 -0
  128. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts +5 -0
  129. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts.map +1 -0
  130. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.js +116 -0
  131. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts +48 -0
  132. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts.map +1 -0
  133. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.js +47 -0
  134. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts +6 -0
  135. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts.map +1 -0
  136. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.js +117 -0
  137. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts +5 -0
  138. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts.map +1 -0
  139. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.js +117 -0
  140. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts +5 -0
  141. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts.map +1 -0
  142. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.js +115 -0
  143. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts +6 -0
  144. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts.map +1 -0
  145. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.js +125 -0
  146. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts +6 -0
  147. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts.map +1 -0
  148. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.js +5 -0
  149. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts +5 -0
  150. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts.map +1 -0
  151. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.js +117 -0
  152. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts +5 -0
  153. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts.map +1 -0
  154. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.js +121 -0
  155. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts +6 -0
  156. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts.map +1 -0
  157. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.js +230 -0
  158. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts +5 -0
  159. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts.map +1 -0
  160. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.js +118 -0
  161. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts +5 -0
  162. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts.map +1 -0
  163. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.js +116 -0
  164. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts +5 -0
  165. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts.map +1 -0
  166. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.js +117 -0
  167. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts +5 -0
  168. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts.map +1 -0
  169. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.js +116 -0
  170. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts +5 -0
  171. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts.map +1 -0
  172. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.js +117 -0
  173. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts +5 -0
  174. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts.map +1 -0
  175. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.js +117 -0
  176. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts +5 -0
  177. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts.map +1 -0
  178. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.js +122 -0
  179. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts +5 -0
  180. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts.map +1 -0
  181. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.js +116 -0
  182. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts +5 -0
  183. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts.map +1 -0
  184. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.js +164 -0
  185. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts +5 -0
  186. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts.map +1 -0
  187. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.js +117 -0
  188. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts +5 -0
  189. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts.map +1 -0
  190. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.js +118 -0
  191. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts +5 -0
  192. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts.map +1 -0
  193. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.js +117 -0
  194. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts +5 -0
  195. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts.map +1 -0
  196. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.js +117 -0
  197. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts +6 -0
  198. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts.map +1 -0
  199. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.js +115 -0
  200. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts +6 -0
  201. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts.map +1 -0
  202. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.js +5 -0
  203. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts +5 -0
  204. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts.map +1 -0
  205. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.js +117 -0
  206. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts +5 -0
  207. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts.map +1 -0
  208. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.js +117 -0
  209. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts +5 -0
  210. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts.map +1 -0
  211. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.js +116 -0
  212. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts +5 -0
  213. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts.map +1 -0
  214. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.js +115 -0
  215. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts +5 -0
  216. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts.map +1 -0
  217. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.js +116 -0
  218. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts +5 -0
  219. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts.map +1 -0
  220. package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.js +117 -0
  221. package/esm/mod.d.ts +23 -0
  222. package/esm/mod.d.ts.map +1 -0
  223. package/esm/mod.js +22 -0
  224. package/esm/package.json +3 -0
  225. package/esm/src/api.d.ts +42 -0
  226. package/esm/src/api.d.ts.map +1 -0
  227. package/esm/src/api.js +161 -0
  228. package/esm/src/apis/chatgptScraper/brightdata.d.ts +3 -0
  229. package/esm/src/apis/chatgptScraper/brightdata.d.ts.map +1 -0
  230. package/esm/src/apis/chatgptScraper/brightdata.js +172 -0
  231. package/esm/src/apis/chatgptScraper/index.d.ts +10 -0
  232. package/esm/src/apis/chatgptScraper/index.d.ts.map +1 -0
  233. package/esm/src/apis/chatgptScraper/index.js +41 -0
  234. package/esm/src/apis/chatgptScraper/oxy.d.ts +3 -0
  235. package/esm/src/apis/chatgptScraper/oxy.d.ts.map +1 -0
  236. package/esm/src/apis/chatgptScraper/oxy.js +156 -0
  237. package/esm/src/apis/chatgptScraper/scraper.d.ts +46 -0
  238. package/esm/src/apis/chatgptScraper/scraper.d.ts.map +1 -0
  239. package/esm/src/apis/chatgptScraper/scraper.js +98 -0
  240. package/esm/src/apis/googleAds/apiTypes.d.ts +131 -0
  241. package/esm/src/apis/googleAds/apiTypes.d.ts.map +1 -0
  242. package/esm/src/apis/googleAds/apiTypes.js +1 -0
  243. package/esm/src/apis/googleAds/client.d.ts +2 -0
  244. package/esm/src/apis/googleAds/client.d.ts.map +1 -0
  245. package/esm/src/apis/googleAds/client.js +97 -0
  246. package/esm/src/apis/googleAds/countryResourceMap.d.ts +2 -0
  247. package/esm/src/apis/googleAds/countryResourceMap.d.ts.map +1 -0
  248. package/esm/src/apis/googleAds/countryResourceMap.js +874 -0
  249. package/esm/src/apis/googleAds/keywordPlanner.d.ts +64 -0
  250. package/esm/src/apis/googleAds/keywordPlanner.d.ts.map +1 -0
  251. package/esm/src/apis/googleAds/keywordPlanner.js +462 -0
  252. package/esm/src/apis/googleAds/languageResourceMap.d.ts +2 -0
  253. package/esm/src/apis/googleAds/languageResourceMap.d.ts.map +1 -0
  254. package/esm/src/apis/googleAds/languageResourceMap.js +208 -0
  255. package/esm/src/apis/hasdata/aim.d.ts +4 -0
  256. package/esm/src/apis/hasdata/aim.d.ts.map +1 -0
  257. package/esm/src/apis/hasdata/aim.js +32 -0
  258. package/esm/src/apis/hasdata/aio.d.ts +4 -0
  259. package/esm/src/apis/hasdata/aio.d.ts.map +1 -0
  260. package/esm/src/apis/hasdata/aio.js +42 -0
  261. package/esm/src/apis/hasdata/helpers.d.ts +55 -0
  262. package/esm/src/apis/hasdata/helpers.d.ts.map +1 -0
  263. package/esm/src/apis/hasdata/helpers.js +182 -0
  264. package/esm/src/async.d.ts +29 -0
  265. package/esm/src/async.d.ts.map +1 -0
  266. package/esm/src/async.js +109 -0
  267. package/esm/src/models.d.ts +18 -0
  268. package/esm/src/models.d.ts.map +1 -0
  269. package/esm/src/models.js +48 -0
  270. package/esm/src/openai.d.ts +17 -0
  271. package/esm/src/openai.d.ts.map +1 -0
  272. package/esm/src/openai.js +136 -0
  273. package/esm/src/schemas/brand.schema.d.ts +182 -0
  274. package/esm/src/schemas/brand.schema.d.ts.map +1 -0
  275. package/esm/src/schemas/brand.schema.js +49 -0
  276. package/esm/src/schemas/entity.schema.d.ts +14 -0
  277. package/esm/src/schemas/entity.schema.d.ts.map +1 -0
  278. package/esm/src/schemas/entity.schema.js +8 -0
  279. package/esm/src/schemas/funnel.schema.d.ts +94 -0
  280. package/esm/src/schemas/funnel.schema.d.ts.map +1 -0
  281. package/esm/src/schemas/funnel.schema.js +46 -0
  282. package/esm/src/schemas/index.d.ts +21 -0
  283. package/esm/src/schemas/index.d.ts.map +1 -0
  284. package/esm/src/schemas/index.js +13 -0
  285. package/esm/src/schemas/keyword.schema.d.ts +44 -0
  286. package/esm/src/schemas/keyword.schema.d.ts.map +1 -0
  287. package/esm/src/schemas/keyword.schema.js +6 -0
  288. package/esm/src/schemas/models.schema.d.ts +6 -0
  289. package/esm/src/schemas/models.schema.d.ts.map +1 -0
  290. package/esm/src/schemas/models.schema.js +1 -0
  291. package/esm/src/schemas/persona.schema.d.ts +50 -0
  292. package/esm/src/schemas/persona.schema.d.ts.map +1 -0
  293. package/esm/src/schemas/persona.schema.js +21 -0
  294. package/esm/src/schemas/pipeline.schema.d.ts +146 -0
  295. package/esm/src/schemas/pipeline.schema.d.ts.map +1 -0
  296. package/esm/src/schemas/pipeline.schema.js +16 -0
  297. package/esm/src/schemas/search.schema.d.ts +29 -0
  298. package/esm/src/schemas/search.schema.d.ts.map +1 -0
  299. package/esm/src/schemas/search.schema.js +1 -0
  300. package/esm/src/schemas/seedKeyword.schema.d.ts +15 -0
  301. package/esm/src/schemas/seedKeyword.schema.d.ts.map +1 -0
  302. package/esm/src/schemas/seedKeyword.schema.js +7 -0
  303. package/esm/src/schemas/sentiment.schema.d.ts +22 -0
  304. package/esm/src/schemas/sentiment.schema.d.ts.map +1 -0
  305. package/esm/src/schemas/sentiment.schema.js +9 -0
  306. package/esm/src/schemas/sources.schema.d.ts +29 -0
  307. package/esm/src/schemas/sources.schema.d.ts.map +1 -0
  308. package/esm/src/schemas/sources.schema.js +1 -0
  309. package/esm/src/schemas/topics.schema.d.ts +33 -0
  310. package/esm/src/schemas/topics.schema.d.ts.map +1 -0
  311. package/esm/src/schemas/topics.schema.js +14 -0
  312. package/esm/src/tools/brands.d.ts +55 -0
  313. package/esm/src/tools/brands.d.ts.map +1 -0
  314. package/esm/src/tools/brands.js +458 -0
  315. package/esm/src/tools/classifier.d.ts +17 -0
  316. package/esm/src/tools/classifier.d.ts.map +1 -0
  317. package/esm/src/tools/classifier.js +135 -0
  318. package/esm/src/tools/entities.d.ts +19 -0
  319. package/esm/src/tools/entities.d.ts.map +1 -0
  320. package/esm/src/tools/entities.js +80 -0
  321. package/esm/src/tools/funnel.d.ts +41 -0
  322. package/esm/src/tools/funnel.d.ts.map +1 -0
  323. package/esm/src/tools/funnel.js +372 -0
  324. package/esm/src/tools/keywords.d.ts +21 -0
  325. package/esm/src/tools/keywords.d.ts.map +1 -0
  326. package/esm/src/tools/keywords.js +172 -0
  327. package/esm/src/tools/personas.d.ts +3 -0
  328. package/esm/src/tools/personas.d.ts.map +1 -0
  329. package/esm/src/tools/personas.js +88 -0
  330. package/esm/src/tools/scorer.d.ts +14 -0
  331. package/esm/src/tools/scorer.d.ts.map +1 -0
  332. package/esm/src/tools/scorer.js +54 -0
  333. package/esm/src/tools/search.d.ts +24 -0
  334. package/esm/src/tools/search.d.ts.map +1 -0
  335. package/esm/src/tools/search.js +130 -0
  336. package/esm/src/tools/seedKeywords.d.ts +68 -0
  337. package/esm/src/tools/seedKeywords.d.ts.map +1 -0
  338. package/esm/src/tools/seedKeywords.js +214 -0
  339. package/esm/src/tools/sentiment.d.ts +11 -0
  340. package/esm/src/tools/sentiment.d.ts.map +1 -0
  341. package/esm/src/tools/sentiment.js +68 -0
  342. package/esm/src/tools/sources.d.ts +39 -0
  343. package/esm/src/tools/sources.d.ts.map +1 -0
  344. package/esm/src/tools/sources.js +263 -0
  345. package/esm/src/tools/topics.d.ts +74 -0
  346. package/esm/src/tools/topics.d.ts.map +1 -0
  347. package/esm/src/tools/topics.js +229 -0
  348. package/esm/src/tools/translate.d.ts +44 -0
  349. package/esm/src/tools/translate.d.ts.map +1 -0
  350. package/esm/src/tools/translate.js +112 -0
  351. package/esm/src/urls.d.ts +10 -0
  352. package/esm/src/urls.d.ts.map +1 -0
  353. package/esm/src/urls.js +49 -0
  354. package/esm/src/utils.d.ts +38 -0
  355. package/esm/src/utils.d.ts.map +1 -0
  356. package/esm/src/utils.js +175 -0
  357. package/package.json +32 -0
  358. package/script/_dnt.shims.d.ts +6 -0
  359. package/script/_dnt.shims.d.ts.map +1 -0
  360. package/script/_dnt.shims.js +65 -0
  361. package/script/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts +5 -0
  362. package/script/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts.map +1 -0
  363. package/script/deps/jsr.io/@zod/zod/4.1.12/src/index.js +43 -0
  364. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts +2 -0
  365. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts.map +1 -0
  366. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.js +32 -0
  367. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts +18 -0
  368. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts.map +1 -0
  369. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.js +57 -0
  370. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts +51 -0
  371. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts.map +1 -0
  372. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.js +71 -0
  373. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts +31 -0
  374. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts.map +1 -0
  375. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.js +84 -0
  376. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts +14 -0
  377. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts.map +1 -0
  378. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.js +80 -0
  379. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts +23 -0
  380. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts.map +1 -0
  381. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.js +70 -0
  382. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts +32 -0
  383. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts.map +1 -0
  384. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.js +51 -0
  385. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts +674 -0
  386. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts.map +1 -0
  387. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.js +1161 -0
  388. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts +296 -0
  389. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts.map +1 -0
  390. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.js +1066 -0
  391. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts +279 -0
  392. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts.map +1 -0
  393. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.js +596 -0
  394. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts +53 -0
  395. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts.map +1 -0
  396. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.js +72 -0
  397. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts +15 -0
  398. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts.map +1 -0
  399. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.js +40 -0
  400. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts +211 -0
  401. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts.map +1 -0
  402. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.js +222 -0
  403. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts +15 -0
  404. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts.map +1 -0
  405. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.js +53 -0
  406. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts +89 -0
  407. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts.map +1 -0
  408. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.js +2 -0
  409. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts +50 -0
  410. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts.map +1 -0
  411. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.js +141 -0
  412. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts +79 -0
  413. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts.map +1 -0
  414. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.js +136 -0
  415. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts +36 -0
  416. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts.map +1 -0
  417. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.js +57 -0
  418. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts +1115 -0
  419. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts.map +1 -0
  420. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.js +1995 -0
  421. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts +56 -0
  422. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts.map +1 -0
  423. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.js +2 -0
  424. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts +91 -0
  425. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts.map +1 -0
  426. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.js +925 -0
  427. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts +198 -0
  428. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts.map +1 -0
  429. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.js +657 -0
  430. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts +6 -0
  431. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts.map +1 -0
  432. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.js +8 -0
  433. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts +5 -0
  434. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts.map +1 -0
  435. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.js +152 -0
  436. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts +5 -0
  437. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts.map +1 -0
  438. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.js +151 -0
  439. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts +5 -0
  440. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts.map +1 -0
  441. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.js +200 -0
  442. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts +6 -0
  443. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts.map +1 -0
  444. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.js +166 -0
  445. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts +5 -0
  446. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts.map +1 -0
  447. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.js +154 -0
  448. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts +5 -0
  449. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts.map +1 -0
  450. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.js +171 -0
  451. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts +5 -0
  452. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts.map +1 -0
  453. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.js +167 -0
  454. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts +5 -0
  455. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts.map +1 -0
  456. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.js +152 -0
  457. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts +6 -0
  458. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts.map +1 -0
  459. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.js +155 -0
  460. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts +6 -0
  461. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts.map +1 -0
  462. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.js +154 -0
  463. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts +5 -0
  464. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts.map +1 -0
  465. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.js +185 -0
  466. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts +5 -0
  467. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts.map +1 -0
  468. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.js +158 -0
  469. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts +5 -0
  470. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts.map +1 -0
  471. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.js +158 -0
  472. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts +5 -0
  473. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts.map +1 -0
  474. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.js +153 -0
  475. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts +5 -0
  476. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts.map +1 -0
  477. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.js +152 -0
  478. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts +5 -0
  479. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts.map +1 -0
  480. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.js +153 -0
  481. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts +5 -0
  482. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts.map +1 -0
  483. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.js +153 -0
  484. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts +5 -0
  485. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts.map +1 -0
  486. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.js +152 -0
  487. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts +48 -0
  488. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts.map +1 -0
  489. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.js +100 -0
  490. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts +6 -0
  491. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts.map +1 -0
  492. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.js +155 -0
  493. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts +5 -0
  494. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts.map +1 -0
  495. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.js +153 -0
  496. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts +5 -0
  497. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts.map +1 -0
  498. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.js +151 -0
  499. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts +6 -0
  500. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts.map +1 -0
  501. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.js +163 -0
  502. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts +6 -0
  503. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts.map +1 -0
  504. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.js +11 -0
  505. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts +5 -0
  506. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts.map +1 -0
  507. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.js +153 -0
  508. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts +5 -0
  509. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts.map +1 -0
  510. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.js +157 -0
  511. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts +6 -0
  512. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts.map +1 -0
  513. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.js +268 -0
  514. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts +5 -0
  515. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts.map +1 -0
  516. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.js +154 -0
  517. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts +5 -0
  518. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts.map +1 -0
  519. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.js +152 -0
  520. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts +5 -0
  521. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts.map +1 -0
  522. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.js +153 -0
  523. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts +5 -0
  524. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts.map +1 -0
  525. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.js +152 -0
  526. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts +5 -0
  527. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts.map +1 -0
  528. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.js +153 -0
  529. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts +5 -0
  530. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts.map +1 -0
  531. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.js +153 -0
  532. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts +5 -0
  533. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts.map +1 -0
  534. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.js +158 -0
  535. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts +5 -0
  536. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts.map +1 -0
  537. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.js +152 -0
  538. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts +5 -0
  539. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts.map +1 -0
  540. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.js +200 -0
  541. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts +5 -0
  542. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts.map +1 -0
  543. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.js +153 -0
  544. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts +5 -0
  545. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts.map +1 -0
  546. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.js +154 -0
  547. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts +5 -0
  548. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts.map +1 -0
  549. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.js +153 -0
  550. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts +5 -0
  551. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts.map +1 -0
  552. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.js +153 -0
  553. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts +6 -0
  554. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts.map +1 -0
  555. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.js +153 -0
  556. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts +6 -0
  557. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts.map +1 -0
  558. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.js +11 -0
  559. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts +5 -0
  560. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts.map +1 -0
  561. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.js +153 -0
  562. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts +5 -0
  563. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts.map +1 -0
  564. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.js +153 -0
  565. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts +5 -0
  566. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts.map +1 -0
  567. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.js +152 -0
  568. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts +5 -0
  569. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts.map +1 -0
  570. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.js +151 -0
  571. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts +5 -0
  572. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts.map +1 -0
  573. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.js +152 -0
  574. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts +5 -0
  575. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts.map +1 -0
  576. package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.js +153 -0
  577. package/script/mod.d.ts +23 -0
  578. package/script/mod.d.ts.map +1 -0
  579. package/script/mod.js +38 -0
  580. package/script/package.json +3 -0
  581. package/script/src/api.d.ts +42 -0
  582. package/script/src/api.d.ts.map +1 -0
  583. package/script/src/api.js +172 -0
  584. package/script/src/apis/chatgptScraper/brightdata.d.ts +3 -0
  585. package/script/src/apis/chatgptScraper/brightdata.d.ts.map +1 -0
  586. package/script/src/apis/chatgptScraper/brightdata.js +208 -0
  587. package/script/src/apis/chatgptScraper/index.d.ts +10 -0
  588. package/script/src/apis/chatgptScraper/index.d.ts.map +1 -0
  589. package/script/src/apis/chatgptScraper/index.js +81 -0
  590. package/script/src/apis/chatgptScraper/oxy.d.ts +3 -0
  591. package/script/src/apis/chatgptScraper/oxy.d.ts.map +1 -0
  592. package/script/src/apis/chatgptScraper/oxy.js +192 -0
  593. package/script/src/apis/chatgptScraper/scraper.d.ts +46 -0
  594. package/script/src/apis/chatgptScraper/scraper.d.ts.map +1 -0
  595. package/script/src/apis/chatgptScraper/scraper.js +139 -0
  596. package/script/src/apis/googleAds/apiTypes.d.ts +131 -0
  597. package/script/src/apis/googleAds/apiTypes.d.ts.map +1 -0
  598. package/script/src/apis/googleAds/apiTypes.js +2 -0
  599. package/script/src/apis/googleAds/client.d.ts +2 -0
  600. package/script/src/apis/googleAds/client.d.ts.map +1 -0
  601. package/script/src/apis/googleAds/client.js +133 -0
  602. package/script/src/apis/googleAds/countryResourceMap.d.ts +2 -0
  603. package/script/src/apis/googleAds/countryResourceMap.d.ts.map +1 -0
  604. package/script/src/apis/googleAds/countryResourceMap.js +877 -0
  605. package/script/src/apis/googleAds/keywordPlanner.d.ts +64 -0
  606. package/script/src/apis/googleAds/keywordPlanner.d.ts.map +1 -0
  607. package/script/src/apis/googleAds/keywordPlanner.js +465 -0
  608. package/script/src/apis/googleAds/languageResourceMap.d.ts +2 -0
  609. package/script/src/apis/googleAds/languageResourceMap.d.ts.map +1 -0
  610. package/script/src/apis/googleAds/languageResourceMap.js +211 -0
  611. package/script/src/apis/hasdata/aim.d.ts +4 -0
  612. package/script/src/apis/hasdata/aim.d.ts.map +1 -0
  613. package/script/src/apis/hasdata/aim.js +36 -0
  614. package/script/src/apis/hasdata/aio.d.ts +4 -0
  615. package/script/src/apis/hasdata/aio.d.ts.map +1 -0
  616. package/script/src/apis/hasdata/aio.js +46 -0
  617. package/script/src/apis/hasdata/helpers.d.ts +55 -0
  618. package/script/src/apis/hasdata/helpers.d.ts.map +1 -0
  619. package/script/src/apis/hasdata/helpers.js +222 -0
  620. package/script/src/async.d.ts +29 -0
  621. package/script/src/async.d.ts.map +1 -0
  622. package/script/src/async.js +148 -0
  623. package/script/src/models.d.ts +18 -0
  624. package/script/src/models.d.ts.map +1 -0
  625. package/script/src/models.js +52 -0
  626. package/script/src/openai.d.ts +17 -0
  627. package/script/src/openai.d.ts.map +1 -0
  628. package/script/src/openai.js +175 -0
  629. package/script/src/schemas/brand.schema.d.ts +182 -0
  630. package/script/src/schemas/brand.schema.d.ts.map +1 -0
  631. package/script/src/schemas/brand.schema.js +52 -0
  632. package/script/src/schemas/entity.schema.d.ts +14 -0
  633. package/script/src/schemas/entity.schema.d.ts.map +1 -0
  634. package/script/src/schemas/entity.schema.js +11 -0
  635. package/script/src/schemas/funnel.schema.d.ts +94 -0
  636. package/script/src/schemas/funnel.schema.d.ts.map +1 -0
  637. package/script/src/schemas/funnel.schema.js +49 -0
  638. package/script/src/schemas/index.d.ts +21 -0
  639. package/script/src/schemas/index.d.ts.map +1 -0
  640. package/script/src/schemas/index.js +14 -0
  641. package/script/src/schemas/keyword.schema.d.ts +44 -0
  642. package/script/src/schemas/keyword.schema.d.ts.map +1 -0
  643. package/script/src/schemas/keyword.schema.js +9 -0
  644. package/script/src/schemas/models.schema.d.ts +6 -0
  645. package/script/src/schemas/models.schema.d.ts.map +1 -0
  646. package/script/src/schemas/models.schema.js +2 -0
  647. package/script/src/schemas/persona.schema.d.ts +50 -0
  648. package/script/src/schemas/persona.schema.d.ts.map +1 -0
  649. package/script/src/schemas/persona.schema.js +24 -0
  650. package/script/src/schemas/pipeline.schema.d.ts +146 -0
  651. package/script/src/schemas/pipeline.schema.d.ts.map +1 -0
  652. package/script/src/schemas/pipeline.schema.js +17 -0
  653. package/script/src/schemas/search.schema.d.ts +29 -0
  654. package/script/src/schemas/search.schema.d.ts.map +1 -0
  655. package/script/src/schemas/search.schema.js +2 -0
  656. package/script/src/schemas/seedKeyword.schema.d.ts +15 -0
  657. package/script/src/schemas/seedKeyword.schema.d.ts.map +1 -0
  658. package/script/src/schemas/seedKeyword.schema.js +8 -0
  659. package/script/src/schemas/sentiment.schema.d.ts +22 -0
  660. package/script/src/schemas/sentiment.schema.d.ts.map +1 -0
  661. package/script/src/schemas/sentiment.schema.js +12 -0
  662. package/script/src/schemas/sources.schema.d.ts +29 -0
  663. package/script/src/schemas/sources.schema.d.ts.map +1 -0
  664. package/script/src/schemas/sources.schema.js +2 -0
  665. package/script/src/schemas/topics.schema.d.ts +33 -0
  666. package/script/src/schemas/topics.schema.d.ts.map +1 -0
  667. package/script/src/schemas/topics.schema.js +17 -0
  668. package/script/src/tools/brands.d.ts +55 -0
  669. package/script/src/tools/brands.d.ts.map +1 -0
  670. package/script/src/tools/brands.js +470 -0
  671. package/script/src/tools/classifier.d.ts +17 -0
  672. package/script/src/tools/classifier.d.ts.map +1 -0
  673. package/script/src/tools/classifier.js +141 -0
  674. package/script/src/tools/entities.d.ts +19 -0
  675. package/script/src/tools/entities.d.ts.map +1 -0
  676. package/script/src/tools/entities.js +88 -0
  677. package/script/src/tools/funnel.d.ts +41 -0
  678. package/script/src/tools/funnel.d.ts.map +1 -0
  679. package/script/src/tools/funnel.js +381 -0
  680. package/script/src/tools/keywords.d.ts +21 -0
  681. package/script/src/tools/keywords.d.ts.map +1 -0
  682. package/script/src/tools/keywords.js +190 -0
  683. package/script/src/tools/personas.d.ts +3 -0
  684. package/script/src/tools/personas.d.ts.map +1 -0
  685. package/script/src/tools/personas.js +91 -0
  686. package/script/src/tools/scorer.d.ts +14 -0
  687. package/script/src/tools/scorer.d.ts.map +1 -0
  688. package/script/src/tools/scorer.js +59 -0
  689. package/script/src/tools/search.d.ts +24 -0
  690. package/script/src/tools/search.d.ts.map +1 -0
  691. package/script/src/tools/search.js +135 -0
  692. package/script/src/tools/seedKeywords.d.ts +68 -0
  693. package/script/src/tools/seedKeywords.d.ts.map +1 -0
  694. package/script/src/tools/seedKeywords.js +220 -0
  695. package/script/src/tools/sentiment.d.ts +11 -0
  696. package/script/src/tools/sentiment.d.ts.map +1 -0
  697. package/script/src/tools/sentiment.js +72 -0
  698. package/script/src/tools/sources.d.ts +39 -0
  699. package/script/src/tools/sources.d.ts.map +1 -0
  700. package/script/src/tools/sources.js +273 -0
  701. package/script/src/tools/topics.d.ts +74 -0
  702. package/script/src/tools/topics.d.ts.map +1 -0
  703. package/script/src/tools/topics.js +237 -0
  704. package/script/src/tools/translate.d.ts +44 -0
  705. package/script/src/tools/translate.d.ts.map +1 -0
  706. package/script/src/tools/translate.js +118 -0
  707. package/script/src/urls.d.ts +10 -0
  708. package/script/src/urls.d.ts.map +1 -0
  709. package/script/src/urls.js +53 -0
  710. package/script/src/utils.d.ts +38 -0
  711. package/script/src/utils.d.ts.map +1 -0
  712. package/script/src/utils.js +183 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topics.d.ts","sourceRoot":"","sources":["../../../src/src/tools/topics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,gDAAgD,CAAC;AAEnE,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEjF,OAAO,EAEN,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,MAAM,6BAA6B,CAAC;AAIrC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AAuEpD;;;GAGG;AACH,eAAO,MAAM,KAAK;;;iBAShB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;iBAEvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;iBAEnB,CAAC;AAEH;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC,CAKpH;AACD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY;;;;;;;kBAmBvD;AAyCD;;GAEG;AACH,wBAAsB,WAAW,CAChC,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,QAAQ,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,EAClD,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAClC,KAAK,GAAE,MAAkB,EACzB,WAAW,GAAE,QAA4C,GACvD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA2B5B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC3B,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAC3B,QAAQ,EAAE,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,EACzC,KAAK,GAAE,MAAkB,EACzB,WAAW,GAAE,QAA4C,EACzD,cAAc,GAAE,MAAY,GAC1B,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAgBnC;AAED,MAAM,WAAW,sBAAsB;IACtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EACnC,OAAO,EACP,OAAY,EACZ,UAAc,EACd,YAAiB,EACjB,UAAgB,EAChB,KAAiB,EACjB,WAAgB,EAChB,UAAc,EACd,QAA6C,EAC7C,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAsChD"}
@@ -0,0 +1,229 @@
1
+ /* eslint no-console: ["warn", { allow: ["log", "warn", "error"] }] */
2
+ import { z } from '../../deps/jsr.io/@zod/zod/4.1.12/src/index.js';
3
+ import { mapParallel } from '../async.js';
4
+ import { askOpenAISafe } from '../openai.js';
5
+ import { TopicSchema } from '../schemas/topics.schema.js';
6
+ import { dedent, formatRecordsAttrWise } from '../utils.js';
7
+ /**
8
+ * Levenshtein distance implementation for string similarity validation
9
+ */
10
+ function levenshteinDistance(a, b) {
11
+ if (a.length === 0)
12
+ return b.length;
13
+ if (b.length === 0)
14
+ return a.length;
15
+ const matrix = Array(a.length + 1).fill(null).map(() => Array(b.length + 1).fill(0));
16
+ for (let i = 0; i <= a.length; i++) {
17
+ matrix[i][0] = i;
18
+ }
19
+ for (let j = 0; j <= b.length; j++) {
20
+ matrix[0][j] = j;
21
+ }
22
+ for (let i = 1; i <= a.length; i++) {
23
+ for (let j = 1; j <= b.length; j++) {
24
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
25
+ matrix[i][j] = Math.min(matrix[i - 1][j] + 1, // deletion
26
+ matrix[i][j - 1] + 1, // insertion
27
+ matrix[i - 1][j - 1] + cost // substitution
28
+ );
29
+ }
30
+ }
31
+ return matrix[a.length][b.length];
32
+ }
33
+ /**
34
+ * Validates that subtopics are sufficiently distinct from each other and from the parent topic.
35
+ */
36
+ function validateSubtopics(topic, subtopics) {
37
+ const MIN_LDIST = 2;
38
+ const subtopicsLower = subtopics.map((st) => st.toLowerCase());
39
+ const errors = [];
40
+ for (let i = 0; i < subtopicsLower.length; i++) {
41
+ const st = subtopicsLower[i];
42
+ // Subtopics should not be too similar to their parent topic
43
+ if (levenshteinDistance(st, topic.toLowerCase()) < MIN_LDIST) {
44
+ errors.push(`Subtopic '${st}' too similar to parent topic '${topic}'.`);
45
+ }
46
+ // Subtopics should not be too similar to each other
47
+ for (let j = i + 1; j < subtopicsLower.length; j++) {
48
+ const other = subtopicsLower[j];
49
+ // Check Levenshtein distance for similarity
50
+ if (levenshteinDistance(st.replace(/ /g, ''), other.replace(/ /g, '')) < MIN_LDIST) {
51
+ errors.push(`Subtopic '${st}' too similar to other subtopic '${other}'.`);
52
+ }
53
+ // Check for permutations of words
54
+ const stWords = new Set(st.split(' '));
55
+ const otherWords = new Set(other.split(' '));
56
+ if (stWords.size === otherWords.size &&
57
+ [...stWords].every(word => otherWords.has(word))) {
58
+ errors.push(`Subtopic '${st}' is a duplicate (permutation) of subtopic '${other}'.`);
59
+ }
60
+ }
61
+ }
62
+ return errors;
63
+ }
64
+ /**
65
+ * Topic schema with subtopic validation
66
+ * Validates that subtopics are sufficiently distinct from each other and from the parent topic.
67
+ */
68
+ export const Topic = TopicSchema.superRefine(({ topic, subtopics }, ctx) => {
69
+ const errors = validateSubtopics(topic, subtopics);
70
+ for (const error of errors) {
71
+ ctx.addIssue({
72
+ code: 'custom',
73
+ message: error,
74
+ path: ['subtopics']
75
+ });
76
+ }
77
+ });
78
+ /**
79
+ * Taxonomy schema WITHOUT validation for fallback parsing
80
+ */
81
+ export const TaxonomyBase = z.object({
82
+ topics: z.array(TopicSchema)
83
+ });
84
+ /**
85
+ * Taxonomy schema with topic validation
86
+ */
87
+ export const Taxonomy = z.object({
88
+ topics: z.array(Topic)
89
+ });
90
+ /**
91
+ * Converts a taxonomy in the format Record<string, Array<string>> to an array
92
+ * of topic objects compatible with the Topic schema.
93
+ */
94
+ export function toTopics(taxonomy) {
95
+ return Object.entries(taxonomy).map(([topic, subtopics]) => ({
96
+ topic,
97
+ subtopics
98
+ }));
99
+ }
100
+ /**
101
+ * Creates a dynamic TopicLabel schema based on a topic hierarchy
102
+ * Validates that subtopic belongs to the correct topic
103
+ */
104
+ export function createLabelSchema(taxonomy) {
105
+ const topicNames = taxonomy.topics.map(t => t.topic);
106
+ const allSubtopics = taxonomy.topics.flatMap(t => t.subtopics);
107
+ return z.object({
108
+ topic: z.enum(topicNames),
109
+ subtopic: z.enum(allSubtopics)
110
+ }).superRefine((data, ctx) => {
111
+ const topicEntry = taxonomy.topics.find(t => t.topic === data.topic);
112
+ const allowedSubtopics = topicEntry?.subtopics || [];
113
+ if (!allowedSubtopics.includes(data.subtopic)) {
114
+ ctx.addIssue({
115
+ code: 'custom',
116
+ message: `Subtopic '${data.subtopic}' is not a valid subtopic for topic '${data.topic}'. ` +
117
+ `Allowed subtopics are: ${allowedSubtopics.join(', ')}.`,
118
+ path: ['subtopic']
119
+ });
120
+ }
121
+ });
122
+ }
123
+ const TOPICS_PROMPT = dedent(`
124
+ # Instructions
125
+
126
+ From the data records below, extract a two-level nested list of topics.
127
+ The output should be a JSON object with top-level topics as keys and lists of subtopics as values.
128
+ The top-level should not contain more than {n_topics} topics, and each top-level
129
+ should not contain more than {n_subtopics} subtopics.
130
+
131
+ Make sure top-level topics are generalizable and capture broad themes.
132
+ Subtopics should represent more specific categories within each theme.
133
+ Both topics and subtopics must be written in {language}.
134
+
135
+ {instructions}
136
+
137
+ # Data Records
138
+
139
+ {records}
140
+ `);
141
+ const LABEL_PROMPT_SYSTEM = dedent(`
142
+ You're task is to use the following hierarchy of topics and subtopics (in json format),
143
+ to assign the correct topic and subtopic to each text in the input.
144
+ You cannot invent new topics or subtopics.
145
+ You cannot assign a subtopic that does not belong to the assigned topic.
146
+
147
+ # Topics
148
+
149
+ {taxonomy}
150
+ `);
151
+ const LABEL_PROMPT_USER = dedent(`
152
+ Assign the correct topic and subtopic to the following text.
153
+
154
+ # Text
155
+
156
+ {text}
157
+ `);
158
+ /**
159
+ * Assigns a topic and subtopic to a single text using an LLM call.
160
+ */
161
+ export async function assignTopic(text, taxonomy, labelSchema, model = 'gpt-5.1', modelParams = { reasoning: { effort: 'none' } }) {
162
+ if (text == null || text.trim() === '') {
163
+ return null;
164
+ }
165
+ const systemPrompt = LABEL_PROMPT_SYSTEM.replace('{taxonomy}', typeof taxonomy === 'string' ? taxonomy : JSON.stringify(taxonomy, null, 2));
166
+ const userPrompt = LABEL_PROMPT_USER.replace('{text}', text);
167
+ const prompts = [
168
+ { role: 'system', content: systemPrompt },
169
+ { role: 'user', content: userPrompt }
170
+ ];
171
+ try {
172
+ const { parsed, error } = await askOpenAISafe(prompts, model, labelSchema, modelParams);
173
+ if (error != null || parsed == null) {
174
+ return null;
175
+ }
176
+ return parsed;
177
+ }
178
+ catch (error) {
179
+ console.warn(`Failed to assign topic for text "${text.substring(0, 50)}...":`, error);
180
+ return null;
181
+ }
182
+ }
183
+ /**
184
+ * Assigns topics to multiple texts concurrently while preserving order.
185
+ */
186
+ export function assignTopics(texts, taxonomy, model = 'gpt-5.1', modelParams = { reasoning: { effort: 'none' } }, maxConcurrency = 100) {
187
+ // Precompute normalized taxonomy and label schema once for whole batch
188
+ const normalizedTaxonomy = Array.isArray(taxonomy)
189
+ ? { topics: taxonomy }
190
+ : taxonomy;
191
+ const labelSchema = createLabelSchema(normalizedTaxonomy);
192
+ const serializedTaxonomy = JSON.stringify(normalizedTaxonomy, null, 2);
193
+ return mapParallel(texts, maxConcurrency, text => assignTopic(text, serializedTaxonomy, labelSchema, model, modelParams));
194
+ }
195
+ /**
196
+ * Extracts a topic hierarchy from an array of records using an LLM.
197
+ */
198
+ export async function extractTopics({ records, nTopics = 10, nSubtopics = 5, instructions = '', maxSamples = 500, model = 'gpt-4.1', modelParams = {}, maxRetries = 8, language = 'The same language as the records' }) {
199
+ if (!records || records.length === 0) {
200
+ return { topics: [] };
201
+ }
202
+ const sampledRecords = records.length > maxSamples
203
+ ? records.slice(0, maxSamples)
204
+ : records;
205
+ const formattedRecords = formatRecordsAttrWise(sampledRecords);
206
+ const prompt = TOPICS_PROMPT
207
+ .replace('{n_topics}', String(nTopics))
208
+ .replace('{n_subtopics}', String(nSubtopics))
209
+ .replace('{instructions}', instructions)
210
+ .replace('{records}', formattedRecords)
211
+ .replace('{language}', language);
212
+ const { parsed, output_text, error } = await askOpenAISafe(prompt, model, Taxonomy, modelParams, maxRetries, 'return');
213
+ if (error != null) {
214
+ if (output_text == null) {
215
+ throw new Error('Failed to get response from OpenAI');
216
+ }
217
+ try {
218
+ const taxonomy = JSON.parse(output_text);
219
+ return TaxonomyBase.parse(taxonomy);
220
+ }
221
+ catch (parseError) {
222
+ throw new Error(`Failed to parse response even without validation: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
223
+ }
224
+ }
225
+ if (parsed == null) {
226
+ throw new Error('Failed to parse response from OpenAI');
227
+ }
228
+ return parsed;
229
+ }
@@ -0,0 +1,44 @@
1
+ import type { BrandContext } from '../schemas/brand.schema.js';
2
+ export interface translateParams {
3
+ keyword: string;
4
+ language?: string;
5
+ model?: string;
6
+ instructions?: string;
7
+ brandContext: BrandContext;
8
+ }
9
+ /**
10
+ * Translates a single Google search keyword into an equivalent LLM prompt.
11
+ */
12
+ export declare function translate({ keyword, language, model, brandContext, instructions }: translateParams): Promise<string>;
13
+ /**
14
+ * Translates multiple Google search keywords to LLM prompts concurrently while preserving order.
15
+ */
16
+ export interface translateBatchParams {
17
+ keywords: Array<string>;
18
+ language?: string;
19
+ model?: string;
20
+ maxConcurrency?: number;
21
+ instructions?: string;
22
+ brandContext: BrandContext;
23
+ }
24
+ export declare function translateBatch(params: translateBatchParams): Promise<Array<string>>;
25
+ export interface reverseTranslateParams {
26
+ prompt: string;
27
+ language?: string;
28
+ model?: string;
29
+ }
30
+ /**
31
+ * Converts a natural language prompt into an equivalent Google search keyword.
32
+ */
33
+ export declare function reverseTranslate({ prompt, language, model }: reverseTranslateParams): Promise<string>;
34
+ export interface reverseTranslateBatchParams {
35
+ prompts: Array<string>;
36
+ language?: string;
37
+ model?: string;
38
+ maxConcurrency?: number;
39
+ }
40
+ /**
41
+ * Converts multiple natural language prompts to Google search keywords concurrently while preserving order.
42
+ */
43
+ export declare function reverseTranslateBatch(params: reverseTranslateBatchParams): Promise<Array<string>>;
44
+ //# sourceMappingURL=translate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../src/src/tools/translate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA+C/D,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC9B,EAAE,OAAO,EAAE,QAAe,EAAE,KAAoB,EAAE,YAAY,EAAE,YAAiB,EAAE,EAAE,eAAe,GAClG,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;GAEG;AAEH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC3B;AAED,wBAAsB,cAAc,CACnC,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAQxB;AA4BD,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACrC,EAAE,MAAM,EAAE,QAAe,EAAE,KAAsB,EAAE,EAAE,sBAAsB,GACzE,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,2BAA2B,GACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAQxB"}
@@ -0,0 +1,112 @@
1
+ import { mapParallel } from '../async.js';
2
+ import { askOpenAISafe } from '../openai.js';
3
+ import { dedent } from '../utils.js';
4
+ const TRANSLATE_PROMPT = dedent(`
5
+ You are an expert in understanding search intent and conversational AI interactions.
6
+
7
+ Convert the following Google search keyword into an equivalent natural language prompt that
8
+ someone would use when interacting with an LLM like ChatGPT. The LLM prompt should:
9
+
10
+ - Be conversational and natural, as if speaking to an assistant
11
+ - Capture the same intent and information need as the keyword
12
+ - Be a complete sentence or question
13
+ - Not be overly verbose - keep it concise but natural
14
+ - Be written in "{language}"
15
+
16
+ For example:
17
+ - "best running shoes" → "What are the best running shoes?"
18
+ - "how to train for marathon" → "How do I train for a marathon?"
19
+ - "nike air max review" → "Can you give me a review of Nike Air Max shoes?"
20
+ - "weather new york" → "What's the weather like in New York?"
21
+
22
+ ## Brand Context Rules
23
+
24
+ You will receive brand context (sector, country). Follow these rules strictly:
25
+
26
+ 1. **DO NOT** change the core intent or meaning of the keyword
27
+ 2. **DO** use brand context to disambiguate terms when multiple interpretations exist
28
+ 3. The keyword's original intent must be preserved - brand context only helps clarify ambiguous terms
29
+
30
+ **Example of correct disambiguation:**
31
+ - Keyword: "geo"
32
+ - Brand sector: "ai visibility search"
33
+ - WRONG: "Tell me about geography" (ignores sector context)
34
+ - CORRECT: "What is GEO in AI visibility and search optimization?" (uses sector to disambiguate the acronym)
35
+
36
+ {additional_instructions}
37
+
38
+ # Keyword
39
+
40
+ {keyword}
41
+
42
+ # Brand Context (for reference only)
43
+ - Sector: {sector}
44
+ - Country: {country}
45
+
46
+ Return only the converted prompt, nothing else.
47
+ `);
48
+ /**
49
+ * Translates a single Google search keyword into an equivalent LLM prompt.
50
+ */
51
+ export async function translate({ keyword, language = 'en', model = 'gpt-5-mini', brandContext, instructions = '' }) {
52
+ const prompt = TRANSLATE_PROMPT
53
+ .replace('{keyword}', keyword)
54
+ .replace('{language}', language)
55
+ .replace('{sector}', brandContext.sector)
56
+ .replace('{country}', brandContext.country)
57
+ .replace('{additional_instructions}', instructions);
58
+ const { parsed } = await askOpenAISafe(prompt, model);
59
+ if (!parsed) {
60
+ throw new Error('Failed to parse translation from OpenAI response');
61
+ }
62
+ return parsed;
63
+ }
64
+ export async function translateBatch(params) {
65
+ const { keywords, language = 'en', model = 'gpt-4.1-mini', maxConcurrency = 100, brandContext, instructions = '' } = params;
66
+ return mapParallel(keywords, maxConcurrency, kwd => translate({ keyword: kwd, language, model, brandContext, instructions }));
67
+ }
68
+ const REVERSE_TRANSLATE_PROMPT = dedent(`
69
+ You are an expert in understanding search intent.
70
+
71
+ Convert the following natural language prompt into an equivalent Google search keyword.
72
+ The keyword should:
73
+
74
+ - Be concise (typically 2-5 words)
75
+ - Capture the core search intent
76
+ - Remove conversational filler and politeness
77
+ - Use common search terms
78
+
79
+ For example:
80
+ - "What are the best running shoes?" → "best running shoes"
81
+ - "How do I train for a marathon?" → "how to train marathon"
82
+ - "Can you give me a review of Nike Air Max shoes?" → "nike air max review"
83
+ - "What's the weather like in New York?" → "weather new york"
84
+
85
+ Make sure the keyword is in the language "{language}".
86
+
87
+ # Prompt
88
+
89
+ {prompt}
90
+
91
+ Return only the keyword, nothing else.
92
+ `);
93
+ /**
94
+ * Converts a natural language prompt into an equivalent Google search keyword.
95
+ */
96
+ export async function reverseTranslate({ prompt, language = 'en', model = 'gpt-4.1-mini' }) {
97
+ const requestPrompt = REVERSE_TRANSLATE_PROMPT
98
+ .replace('{prompt}', prompt)
99
+ .replace('{language}', language);
100
+ const { parsed } = await askOpenAISafe(requestPrompt, model);
101
+ if (!parsed) {
102
+ throw new Error('Failed to parse reverse translation from OpenAI response');
103
+ }
104
+ return parsed;
105
+ }
106
+ /**
107
+ * Converts multiple natural language prompts to Google search keywords concurrently while preserving order.
108
+ */
109
+ export async function reverseTranslateBatch(params) {
110
+ const { prompts, language = 'en', model = 'gpt-5-mini', maxConcurrency = 100 } = params;
111
+ return mapParallel(prompts, maxConcurrency, p => reverseTranslate({ prompt: p, language, model }));
112
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parse a URL, adding scheme if missing (internal helper).
3
+ */
4
+ export declare function parseUrl(url: string): URL;
5
+ /**
6
+ * Extract the domain from a URL or hostname.
7
+ * Handles incomplete URLs (missing scheme), Google Translate redirects, and subdomains.
8
+ */
9
+ export declare function extractDomain(url: string, withSubdomain?: boolean, resolveGoogleTranslate?: boolean): string;
10
+ //# sourceMappingURL=urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/src/urls.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAQzC;AAaD;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,OAAe,EAC9B,sBAAsB,GAAE,OAAc,GACpC,MAAM,CA6BR"}
@@ -0,0 +1,49 @@
1
+ import { parse } from 'tldts';
2
+ /**
3
+ * Parse a URL, adding scheme if missing (internal helper).
4
+ */
5
+ export function parseUrl(url) {
6
+ let normalizedUrl = url.trim();
7
+ if (!normalizedUrl.startsWith('http://') && !normalizedUrl.startsWith('https://') && !normalizedUrl.startsWith('//')) {
8
+ normalizedUrl = 'http://' + normalizedUrl;
9
+ }
10
+ return new URL(normalizedUrl);
11
+ }
12
+ /**
13
+ * Check if a URL is a Google Translate URL (internal helper).
14
+ */
15
+ function isGoogleTranslateUrl(parsedUrl) {
16
+ return (parsedUrl.hostname === 'translate.google.com' &&
17
+ parsedUrl.pathname.startsWith('/translate') &&
18
+ parsedUrl.searchParams.has('u'));
19
+ }
20
+ /**
21
+ * Extract the domain from a URL or hostname.
22
+ * Handles incomplete URLs (missing scheme), Google Translate redirects, and subdomains.
23
+ */
24
+ export function extractDomain(url, withSubdomain = false, resolveGoogleTranslate = true) {
25
+ if (!url) {
26
+ return url;
27
+ }
28
+ try {
29
+ let targetUrl = url.trim();
30
+ if (resolveGoogleTranslate) {
31
+ const parsedUrl = parseUrl(targetUrl);
32
+ if (isGoogleTranslateUrl(parsedUrl)) {
33
+ const originalUrl = parsedUrl.searchParams.get('u');
34
+ if (originalUrl != null) {
35
+ targetUrl = originalUrl;
36
+ }
37
+ }
38
+ }
39
+ const extracted = parse(targetUrl);
40
+ if (withSubdomain) {
41
+ const fqdn = extracted.hostname ?? '';
42
+ return fqdn.replace(/^www\./, '');
43
+ }
44
+ return extracted.domain ?? url;
45
+ }
46
+ catch {
47
+ return url;
48
+ }
49
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * General utility functions for text processing, record formatting, and arrays.
3
+ */
4
+ /**
5
+ * Remove leading whitespace from a string, similar to Python's textwrap.dedent.
6
+ * Also collapses newlines within paragraphs (except for markdown list items).
7
+ */
8
+ export declare function dedent(text: string): string;
9
+ /**
10
+ * Clean a string to make it suitable for use as a column name.
11
+ * Converts to lowercase, replaces non-alphanumeric characters with underscores,
12
+ * and removes consecutive underscores.
13
+ */
14
+ export declare function cleanColumnName(name: string): string;
15
+ /**
16
+ * Formats records in attribute-wise format (column-oriented).
17
+ * Each section shows all values for a single attribute across all records.
18
+ * Equivalent to records_attr_wise.jinja template.
19
+ *
20
+ * @param records - Array of record objects to format
21
+ * @returns Formatted string with records grouped by attribute
22
+ */
23
+ export declare function formatRecordsAttrWise(records: Array<Record<string, unknown>>): string;
24
+ /**
25
+ * Randomly sample n elements from an array using Fisher-Yates shuffle.
26
+ */
27
+ export declare function sampleArray<T>(array: Array<T>, n: number): Array<T>;
28
+ /**
29
+ * Deduplicates an array of records based on a single scalar field.
30
+ * Keeps the first occurrence of each unique value and removes subsequent duplicates.
31
+ */
32
+ export declare function deduplicate<T extends Record<string, unknown>>(records: Array<T>, field: keyof T): Array<T>;
33
+ /**
34
+ * Deduplicates an array of records based on a single scalar field.
35
+ * Keeps the last occurrence of each unique value, removing earlier duplicates.
36
+ */
37
+ export declare function deduplicateLast<T extends Record<string, unknown>>(records: Array<T>, field: keyof T): Array<T>;
38
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA8B3C;AAwCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AAMD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAoCrF;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAYnE;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,MAAM,CAAC,GACZ,KAAK,CAAC,CAAC,CAAC,CAoBV;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,MAAM,CAAC,GACZ,KAAK,CAAC,CAAC,CAAC,CAgBV"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * General utility functions for text processing, record formatting, and arrays.
3
+ */
4
+ // ============================================================================
5
+ // Text Processing
6
+ // ============================================================================
7
+ /**
8
+ * Remove leading whitespace from a string, similar to Python's textwrap.dedent.
9
+ * Also collapses newlines within paragraphs (except for markdown list items).
10
+ */
11
+ export function dedent(text) {
12
+ /**
13
+ * Check if a line is a markdown list item.
14
+ */
15
+ function isMarkdownListItem(line) {
16
+ const trimmedLine = line.trim();
17
+ // Unordered lists
18
+ if (trimmedLine.startsWith('- ') ||
19
+ trimmedLine.startsWith('* ') ||
20
+ trimmedLine.startsWith('+ ')) {
21
+ return true;
22
+ }
23
+ // Ordered lists: Detect a number or single letter followed by a dot and space
24
+ return /^\d+\. |^[a-zA-Z]\. /.test(trimmedLine);
25
+ }
26
+ // Clean doc: Remove leading/trailing whitespace and normalize indentation
27
+ const cleanedText = cleanDoc(text);
28
+ // Split into paragraphs
29
+ const paragraphs = cleanedText.split('\n\n');
30
+ // Replace newlines with spaces in non-list paragraphs
31
+ const processedParagraphs = paragraphs.map((p) => isMarkdownListItem(p) ? p : p.replace(/\n/g, ' '));
32
+ return processedParagraphs.join('\n\n').trim();
33
+ }
34
+ /**
35
+ * Clean up indentation in a multi-line string (similar to Python's inspect.cleandoc).
36
+ * Removes leading blank lines, trailing blank lines, and common leading whitespace.
37
+ */
38
+ function cleanDoc(text) {
39
+ const lines = text.split('\n');
40
+ // Remove leading blank lines
41
+ while (lines.length > 0 && lines[0].trim() === '') {
42
+ lines.shift();
43
+ }
44
+ // Remove trailing blank lines
45
+ while (lines.length > 0 && lines[lines.length - 1].trim() === '') {
46
+ lines.pop();
47
+ }
48
+ if (lines.length === 0) {
49
+ return '';
50
+ }
51
+ // Find the minimum indentation (ignoring blank lines)
52
+ let minIndent = Infinity;
53
+ for (const line of lines) {
54
+ if (line.trim() !== '') {
55
+ const indent = line.match(/^[ \t]*/)?.[0].length ?? 0;
56
+ minIndent = Math.min(minIndent, indent);
57
+ }
58
+ }
59
+ // Remove the common leading whitespace
60
+ if (minIndent > 0 && minIndent !== Infinity) {
61
+ return lines.map((line) => line.trim() === '' ? line : line.slice(minIndent)).join('\n');
62
+ }
63
+ return lines.join('\n');
64
+ }
65
+ /**
66
+ * Clean a string to make it suitable for use as a column name.
67
+ * Converts to lowercase, replaces non-alphanumeric characters with underscores,
68
+ * and removes consecutive underscores.
69
+ */
70
+ export function cleanColumnName(name) {
71
+ return name
72
+ .toLowerCase()
73
+ .replace(/[^a-z0-9]+/g, '_')
74
+ .replace(/^_+|_+$/g, '')
75
+ .replace(/_+/g, '_');
76
+ }
77
+ // ============================================================================
78
+ // Record Formatting
79
+ // ============================================================================
80
+ /**
81
+ * Formats records in attribute-wise format (column-oriented).
82
+ * Each section shows all values for a single attribute across all records.
83
+ * Equivalent to records_attr_wise.jinja template.
84
+ *
85
+ * @param records - Array of record objects to format
86
+ * @returns Formatted string with records grouped by attribute
87
+ */
88
+ export function formatRecordsAttrWise(records) {
89
+ if (!records || records.length === 0) {
90
+ return '';
91
+ }
92
+ const attributes = Object.keys(records[0]);
93
+ const sections = [];
94
+ for (const attrName of attributes) {
95
+ const title = attrName.replace(/_/g, ' ')
96
+ .split(' ')
97
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
98
+ .join(' ');
99
+ const values = [];
100
+ for (const record of records) {
101
+ const value = record[attrName];
102
+ if (value == null || value === '') {
103
+ continue;
104
+ }
105
+ if (Array.isArray(value) || (typeof value === 'object' && value !== null)) {
106
+ values.push(JSON.stringify(value));
107
+ }
108
+ else {
109
+ values.push(String(value));
110
+ }
111
+ }
112
+ if (values.length > 0) {
113
+ sections.push(`## ${title}\n\n${values.join(', ')}`);
114
+ }
115
+ }
116
+ return sections.join('\n\n');
117
+ }
118
+ // ============================================================================
119
+ // Array Utilities
120
+ // ============================================================================
121
+ /**
122
+ * Randomly sample n elements from an array using Fisher-Yates shuffle.
123
+ */
124
+ export function sampleArray(array, n) {
125
+ if (n >= array.length) {
126
+ return [...array];
127
+ }
128
+ const shuffled = [...array];
129
+ for (let i = shuffled.length - 1; i > 0; i--) {
130
+ const j = Math.floor(Math.random() * (i + 1));
131
+ [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
132
+ }
133
+ return shuffled.slice(0, n);
134
+ }
135
+ // ============================================================================
136
+ // Deduplication
137
+ // ============================================================================
138
+ /**
139
+ * Deduplicates an array of records based on a single scalar field.
140
+ * Keeps the first occurrence of each unique value and removes subsequent duplicates.
141
+ */
142
+ export function deduplicate(records, field) {
143
+ const seen = new Set();
144
+ const result = [];
145
+ for (const record of records) {
146
+ const value = record[field];
147
+ // Skip records where the field is null or undefined
148
+ if (value == null) {
149
+ continue;
150
+ }
151
+ // Only add if we haven't seen this value before
152
+ if (!seen.has(value)) {
153
+ seen.add(value);
154
+ result.push(record);
155
+ }
156
+ }
157
+ return result;
158
+ }
159
+ /**
160
+ * Deduplicates an array of records based on a single scalar field.
161
+ * Keeps the last occurrence of each unique value, removing earlier duplicates.
162
+ */
163
+ export function deduplicateLast(records, field) {
164
+ const map = new Map();
165
+ for (const record of records) {
166
+ const value = record[field];
167
+ // Skip records where the field is null or undefined
168
+ if (value == null) {
169
+ continue;
170
+ }
171
+ // Always update, so last occurrence wins
172
+ map.set(value, record);
173
+ }
174
+ return Array.from(map.values());
175
+ }