@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,33 @@
1
+ import { z } from '../../deps/jsr.io/@zod/zod/4.1.12/src/index.js';
2
+ /**
3
+ * Topic schema - a topic with its subtopics.
4
+ */
5
+ export declare const TopicSchema: z.ZodObject<{
6
+ topic: z.ZodString;
7
+ subtopics: z.ZodArray<z.ZodString>;
8
+ }, z.core.$strip>;
9
+ /**
10
+ * Taxonomy schema - contains all topics and their subtopics.
11
+ */
12
+ export declare const TaxonomySchema: z.ZodObject<{
13
+ topics: z.ZodArray<z.ZodObject<{
14
+ topic: z.ZodString;
15
+ subtopics: z.ZodArray<z.ZodString>;
16
+ }, z.core.$strip>>;
17
+ }, z.core.$strip>;
18
+ /**
19
+ * A topic with its subtopics.
20
+ */
21
+ export type TopicType = z.infer<typeof TopicSchema>;
22
+ /**
23
+ * Taxonomy structure containing all topics and their subtopics.
24
+ */
25
+ export type TaxonomyType = z.infer<typeof TaxonomySchema>;
26
+ /**
27
+ * Topic label assigned to a text (topic + subtopic pair).
28
+ */
29
+ export interface TopicLabel {
30
+ topic: string;
31
+ subtopic: string;
32
+ }
33
+ //# sourceMappingURL=topics.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topics.schema.d.ts","sourceRoot":"","sources":["../../../src/src/schemas/topics.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,gDAAgD,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,WAAW;;;iBAGtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;iBAEzB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,14 @@
1
+ import { z } from '../../deps/jsr.io/@zod/zod/4.1.12/src/index.js';
2
+ /**
3
+ * Topic schema - a topic with its subtopics.
4
+ */
5
+ export const TopicSchema = z.object({
6
+ topic: z.string(),
7
+ subtopics: z.array(z.string())
8
+ });
9
+ /**
10
+ * Taxonomy schema - contains all topics and their subtopics.
11
+ */
12
+ export const TaxonomySchema = z.object({
13
+ topics: z.array(TopicSchema)
14
+ });
@@ -0,0 +1,55 @@
1
+ import type { CompetitorSearchOptions, BrandSearchOptions, BrandListResponse } from '../schemas/brand.schema.js';
2
+ import { type Brand, type FlaggedBrand, type Product } from '../schemas/brand.schema.js';
3
+ import type { Entity } from './entities.js';
4
+ interface BrandContextOptions {
5
+ brand?: string | Array<string>;
6
+ brandDomain?: string | Array<string>;
7
+ sector?: string | null;
8
+ market?: string | null;
9
+ briefing?: string | null;
10
+ }
11
+ export declare function buildBrandContext({ brand, brandDomain, sector, market, briefing }: BrandContextOptions): string;
12
+ export type { BrandContextOptions };
13
+ /**
14
+ * Generate seed keywords for a single portfolio item using an LLM.
15
+ */
16
+ export declare function generatePortfolioKeywords(product: Product, sector: string, market: string, language?: string, model?: string): Promise<Array<string>>;
17
+ /**
18
+ * Generate seed keywords for all portfolio items in a brand concurrently,
19
+ * updating the keywordSeeds field in-place for each product.
20
+ */
21
+ export declare function enrichBrandPortfolioWithKeywords(brand: Brand, language?: string, model?: string, maxConcurrency?: number, sector?: string | null, market?: string | null): Promise<Brand>;
22
+ export declare function generateCompetitorsInfo({ brand, brandDomain, sector, market, briefing, strict, instructions, brands, language, userLanguage, model, useSearch, countryISOCode, contextSize, reasoningEffort }: CompetitorSearchOptions): Promise<BrandListResponse>;
23
+ export declare function generateBrandInfo({ brand, brandDomain, language, userLanguage, sector, market, briefing, model, useSearch, countryISOCode, contextSize, reasoningEffort }: BrandSearchOptions): Promise<Brand>;
24
+ export declare function concatBrands(ownBrands: Array<Brand>, competitors: Array<Brand>): Array<FlaggedBrand>;
25
+ /**
26
+ * Normalizes a brand name for comparison.
27
+ * - Converts to lowercase
28
+ * - Normalizes & to " and " (with spaces to separate words)
29
+ * - Removes accents/diacritics
30
+ * - Expands CamelCase to spaces (e.g., "AcmeCorp" -> "acme corp")
31
+ * - Expands embedded "and" (e.g., "benandjerrys" -> "ben and jerrys")
32
+ * - Separates numbers from letters (e.g., "7eleven" -> "7 eleven")
33
+ * - Converts hyphens to spaces (e.g., "Coca-Cola" -> "coca cola")
34
+ * - Removes apostrophes (e.g., "Jerry's" -> "jerrys")
35
+ * - Removes periods/dots (e.g., "Dr. Pepper" -> "dr pepper")
36
+ */
37
+ export declare function normalizeBrandName(name: string): string;
38
+ /**
39
+ * Creates an ultra-normalized key for brand matching (removes all spaces and non-alphanumerics).
40
+ * Used to match brands like "Acme&Co" with entities like "acmeco",
41
+ * or "Ben & Jerry's" with "benandjerrys".
42
+ */
43
+ export declare function createBrandMatchKey(brandName: string): string;
44
+ /**
45
+ * Creates an ultra-normalized version of text for key-based matching.
46
+ * Removes all spaces and non-alphanumerics for exact key comparison.
47
+ */
48
+ /**
49
+ * Checks which brands are mentioned in a text.
50
+ * Returns shortNames(!) of brands in order they're mentioned.
51
+ */
52
+ export declare function rankBrandsInText(text: string, brands: Array<FlaggedBrand>, entities?: Array<Entity>): Array<string>;
53
+ export declare function rankBrandsInTexts(texts: Array<string>, brands: Array<FlaggedBrand>, entities?: Array<Array<Entity>>): Promise<Array<Array<string>>>;
54
+ export type * from '../schemas/brand.schema.js';
55
+ //# sourceMappingURL=brands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brands.d.ts","sourceRoot":"","sources":["../../../src/src/tools/brands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACjH,OAAO,EAAgC,KAAK,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAIvH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,UAAU,mBAAmB;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAAC,EACjC,KAAK,EACL,WAAW,EACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,EAAE,mBAAmB,GAAG,MAAM,CAuB9B;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAqHpC;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAa,EACvB,KAAK,GAAE,MAAkB,GACvB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAaxB;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CACrD,KAAK,EAAE,KAAK,EACZ,QAAQ,GAAE,MAAa,EACvB,KAAK,GAAE,MAAkB,EACzB,cAAc,GAAE,MAAY,EAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,KAAK,CAAC,CAoBhB;AAGD,wBAAsB,uBAAuB,CAAC,EAC7C,KAAK,EACL,WAAW,EACX,MAAa,EACb,MAAa,EACb,QAAQ,EACR,MAAa,EACb,YAAiB,EACjB,MAAa,EACb,QAAe,EACf,YAAmB,EACnB,KAA4B,EAC5B,SAAgB,EAChB,cAAqB,EACrB,WAAsB,EACtB,eAAuB,EACvB,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoDtD;AAED,wBAAsB,iBAAiB,CAAC,EACvC,KAAK,EACL,WAAW,EACX,QAAe,EACf,YAAmB,EACnB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,KAA4B,EAC5B,SAAgB,EAChB,cAAqB,EACrB,WAAsB,EACtB,eAAuB,EACvB,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAyCrC;AAED,wBAAgB,YAAY,CAC3B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EACvB,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GACvB,KAAK,CAAC,YAAY,CAAC,CAYrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBvD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI7D;AAuED;;;GAGG;AAQH;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,EAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GACtB,KAAK,CAAC,MAAM,CAAC,CA6Ff;AAED,wBAAsB,iBAAiB,CACtC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EACpB,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,EAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAE/B;AAED,mBAAmB,4BAA4B,CAAC"}
@@ -0,0 +1,458 @@
1
+ import { z } from '../../deps/jsr.io/@zod/zod/4.1.12/src/index.js';
2
+ import { mapParallel } from '../async.js';
3
+ import { askOpenAISafe } from '../openai.js';
4
+ import { BrandSchema, BrandListSchema } from '../schemas/brand.schema.js';
5
+ import { searchWithFormat } from './search.js';
6
+ import { dedent } from '../utils.js';
7
+ import { extractDomain } from '../urls.js';
8
+ export function buildBrandContext({ brand, brandDomain, sector, market, briefing }) {
9
+ let brandContext;
10
+ if (brandDomain) {
11
+ const domainText = Array.isArray(brandDomain) ? brandDomain.join(', ') : brandDomain;
12
+ if (brand) {
13
+ const nameText = Array.isArray(brand) ? brand.join(', ') : brand;
14
+ brandContext = ` "${nameText}" (domain: ${domainText})`;
15
+ }
16
+ else {
17
+ brandContext = ` with domain "${domainText}"`;
18
+ }
19
+ }
20
+ else {
21
+ brandContext = ` "${brand}"`;
22
+ }
23
+ if (sector) {
24
+ brandContext += ` in the ${sector} sector`;
25
+ }
26
+ if (market) {
27
+ brandContext += ` operating in ${market}`;
28
+ }
29
+ if (briefing) {
30
+ brandContext += ` Briefing: ${briefing}`;
31
+ }
32
+ return brandContext;
33
+ }
34
+ const DEFAULT_SEARCH_MODEL = 'gpt-4.1';
35
+ const PORTFOLIO_KEYWORDS_PROMPT = dedent(`
36
+ Generate 5 Google search keywords that real users would type when researching this product or service.
37
+
38
+ Product/Service: {product_name}
39
+ Category: {category}
40
+ Sector: {sector}
41
+ Market: {market}
42
+
43
+ Context:
44
+ - The product/service is part of a brand in the {sector} sector operating in {market}
45
+ - Generate what people ACTUALLY search, NOT literal product names or brand mentions
46
+ - Keywords should be broad (1-3 words) suitable for Google Keyword Planner seed expansion
47
+ - Focus on generic search terms that potential customers would use
48
+ - DO NOT include brand names in the keywords
49
+
50
+ Examples of GOOD keywords for different contexts:
51
+ - Running shoe product → "running shoes", "athletic footwear", "trail running"
52
+ - CRM software → "customer management", "sales automation", "crm tools"
53
+ - Online course → "learn programming", "coding tutorials", "web development"
54
+
55
+ Requirements:
56
+ - Natural language people actually type in search bars
57
+ - 5 realistic search queries
58
+ - Broad enough for keyword expansion (1-3 words typically)
59
+ - Output in {language}
60
+ - No brand names or specific product names
61
+
62
+ What would someone in {market} naturally search when looking for products/services like {product_name}?
63
+ `);
64
+ const PortfolioKeywordsSchema = z.object({
65
+ keywords: z.array(z.string()).describe('List of 5 seed keywords for the product or service.')
66
+ });
67
+ const COMPETITORS_PROMPT = dedent(`
68
+ You are an expert in market analysis and competitive intelligence. Given the brand(s)
69
+ information in the below section, find and return an exhaustive list of competitors. Consider
70
+ competitors to be brands that offer similar products or services and target the same or similar
71
+ customer segments. {strictness_clause}
72
+
73
+ The output should be a JSON array with one object for each competitor. Each competitor object
74
+ should have the following fields:
75
+
76
+ - name: Name of the competitor brand.
77
+ - shortName: A short, common/canonical name of the competitor brand, if different from the official name.
78
+ E.g. "Tesla" instead of "Tesla, Inc.", or "Peugeot" instead of "Automobiles Peugeot". If not applicable,
79
+ set same as name.
80
+ - description: A brief description of the competitor brand's main activity.
81
+ - domain: The official website of the competitor brand, if available.
82
+ - sectors: A list of main industrial sectors the competitor brand operates in.
83
+ - markets: A list of main geographical markets the competitor brand operates in.
84
+ - marketPosition: The market position of the competitor brand, which can be one of the following values:
85
+ "leader", "challenger", "niche", "follower".
86
+ - portfolio: A list of products or services offered by the competitor brand. Each product or service should
87
+ have a name and a category.
88
+ - favicon: URL of the brand's favicon, if available.
89
+
90
+ It's more important to be comprehensive than selective, so include more competitors rather than less.
91
+ Try to order them by relevance, with the most direct and bigger competitors first.
92
+
93
+ Return the answer (field values) in the language "{language}".
94
+
95
+ Also provide an "explanation" field with a brief summary (2-3 sentences) explaining the reasoning behind
96
+ the competitors you identified: what makes them relevant competitors, how they relate to the original brand,
97
+ and what competitive landscape they represent.
98
+
99
+ {instructions}
100
+
101
+ # Brand(s) information
102
+
103
+ {context}
104
+
105
+ {currentCompetitorsInfo}
106
+ `);
107
+ const STRICT_CLAUSE = 'Only consider as competitors those that do NOT belong to the same parent company as the original brand(s) (e.g. Fanta is NOT a competitor of Coca-Cola in this sense).';
108
+ const NON_STRICT_CLAUSE = 'Consider all relevant competitors, including those from the same parent company (e.g. Fanta IS a competitor of Coca-Cola in this sense).';
109
+ const CURRENT_DATA_CLAUSE = dedent(`
110
+ # Current Competitors Information
111
+
112
+ The following is the current information the user has about competitors for the brand(s).
113
+
114
+ {currentData}
115
+
116
+ IMPORTANT: Unless the instructions explicitly specify to modify, replace, add, or remove competitors
117
+ from this list, you MUST return at least all the same competitors that are already present in the
118
+ current data. If no modification instructions are provided, maintain the existing list and only add
119
+ new competitors if they are relevant.
120
+ `);
121
+ const BRAND_PROMPT = dedent(`
122
+ You are an expert in market analysis and competitive intelligence investigating the brand{brand_context}.
123
+ Find out the following information about this brand:
124
+
125
+ - name: Brand/company name
126
+ - shortName: A short, common/canonical name of the brand, if different from the official name.
127
+ E.g. "Tesla" instead of "Tesla, Inc.", or "Peugeot" instead of "Automobiles Peugeot". If not applicable,
128
+ set same as name.
129
+ - description: A brief description of the brand's main activity.
130
+ - domain: The official website of the brand, if available.
131
+ - sectors: A list of specific industrial sectors the brand operates in, ordered by relevance. Be precise and concrete rather than generic - for example, instead of "education", use "professional training for unemployed", "corporate learning and development", or "online coding bootcamps". Adapt the specificity level to match the brand's actual focus and niche.
132
+ - markets: A list of main geographical markets the brand operates in.
133
+ - marketPosition: The market position of the brand, which can be one of the following values:
134
+ "leader", "challenger", "niche", "follower".
135
+ - portfolio: A list of products or services offered by the competitor brand. Each product or service should
136
+ have a name and a category.
137
+ - favicon: URL of the brand's favicon, if available.
138
+
139
+ Return the answer as a JSON object with field values in the language "{language}".
140
+ `);
141
+ /**
142
+ * Generate seed keywords for a single portfolio item using an LLM.
143
+ */
144
+ export async function generatePortfolioKeywords(product, sector, market, language = 'en', model = 'gpt-4.1') {
145
+ const prompt = PORTFOLIO_KEYWORDS_PROMPT
146
+ .replace('{product_name}', product.name)
147
+ .replace('{category}', product.category || 'general')
148
+ .replaceAll('{sector}', sector)
149
+ .replaceAll('{market}', market)
150
+ .replaceAll('{language}', language);
151
+ const { parsed } = await askOpenAISafe(prompt, model, PortfolioKeywordsSchema);
152
+ if (!parsed) {
153
+ throw new Error('Failed to parse portfolio keywords from OpenAI response');
154
+ }
155
+ return parsed.keywords;
156
+ }
157
+ /**
158
+ * Generate seed keywords for all portfolio items in a brand concurrently,
159
+ * updating the keywordSeeds field in-place for each product.
160
+ */
161
+ export async function enrichBrandPortfolioWithKeywords(brand, language = 'en', model = 'gpt-4.1', maxConcurrency = 100, sector, market) {
162
+ if (!brand.portfolio || brand.portfolio.length === 0) {
163
+ return brand;
164
+ }
165
+ sector = sector || brand.sectors[0] || 'general';
166
+ market = market || brand.markets[0] || 'global';
167
+ await mapParallel(brand.portfolio, maxConcurrency, async (product) => {
168
+ const keywords = await generatePortfolioKeywords(product, sector, market, language, model);
169
+ product.keywordSeeds = keywords;
170
+ });
171
+ return brand;
172
+ }
173
+ export async function generateCompetitorsInfo({ brand, brandDomain, sector = null, market = null, briefing, strict = true, instructions = '', brands = null, language = 'en', userLanguage = null, model = DEFAULT_SEARCH_MODEL, useSearch = true, countryISOCode = null, contextSize = 'medium', reasoningEffort = 'low' }) {
174
+ if (!brand && !brandDomain) {
175
+ throw new Error('Either brand or brandDomain must be provided');
176
+ }
177
+ const strictnessClause = strict ? STRICT_CLAUSE : NON_STRICT_CLAUSE;
178
+ const context = buildBrandContext({
179
+ brand,
180
+ brandDomain,
181
+ sector,
182
+ market,
183
+ briefing
184
+ });
185
+ const currentData = brands ? CURRENT_DATA_CLAUSE.replace('{currentData}', JSON.stringify(brands, null, 2)) : '';
186
+ const formattedPrompt = COMPETITORS_PROMPT
187
+ .replace('{strictness_clause}', strictnessClause)
188
+ .replace('{instructions}', instructions || '')
189
+ .replace('{language}', userLanguage ?? language)
190
+ .replace('{context}', context)
191
+ .replace('{currentCompetitorsInfo}', currentData);
192
+ const response = await searchWithFormat({
193
+ prompt: formattedPrompt,
194
+ model: model,
195
+ useSearch: useSearch,
196
+ responseSchema: BrandListSchema,
197
+ countryISOCode,
198
+ contextSize,
199
+ reasoningEffort
200
+ });
201
+ // Make sure these are clean domains
202
+ response.brands.map(brand => {
203
+ if (brand.domain) {
204
+ brand.domain = extractDomain(brand.domain);
205
+ }
206
+ });
207
+ const enrichedBrands = await mapParallel(response.brands, 100, async (brand) => enrichBrandPortfolioWithKeywords(brand, language, model, undefined, sector, market));
208
+ return {
209
+ brands: enrichedBrands,
210
+ explanation: response.explanation
211
+ };
212
+ }
213
+ export async function generateBrandInfo({ brand, brandDomain, language = 'en', userLanguage = null, sector, market, briefing, model = DEFAULT_SEARCH_MODEL, useSearch = true, countryISOCode = null, contextSize = 'medium', reasoningEffort = 'low' }) {
214
+ if (!brand && !brandDomain) {
215
+ throw new Error('Either brand or brandDomain must be provided');
216
+ }
217
+ const brandContext = buildBrandContext({
218
+ brand,
219
+ brandDomain,
220
+ sector,
221
+ market,
222
+ briefing
223
+ });
224
+ const prompt = BRAND_PROMPT
225
+ .replace('{brand_context}', brandContext)
226
+ .replace('{language}', userLanguage ?? language);
227
+ const brandInfo = await searchWithFormat({
228
+ prompt,
229
+ model,
230
+ responseSchema: BrandSchema,
231
+ countryISOCode: countryISOCode,
232
+ contextSize: contextSize,
233
+ reasoningEffort: reasoningEffort,
234
+ useSearch
235
+ });
236
+ // Make sure this is a clean domain
237
+ brandInfo.domain = extractDomain(brandInfo.domain);
238
+ const enrichedBrand = await enrichBrandPortfolioWithKeywords(brandInfo, language, model, undefined, sector, market);
239
+ return enrichedBrand;
240
+ }
241
+ export function concatBrands(ownBrands, competitors) {
242
+ const ownBrandsWithFlag = ownBrands.map((brand) => ({
243
+ ...brand,
244
+ isCompetitor: false
245
+ }));
246
+ const competitorsWithFlag = competitors.map((brand) => ({
247
+ ...brand,
248
+ isCompetitor: true
249
+ }));
250
+ return [...ownBrandsWithFlag, ...competitorsWithFlag];
251
+ }
252
+ /**
253
+ * Normalizes a brand name for comparison.
254
+ * - Converts to lowercase
255
+ * - Normalizes & to " and " (with spaces to separate words)
256
+ * - Removes accents/diacritics
257
+ * - Expands CamelCase to spaces (e.g., "AcmeCorp" -> "acme corp")
258
+ * - Expands embedded "and" (e.g., "benandjerrys" -> "ben and jerrys")
259
+ * - Separates numbers from letters (e.g., "7eleven" -> "7 eleven")
260
+ * - Converts hyphens to spaces (e.g., "Coca-Cola" -> "coca cola")
261
+ * - Removes apostrophes (e.g., "Jerry's" -> "jerrys")
262
+ * - Removes periods/dots (e.g., "Dr. Pepper" -> "dr pepper")
263
+ */
264
+ export function normalizeBrandName(name) {
265
+ return name
266
+ // Remove apostrophes before other processing (e.g., "Jerry's" -> "Jerrys")
267
+ .replace(/'/g, '')
268
+ // Remove periods/dots (e.g., "Dr. Pepper" -> "Dr Pepper")
269
+ .replace(/\./g, '')
270
+ // Normalize & to " and " BEFORE CamelCase expansion to ensure proper word separation
271
+ .replace(/&/g, ' and ')
272
+ // Expand CamelCase to spaces (insert space before uppercase letters)
273
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
274
+ .toLowerCase()
275
+ .trim()
276
+ // Convert hyphens to spaces (e.g., "coca-cola" -> "coca cola")
277
+ .replace(/-/g, ' ')
278
+ // Expand embedded "and" (e.g., "benandjerrys" -> "ben and jerrys")
279
+ .replace(/([a-z])and([a-z])/g, '$1 and $2')
280
+ // Separate numbers from letters (e.g., "7eleven" -> "7 eleven")
281
+ .replace(/([0-9])([a-z])/g, '$1 $2')
282
+ .replace(/([a-z])([0-9])/g, '$1 $2')
283
+ // Normalize accents/diacritics
284
+ .normalize('NFD')
285
+ .replace(/[\u0300-\u036f]/g, '')
286
+ // Normalize multiple spaces to single space
287
+ .replace(/\s+/g, ' ');
288
+ }
289
+ /**
290
+ * Creates an ultra-normalized key for brand matching (removes all spaces and non-alphanumerics).
291
+ * Used to match brands like "Acme&Co" with entities like "acmeco",
292
+ * or "Ben & Jerry's" with "benandjerrys".
293
+ */
294
+ export function createBrandMatchKey(brandName) {
295
+ return normalizeBrandName(brandName)
296
+ .replace(/\s+/g, '')
297
+ .replace(/[^a-z0-9]/g, ''); // drop any other non-alphanumerics
298
+ }
299
+ /**
300
+ * Creates a regex pattern that matches various text representations of a brand name.
301
+ * Handles: CamelCase, spaces, &/and variations, hyphens, apostrophes, accents.
302
+ */
303
+ function createBrandMatchPattern(brandName) {
304
+ // First normalize the brand name to get a canonical form
305
+ const normalized = normalizeBrandName(brandName);
306
+ // Split into words
307
+ const words = normalized.split(' ').filter(w => w.length > 0);
308
+ // Build pattern where each word can have flexible separators between them
309
+ const wordPatterns = words.map(word => {
310
+ if (word === 'and') {
311
+ return '(?:&|and)?';
312
+ }
313
+ // For other words, escape special chars and allow accent variations
314
+ const escaped = word.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
315
+ // Allow accented versions of vowels
316
+ return escaped
317
+ .replace(/a/g, '[aáàäâ]')
318
+ .replace(/e/g, '[eéèëê]')
319
+ .replace(/i/g, '[iíìïî]')
320
+ .replace(/o/g, '[oóòöô]')
321
+ .replace(/u/g, '[uúùüû]')
322
+ .replace(/n/g, '[nñ]');
323
+ });
324
+ // Flexible separator: allows space, hyphen, apostrophe, ampersand, "and", or nothing (CamelCase)
325
+ // The separator is optional to handle cases like "BenJerrys" matching "Ben Jerry's"
326
+ const flexibleSeparator = "(?:[\\s\\-'&]|and)*";
327
+ const pattern = wordPatterns.join(flexibleSeparator);
328
+ // Word boundary handling:
329
+ // - Start: beginning of string OR non-alphanumeric character
330
+ // - End: end of string OR non-alphanumeric character
331
+ // This allows matching "7-Eleven" in "I shop at 7-Eleven daily"
332
+ return new RegExp(`(?:^|[^a-zA-Z0-9])${pattern}(?:$|[^a-zA-Z0-9])|^${pattern}$`, 'i');
333
+ }
334
+ /**
335
+ * Creates a normalized version of text for matching purposes.
336
+ * Expands CamelCase, separates numbers from letters, and expands common connectors.
337
+ */
338
+ function normalizeTextForMatching(text) {
339
+ return text
340
+ // Remove apostrophes
341
+ .replace(/'/g, '')
342
+ // Remove periods/dots (Dr. Pepper → Dr Pepper)
343
+ .replace(/\./g, '')
344
+ // Expand CamelCase (lowercase followed by uppercase)
345
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
346
+ // Convert hyphens to spaces (Coca-Cola → Coca Cola)
347
+ .replace(/-/g, ' ')
348
+ // Separate numbers from letters (7eleven → 7 eleven, eleven7 → eleven 7)
349
+ .replace(/([0-9])([a-zA-Z])/g, '$1 $2')
350
+ .replace(/([a-zA-Z])([0-9])/g, '$1 $2')
351
+ // Expand "and" when embedded in words (benandjerrys → ben and jerrys)
352
+ // This handles cases where "and" is glued to other words
353
+ .replace(/([a-zA-Z])and([a-zA-Z])/gi, '$1 and $2')
354
+ // Normalize & to " and "
355
+ .replace(/&/g, ' and ')
356
+ // Normalize accents
357
+ .normalize('NFD').replace(/[\u0300-\u036f]/g, '')
358
+ // Normalize spaces
359
+ .replace(/\s+/g, ' ');
360
+ }
361
+ /**
362
+ * Creates an ultra-normalized version of text for key-based matching.
363
+ * Removes all spaces and non-alphanumerics for exact key comparison.
364
+ */
365
+ // function createTextMatchKey(text: string): string {
366
+ // return normalizeTextForMatching(text)
367
+ // .toLowerCase()
368
+ // .replace(/\s+/g, '')
369
+ // .replace(/[^a-z0-9]/g, '');
370
+ // }
371
+ /**
372
+ * Checks which brands are mentioned in a text.
373
+ * Returns shortNames(!) of brands in order they're mentioned.
374
+ */
375
+ export function rankBrandsInText(text, brands, entities) {
376
+ const mentionedBrands = [];
377
+ // Create a normalized version of text for pattern matching (expands CamelCase, etc.)
378
+ const normalizedText = normalizeTextForMatching(text);
379
+ const brandEntities = entities?.filter(entity => entity.type.toLowerCase() === 'brand') ?? [];
380
+ // Build a map from ultra-normalized FlaggedBrand name to the entity text variation (if any)
381
+ // Using createBrandMatchKey to handle cases like "acmeco" matching "Acme&Co"
382
+ const entityTextByNormalizedBrand = new Map();
383
+ for (const entity of brandEntities) {
384
+ entityTextByNormalizedBrand.set(createBrandMatchKey(entity.name), entity.name);
385
+ }
386
+ // Set of ultra-normalized entity names that match a FlaggedBrand (to exclude from separate processing)
387
+ const matchedEntityNames = new Set();
388
+ // Helper function to search in both original and normalized text
389
+ const findPatternPosition = (pattern) => {
390
+ const originalMatch = text.match(pattern);
391
+ if (originalMatch != null) {
392
+ return originalMatch.index;
393
+ }
394
+ const normalizedMatch = normalizedText.match(pattern);
395
+ if (normalizedMatch != null) {
396
+ return normalizedMatch.index;
397
+ }
398
+ return -1;
399
+ };
400
+ // Process FlaggedBrands, using entity text as an additional search variant when available
401
+ for (const brand of brands) {
402
+ let earliestPosition = Infinity;
403
+ const normalizedShortName = createBrandMatchKey(brand.shortName);
404
+ // Check if there's a matching entity for this brand (using ultra-normalized comparison)
405
+ const entityText = entityTextByNormalizedBrand.get(normalizedShortName);
406
+ if (entityText != null) {
407
+ matchedEntityNames.add(createBrandMatchKey(entityText));
408
+ // Use flexible pattern matching to find the entity in text (handles CamelCase, &/and, etc.)
409
+ const entityPattern = createBrandMatchPattern(entityText);
410
+ const position = findPatternPosition(entityPattern);
411
+ if (position !== -1) {
412
+ earliestPosition = Math.min(earliestPosition, position);
413
+ }
414
+ }
415
+ // Check for shortName using flexible pattern matching
416
+ if (brand.shortName != null && brand.shortName.trim() !== '') {
417
+ const brandPattern = createBrandMatchPattern(brand.shortName);
418
+ const position = findPatternPosition(brandPattern);
419
+ if (position !== -1) {
420
+ earliestPosition = Math.min(earliestPosition, position);
421
+ }
422
+ }
423
+ // Check for domain occurrence
424
+ if (brand.domain != null && brand.domain.trim() !== '') {
425
+ const domainIndex = text.toLowerCase().indexOf(brand.domain.toLowerCase());
426
+ if (domainIndex !== -1) {
427
+ earliestPosition = Math.min(earliestPosition, domainIndex);
428
+ }
429
+ }
430
+ if (earliestPosition !== Infinity) {
431
+ mentionedBrands.push({
432
+ name: brand.shortName,
433
+ position: earliestPosition
434
+ });
435
+ }
436
+ }
437
+ // Process entity brands that don't match any FlaggedBrand
438
+ for (const entity of brandEntities) {
439
+ if (matchedEntityNames.has(createBrandMatchKey(entity.name))) {
440
+ continue;
441
+ }
442
+ // Use flexible pattern matching for unmatched entities too
443
+ const entityPattern = createBrandMatchPattern(entity.name);
444
+ const position = findPatternPosition(entityPattern);
445
+ if (position !== -1) {
446
+ mentionedBrands.push({
447
+ name: entity.name,
448
+ position: position
449
+ });
450
+ }
451
+ }
452
+ return mentionedBrands
453
+ .sort((a, b) => a.position - b.position)
454
+ .map(item => item.name);
455
+ }
456
+ export async function rankBrandsInTexts(texts, brands, entities) {
457
+ return texts.map((text, index) => rankBrandsInText(text, brands, entities?.[index]));
458
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Classifies a single data record into one of the provided categories using an LLM call.
3
+ */
4
+ export declare function classify(record: Record<string, unknown> | null, labels: Record<string, string>, instructions?: string, model?: string): Promise<string | null>;
5
+ /**
6
+ * Classifies multiple data records concurrently while preserving order.
7
+ */
8
+ export declare function classifyBatch(records: Array<Record<string, unknown> | null>, labels: Record<string, string>, instructions?: string, model?: string, maxConcurrency?: number): Promise<Array<string | null>>;
9
+ /**
10
+ * Assigns one or more labels to a single data record using an LLM call.
11
+ */
12
+ export declare function label(record: Record<string, unknown> | null, labels: Record<string, string>, instructions?: string, model?: string): Promise<Array<string> | null>;
13
+ /**
14
+ * Assigns labels to multiple data records concurrently while preserving order.
15
+ */
16
+ export declare function labelBatch(records: Array<Record<string, unknown> | null>, labels: Record<string, string>, instructions?: string, model?: string, maxConcurrency?: number): Promise<Array<Array<string> | null>>;
17
+ //# sourceMappingURL=classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../src/src/tools/classifier.ts"],"names":[],"mappings":"AAsGA;;GAEG;AACH,wBAAsB,QAAQ,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,GAAE,MAAW,EACzB,KAAK,GAAE,MAAuB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,EAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,GAAE,MAAW,EACzB,KAAK,GAAE,MAAuB,EAC9B,cAAc,GAAE,MAAY,GAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAM/B;AAED;;GAEG;AACH,wBAAsB,KAAK,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,GAAE,MAAW,EACzB,KAAK,GAAE,MAAuB,GAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAiB/B;AAED;;GAEG;AACH,wBAAgB,UAAU,CACzB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,EAC9C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,YAAY,GAAE,MAAW,EACzB,KAAK,GAAE,MAAuB,EAC9B,cAAc,GAAE,MAAY,GAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAMtC"}