@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,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePersonas = generatePersonas;
4
+ const openai_js_1 = require("../openai.js");
5
+ const brands_js_1 = require("./brands.js");
6
+ const persona_schema_js_1 = require("../schemas/persona.schema.js");
7
+ const utils_js_1 = require("../utils.js");
8
+ const PROMPT = (0, utils_js_1.dedent)(`
9
+ You're a marketing expert identifying typical profiles/personas of people searching
10
+ for brands, products or services. Generate {count} detailed customer personas for a brand
11
+ in the {sector} sector targeting the {market} market.
12
+
13
+ For context, the brand being analyzed is{brand_context}. Use this brand as context to better understand
14
+ the specific niche, positioning, and target audience within the {sector} sector. However, you MUST NOT
15
+ mention the brand name{brand_exclusion} anywhere in the persona names or descriptions. The personas should be
16
+ generic profiles that could apply to similar brands in the same space.
17
+
18
+ Each persona should include:
19
+ - name: A short and catchy name, such as "Tech-Savvy Creative Director", "Gaming Industry Veteran",
20
+ "Eco-Conscious Millennial", "Budget-Conscious Family Planner", or "Luxury Lifestyle Enthusiast".
21
+ - description: A brief description of the persona's characteristics, needs, and behaviors.
22
+ - keywordSeeds: A list of 5-10 keyword seed phrases in language {language} that this persona would typically search for
23
+ when looking for products/services in this space. These should be realistic search queries that
24
+ reflect the persona's language ({language}), intent, and level of expertise. Include a mix of informational
25
+ and transactional queries. Keywords should be broad (1-3 words) suitable for Google Keyword Planner
26
+ seed expansion. Do NOT include the brand name {brand_exclusion} in these keywords.
27
+
28
+ Make sure you're answer is in the language "{userLanguage} except keywordSeeds, that should maintain the original language {language}".
29
+
30
+ Return the personas as a list of JSON objects.
31
+
32
+ Also provide an "explanation" field with a brief summary (2-3 sentences) explaining the reasoning behind
33
+ the personas you generated: why these profiles are relevant for this sector and market, and what key
34
+ customer segments they represent.
35
+
36
+ {instructions}
37
+
38
+ {currentPersonasInfo}
39
+ `);
40
+ const CURRENT_DATA_CLAUSE = (0, utils_js_1.dedent)(`
41
+ # Current Personas Information
42
+
43
+ The following is the current information the user has about personas for the brand(s).
44
+
45
+ {currentData}
46
+
47
+ IMPORTANT: Unless the instructions explicitly specify to modify, replace, add, or remove competitors
48
+ from this list, you MUST return at least all the same competitors that are already present in the
49
+ current data. If no modification instructions are provided, maintain the existing list and only add
50
+ new competitors if they are relevant.
51
+ `);
52
+ async function generatePersonas({ sector, market, brand, brandDomain, language = 'english', userLanguage = null, count = 5, model = 'gpt-4.1', briefing, instructions, personas = null }) {
53
+ if (!brand && !brandDomain) {
54
+ throw new Error('Either brand or brandDomain must be provided');
55
+ }
56
+ const brandContext = (0, brands_js_1.buildBrandContext)({
57
+ brand,
58
+ brandDomain,
59
+ sector,
60
+ market,
61
+ briefing
62
+ });
63
+ let brandExclusion;
64
+ if (brandDomain) {
65
+ if (brand) {
66
+ brandExclusion = ` "${brand}" or the domain`;
67
+ }
68
+ else {
69
+ brandExclusion = ' or domain';
70
+ }
71
+ }
72
+ else {
73
+ brandExclusion = ` "${brand}"`;
74
+ }
75
+ const currentData = personas && personas.length > 0 ? CURRENT_DATA_CLAUSE.replace('{currentData}', JSON.stringify({ personas }, null, 2)) : null;
76
+ const content = PROMPT
77
+ .replace('{count}', count.toString())
78
+ .replaceAll('{sector}', sector)
79
+ .replaceAll('{market}', market)
80
+ .replaceAll('{brand_context}', brandContext)
81
+ .replaceAll('{brand_exclusion}', brandExclusion)
82
+ .replaceAll('{language}', language)
83
+ .replaceAll('{userLanguage}', userLanguage ?? language)
84
+ .replaceAll('{instructions}', instructions || '')
85
+ .replaceAll('{currentPersonasInfo}', currentData || '');
86
+ const { parsed } = await (0, openai_js_1.askOpenAISafe)(content, model, persona_schema_js_1.PersonasResponseSchema);
87
+ if (!parsed) {
88
+ throw new Error('Failed to parse response from OpenAI');
89
+ }
90
+ return parsed;
91
+ }
@@ -0,0 +1,14 @@
1
+ import { z } from '../../deps/jsr.io/@zod/zod/4.1.12/src/index.js';
2
+ export type ScoreSchema = z.ZodObject<{
3
+ value: z.ZodNumber;
4
+ }>;
5
+ /**
6
+ * Dynamically create a Zod schema for a score based on provided parameters.
7
+ */
8
+ export declare function makeScoreSchema(type: 'integer' | 'number', min: number, max: number, description: string): ScoreSchema;
9
+ /**
10
+ * Assumes only remaining placeholder in prompt is {record}
11
+ */
12
+ export declare function score(record: Record<string, unknown>, prompt: string, schema: ScoreSchema, model?: string): Promise<number>;
13
+ export declare function scoreBatch(records: Array<Record<string, unknown>>, name: string, description: string, type: 'integer' | 'number', min: number, max: number, model?: string, maxConcurrency?: number): Promise<Array<number>>;
14
+ //# sourceMappingURL=scorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../../src/src/tools/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,gDAAgD,CAAC;AAqBnE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;IAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAA;CAAE,CAAC,CAAC;AAE9D;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,SAAS,GAAG,QAAQ,EAC1B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,GACjB,WAAW,CAWb;AAED;;GAEG;AACH,wBAAsB,KAAK,CAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,KAAK,GAAE,MAAuB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAsB,UAAU,CAC/B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,SAAS,GAAG,QAAQ,EAC1B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAuB,EAC9B,cAAc,GAAE,MAAY,GAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAcxB"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeScoreSchema = makeScoreSchema;
4
+ exports.score = score;
5
+ exports.scoreBatch = scoreBatch;
6
+ const index_js_1 = require("../../deps/jsr.io/@zod/zod/4.1.12/src/index.js");
7
+ const async_js_1 = require("../async.js");
8
+ const openai_js_1 = require("../openai.js");
9
+ const utils_js_1 = require("../utils.js");
10
+ const PROMPT = (0, utils_js_1.dedent)(`
11
+ # Instructions
12
+
13
+ Assign a {name} ({type} score between {min} and {max}) to the data record below.
14
+
15
+ Score description: {description}
16
+
17
+ Make sure to consider all the attributes of the data record, and assign the score
18
+ based on the content of the attributes.
19
+
20
+ # Data Record
21
+
22
+ {record}
23
+ `);
24
+ /**
25
+ * Dynamically create a Zod schema for a score based on provided parameters.
26
+ */
27
+ function makeScoreSchema(type, min, max, description) {
28
+ let schema;
29
+ if (type === 'integer') {
30
+ schema = index_js_1.z.number().int().min(min).max(max).describe(description);
31
+ }
32
+ else {
33
+ schema = index_js_1.z.number().min(min).max(max).describe(description);
34
+ }
35
+ return index_js_1.z.object({
36
+ value: schema
37
+ });
38
+ }
39
+ /**
40
+ * Assumes only remaining placeholder in prompt is {record}
41
+ */
42
+ async function score(record, prompt, schema, model = 'gpt-4.1-mini') {
43
+ const renderedPrompt = prompt.replace('record', JSON.stringify(record, null, 2));
44
+ const response = await (0, openai_js_1.askOpenAISafe)(renderedPrompt, model, schema);
45
+ if (response.parsed == null) {
46
+ throw new Error('Failed to parse score from OpenAI response');
47
+ }
48
+ return response.parsed.value;
49
+ }
50
+ async function scoreBatch(records, name, description, type, min, max, model = 'gpt-4.1-mini', maxConcurrency = 100) {
51
+ const schema = makeScoreSchema(type, min, max, description);
52
+ const prompt = PROMPT
53
+ .replace('{name}', name)
54
+ .replace('{type}', type)
55
+ .replace('{min}', min.toString())
56
+ .replace('{max}', max.toString())
57
+ .replace('{description}', description);
58
+ return (0, async_js_1.mapParallel)(records, maxConcurrency, (record) => score(record, prompt, schema, model));
59
+ }
@@ -0,0 +1,24 @@
1
+ import type { BatchSearchOptions, FormattedSearchOptions, SearchOptions, SearchResult } from '../schemas/search.schema.js';
2
+ export type { SearchResult } from '../schemas/search.schema.js';
3
+ /**
4
+ * Call OpenAI Responses API with Web Search enabled (async).
5
+ *
6
+ * API Docs:
7
+ * - https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses
8
+ */
9
+ export declare function searchOpenAI({ prompt, model, useSearch, countryISOCode, contextSize, reasoningEffort, searchTool }: SearchOptions): Promise<SearchResult>;
10
+ /**
11
+ * Perform a web search using searchOpenAI and return structured response.
12
+ * The OpenAI API doesn't currently allow both web search tool and response format in the same call.
13
+ *
14
+ * This function:
15
+ * 1. Performs a web search using searchOpenAI
16
+ * 2. Formats the search results using a template
17
+ * 3. Sends the formatted results to OpenAI with a Zod schema to extract structured information
18
+ */
19
+ export declare function searchWithFormat<T>({ prompt, model, responseSchema, useSearch, countryISOCode, contextSize, reasoningEffort }: FormattedSearchOptions<T>): Promise<T>;
20
+ /**
21
+ * Performs web search for multiple prompts concurrently while preserving order.
22
+ */
23
+ export declare function searchBatch({ prompts, model, useSearch, countryISOCode, contextSize, reasoningEffort, maxConcurrency }: BatchSearchOptions): Promise<Array<SearchResult>>;
24
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/src/tools/search.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAK3H,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,EAClC,MAAM,EACN,KAAsB,EACtB,SAAgB,EAChB,cAAqB,EACrB,WAAmB,EACnB,eAAuB,EACvB,UAAyB,EACzB,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAqBvC;AAqED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,EACzC,MAAM,EACN,KAAK,EACL,cAAc,EACd,SAAgB,EAChB,cAAqB,EACrB,WAAsB,EACtB,eAAuB,EACvB,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA0BxC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC3B,OAAO,EACP,KAAsB,EACtB,SAAgB,EAChB,cAAqB,EACrB,WAAsB,EACtB,eAAuB,EACvB,cAAoB,EACpB,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAanD"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.searchOpenAI = searchOpenAI;
4
+ exports.searchWithFormat = searchWithFormat;
5
+ exports.searchBatch = searchBatch;
6
+ const async_js_1 = require("../async.js");
7
+ const openai_js_1 = require("../openai.js");
8
+ const urls_js_1 = require("../urls.js");
9
+ const utils_js_1 = require("../utils.js");
10
+ /**
11
+ * Call OpenAI Responses API with Web Search enabled (async).
12
+ *
13
+ * API Docs:
14
+ * - https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses
15
+ */
16
+ async function searchOpenAI({ prompt, model = 'gpt-4.1-mini', useSearch = true, countryISOCode = null, contextSize = 'low', reasoningEffort = 'low', searchTool = 'web_search' }) {
17
+ const params = {};
18
+ if (model.includes('-5')) {
19
+ params.reasoning = { effort: reasoningEffort };
20
+ }
21
+ if (useSearch) {
22
+ params.tools = [{
23
+ type: searchTool,
24
+ search_context_size: contextSize,
25
+ ...(countryISOCode ? { user_location: { type: 'approximate', country: countryISOCode } } : {})
26
+ }];
27
+ params.tool_choice = 'required';
28
+ }
29
+ const { output } = await (0, openai_js_1.askOpenAISafe)(prompt, model, undefined, params);
30
+ if (!output) {
31
+ throw new Error('No output from OpenAI');
32
+ }
33
+ return validateOpenAI(output);
34
+ }
35
+ /**
36
+ * Convert a raw web search response into a SearchResult instance.
37
+ */
38
+ function validateOpenAI(response) {
39
+ let answer = '';
40
+ let sources = [];
41
+ // Filter out reasoning elements and find relevant elements
42
+ const relevantElements = response.filter(item => item.type !== 'reasoning');
43
+ const messageElement = relevantElements.find(item => item.type === 'message');
44
+ const hasWebSearch = relevantElements.some(item => item.type === 'web_search_call');
45
+ if (!messageElement) {
46
+ throw new Error('No message element found in response');
47
+ }
48
+ if (messageElement.type !== 'message') {
49
+ throw new Error('Message element must be of type "message"');
50
+ }
51
+ const content = messageElement.content?.[0];
52
+ if (!content) {
53
+ throw new Error('Message element has no content');
54
+ }
55
+ if (content.type !== 'output_text') {
56
+ throw new Error(`Content must be of type "output_text", got "${content.type}"`);
57
+ }
58
+ answer = content.text;
59
+ // Extract sources from annotations if web search was used
60
+ if (hasWebSearch && content.annotations) {
61
+ sources = content.annotations
62
+ .filter(ann => ann.type === 'url_citation')
63
+ .map(ann => ({
64
+ title: ann.title,
65
+ url: ann.url,
66
+ domain: (0, urls_js_1.extractDomain)(ann.url)
67
+ }));
68
+ }
69
+ return {
70
+ answer,
71
+ sources
72
+ };
73
+ }
74
+ const FORMATTED_SEARCH_PROMPT = (0, utils_js_1.dedent)(`
75
+ Based on the following search results, please format the information according
76
+ to the requested structure:
77
+
78
+ # Search Query
79
+
80
+ {prompt}
81
+
82
+ # Search Results
83
+
84
+ {answer}
85
+
86
+ # Sources
87
+
88
+ {sources}
89
+
90
+ Please extract and format the relevant information from these search results as a JSON object.
91
+ `);
92
+ /**
93
+ * Perform a web search using searchOpenAI and return structured response.
94
+ * The OpenAI API doesn't currently allow both web search tool and response format in the same call.
95
+ *
96
+ * This function:
97
+ * 1. Performs a web search using searchOpenAI
98
+ * 2. Formats the search results using a template
99
+ * 3. Sends the formatted results to OpenAI with a Zod schema to extract structured information
100
+ */
101
+ async function searchWithFormat({ prompt, model, responseSchema, useSearch = true, countryISOCode = null, contextSize = 'medium', reasoningEffort = 'low' }) {
102
+ const searchResult = await searchOpenAI({
103
+ prompt,
104
+ model,
105
+ useSearch,
106
+ countryISOCode,
107
+ contextSize,
108
+ reasoningEffort
109
+ });
110
+ const sources = searchResult.sources
111
+ .map((source) => `- ${source.title}: ${source.url}`)
112
+ .join('\n');
113
+ const formattedPrompt = FORMATTED_SEARCH_PROMPT
114
+ .replace('{prompt}', prompt)
115
+ .replace('{answer}', searchResult.answer)
116
+ .replace('{sources}', sources);
117
+ const { parsed } = await (0, openai_js_1.askOpenAISafe)(formattedPrompt, 'gpt-4.1-mini', responseSchema);
118
+ if (!parsed) {
119
+ throw new Error('Failed to parse structured response from OpenAI');
120
+ }
121
+ return parsed;
122
+ }
123
+ /**
124
+ * Performs web search for multiple prompts concurrently while preserving order.
125
+ */
126
+ function searchBatch({ prompts, model = 'gpt-4.1-mini', useSearch = true, countryISOCode = null, contextSize = 'medium', reasoningEffort = 'low', maxConcurrency = 100 }) {
127
+ return (0, async_js_1.mapParallel)(prompts, maxConcurrency, prompt => searchOpenAI({
128
+ prompt,
129
+ model,
130
+ useSearch,
131
+ countryISOCode: countryISOCode,
132
+ contextSize: contextSize,
133
+ reasoningEffort: reasoningEffort
134
+ }));
135
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Seed Keyword Functions
3
+ *
4
+ * Pure functions for collecting and grouping seed keywords.
5
+ * No external dependencies - safe to import in both frontend and backend.
6
+ */
7
+ export type { SeedKeyword, SeedKeywordSource } from '../schemas/seedKeyword.schema.js';
8
+ import type { SeedKeyword } from '../schemas/seedKeyword.schema.js';
9
+ interface PortfolioItemLike {
10
+ name: string;
11
+ keywordSeeds?: Array<string>;
12
+ }
13
+ interface PersonaLike {
14
+ name: string;
15
+ keywordSeeds?: Array<string>;
16
+ }
17
+ interface FunnelCategoryLike {
18
+ name: string;
19
+ keywordSeeds?: Array<string>;
20
+ }
21
+ interface FunnelStageLike {
22
+ stage: string;
23
+ categories?: Array<FunnelCategoryLike>;
24
+ }
25
+ interface CompetitorLike {
26
+ name: string;
27
+ portfolio?: Array<PortfolioItemLike>;
28
+ }
29
+ export interface CollectSeedKeywordsParams {
30
+ brandPortfolio?: Array<PortfolioItemLike>;
31
+ personas?: Array<PersonaLike>;
32
+ funnelStages?: Array<FunnelStageLike>;
33
+ competitors?: Array<CompetitorLike>;
34
+ customKeywords?: Array<string>;
35
+ }
36
+ /**
37
+ * Collects seed keywords from all sources and creates SeedKeyword objects
38
+ * with proper metadata (id, source, sourceId, sourceName).
39
+ */
40
+ export declare function collectSeedKeywords({ brandPortfolio, personas, funnelStages, competitors, customKeywords }: CollectSeedKeywordsParams): Array<SeedKeyword>;
41
+ /**
42
+ * Groups seed keywords by their source, maintaining order within each source.
43
+ * Keywords from the same portfolio item, competitor product, or funnel category
44
+ * are grouped together.
45
+ *
46
+ * @param seedKeywords - Flat array of seed keywords
47
+ * @param generateIdeasFromSeeds - When true, returns grouped keywords for idea generation.
48
+ * When false, returns all keywords flattened into a single group.
49
+ * @returns Array of grouped keywords (arrays for same-source groups, single items for personas/custom)
50
+ */
51
+ export declare function groupSeedKeywords(seedKeywords: Array<SeedKeyword>, generateIdeasFromSeeds?: boolean): Array<Array<SeedKeyword> | SeedKeyword>;
52
+ /**
53
+ * Groups seed keywords and extracts just the keyword strings.
54
+ * Convenience wrapper around groupSeedKeywords for cases where
55
+ * only the keyword text is needed (not the full metadata).
56
+ */
57
+ export declare function groupKeywordStrings(seedKeywords: Array<SeedKeyword>, generateIdeasFromSeeds?: boolean): Array<Array<string> | string>;
58
+ /**
59
+ * Collects and groups seed keywords in one step, returning only keyword strings.
60
+ * This is a convenience function for pipelines that need grouped keyword strings
61
+ * without the full SeedKeyword metadata.
62
+ *
63
+ * @param params - Same parameters as collectSeedKeywords
64
+ * @param generateIdeasFromSeeds - When true, returns grouped keywords. When false, returns flat.
65
+ * @returns Grouped keyword strings (arrays for same-source groups, single strings otherwise)
66
+ */
67
+ export declare function collectAndGroupKeywordStrings(params: CollectSeedKeywordsParams, generateIdeasFromSeeds?: boolean): Array<Array<string> | string>;
68
+ //# sourceMappingURL=seedKeywords.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedKeywords.d.ts","sourceRoot":"","sources":["../../../src/src/tools/seedKeywords.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,UAAU,iBAAiB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,WAAW;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,kBAAkB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED,UAAU,eAAe;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;CACvC;AAED,UAAU,cAAc;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;CACrC;AAMD,MAAM,WAAW,yBAAyB;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EACnC,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,EAAE,yBAAyB,GAAG,KAAK,CAAC,WAAW,CAAC,CA+EhD;AAcD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAChC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,EAChC,sBAAsB,GAAE,OAAc,GACpC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,CA8FzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,EAChC,sBAAsB,GAAE,OAAc,GACpC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAS/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,yBAAyB,EACjC,sBAAsB,GAAE,OAAc,GACpC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAG/B"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ /**
3
+ * Seed Keyword Functions
4
+ *
5
+ * Pure functions for collecting and grouping seed keywords.
6
+ * No external dependencies - safe to import in both frontend and backend.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.collectSeedKeywords = collectSeedKeywords;
10
+ exports.groupSeedKeywords = groupSeedKeywords;
11
+ exports.groupKeywordStrings = groupKeywordStrings;
12
+ exports.collectAndGroupKeywordStrings = collectAndGroupKeywordStrings;
13
+ /**
14
+ * Collects seed keywords from all sources and creates SeedKeyword objects
15
+ * with proper metadata (id, source, sourceId, sourceName).
16
+ */
17
+ function collectSeedKeywords({ brandPortfolio, personas, funnelStages, competitors, customKeywords }) {
18
+ const keywords = [];
19
+ // Brand portfolio keywords
20
+ brandPortfolio?.forEach((portfolioItem) => {
21
+ if (portfolioItem.keywordSeeds && portfolioItem.keywordSeeds.length > 0) {
22
+ portfolioItem.keywordSeeds.forEach((keyword) => {
23
+ keywords.push({
24
+ id: `brand-portfolio-${portfolioItem.name}-${keyword}`,
25
+ keyword,
26
+ source: 'brand-portfolio',
27
+ sourceId: portfolioItem.name,
28
+ sourceName: portfolioItem.name
29
+ });
30
+ });
31
+ }
32
+ });
33
+ // Persona keywords
34
+ personas?.forEach((persona) => {
35
+ if (persona.keywordSeeds && persona.keywordSeeds.length > 0) {
36
+ persona.keywordSeeds.forEach((keyword) => {
37
+ keywords.push({
38
+ id: `persona-${persona.name}-${keyword}`,
39
+ keyword,
40
+ source: 'persona',
41
+ sourceId: persona.name,
42
+ sourceName: persona.name
43
+ });
44
+ });
45
+ }
46
+ });
47
+ // Funnel category keywords
48
+ funnelStages?.forEach((stage) => {
49
+ stage.categories?.forEach((category) => {
50
+ if (category.keywordSeeds && category.keywordSeeds.length > 0) {
51
+ category.keywordSeeds.forEach((example) => {
52
+ keywords.push({
53
+ id: `funnel-${stage.stage}-${category.name}-${example}`,
54
+ keyword: example,
55
+ source: 'funnel',
56
+ sourceId: `${stage.stage}::${category.name}`,
57
+ sourceName: `${stage.stage} > ${category.name}`
58
+ });
59
+ });
60
+ }
61
+ });
62
+ });
63
+ // Competitor portfolio keywords
64
+ competitors?.forEach((competitor) => {
65
+ if (competitor.portfolio && competitor.portfolio.length > 0) {
66
+ competitor.portfolio.forEach((portfolioItem) => {
67
+ if (portfolioItem.keywordSeeds && portfolioItem.keywordSeeds.length > 0) {
68
+ portfolioItem.keywordSeeds.forEach((keyword) => {
69
+ keywords.push({
70
+ id: `portfolio-${competitor.name}-${portfolioItem.name}-${keyword}`,
71
+ keyword,
72
+ source: 'portfolio',
73
+ sourceId: portfolioItem.name,
74
+ sourceName: `${competitor.name} > ${portfolioItem.name}`
75
+ });
76
+ });
77
+ }
78
+ });
79
+ }
80
+ });
81
+ // Custom keywords
82
+ customKeywords?.forEach((keyword, index) => {
83
+ keywords.push({
84
+ id: `custom-${index}-${keyword}`,
85
+ keyword,
86
+ source: 'custom'
87
+ });
88
+ });
89
+ return keywords;
90
+ }
91
+ /**
92
+ * Groups seed keywords by their source, maintaining order within each source.
93
+ * Keywords from the same portfolio item, competitor product, or funnel category
94
+ * are grouped together.
95
+ *
96
+ * @param seedKeywords - Flat array of seed keywords
97
+ * @param generateIdeasFromSeeds - When true, returns grouped keywords for idea generation.
98
+ * When false, returns all keywords flattened into a single group.
99
+ * @returns Array of grouped keywords (arrays for same-source groups, single items for personas/custom)
100
+ */
101
+ function groupSeedKeywords(seedKeywords, generateIdeasFromSeeds = true) {
102
+ let group;
103
+ const keywords = seedKeywords.reduce((acc, item) => {
104
+ if (item.source === 'brand-portfolio') {
105
+ if (item.sourceName === group) {
106
+ acc.brandInfoKeywords[acc.brandInfoKeywords.length - 1].push(item);
107
+ return acc;
108
+ }
109
+ else {
110
+ group = item.sourceName;
111
+ acc.brandInfoKeywords.push([item]);
112
+ }
113
+ }
114
+ else if (item.source === 'portfolio') {
115
+ if (item.sourceName === group) {
116
+ acc.competitorKeywords[acc.competitorKeywords.length - 1].push(item);
117
+ return acc;
118
+ }
119
+ else {
120
+ group = item.sourceName;
121
+ acc.competitorKeywords.push([item]);
122
+ }
123
+ }
124
+ else if (item.source === 'persona') {
125
+ group = undefined;
126
+ acc.personasKeywords.push(item);
127
+ }
128
+ else if (item.source === 'funnel') {
129
+ if (item.sourceName === group) {
130
+ acc.funnelKeywords[acc.funnelKeywords.length - 1].push(item);
131
+ return acc;
132
+ }
133
+ else {
134
+ group = item.sourceName;
135
+ acc.funnelKeywords.push([item]);
136
+ }
137
+ }
138
+ else if (item.source === 'custom') {
139
+ group = undefined;
140
+ acc.customKeywords.push(item);
141
+ }
142
+ return acc;
143
+ }, {
144
+ brandInfoKeywords: [],
145
+ competitorKeywords: [],
146
+ personasKeywords: [],
147
+ funnelKeywords: [],
148
+ customKeywords: []
149
+ });
150
+ const groupedKeywords = [
151
+ ...keywords.brandInfoKeywords,
152
+ ...keywords.competitorKeywords,
153
+ ...keywords.personasKeywords,
154
+ ...keywords.funnelKeywords,
155
+ ...keywords.customKeywords
156
+ ];
157
+ if (!generateIdeasFromSeeds) {
158
+ return [[...new Set(groupedKeywords.flat())]].filter(g => g.length > 0);
159
+ }
160
+ const normalizeKeyword = (keyword) => ({
161
+ ...keyword,
162
+ keyword: keyword.keyword.trim().toLowerCase()
163
+ });
164
+ const dedupeKeywordArray = (kws) => {
165
+ const seen = new Set();
166
+ return kws.filter(kw => {
167
+ const normalized = normalizeKeyword(kw);
168
+ if (seen.has(normalized.keyword)) {
169
+ return false;
170
+ }
171
+ seen.add(normalized.keyword);
172
+ return true;
173
+ });
174
+ };
175
+ const uniqueKeywordsSet = new Set();
176
+ const deduplicatedGroupedKeywords = groupedKeywords.reduce((acc, item) => {
177
+ if (Array.isArray(item)) {
178
+ const deduped = dedupeKeywordArray(item);
179
+ if (deduped.length > 0) {
180
+ acc.push(deduped);
181
+ }
182
+ return acc;
183
+ }
184
+ const normalized = normalizeKeyword(item);
185
+ if (uniqueKeywordsSet.has(normalized.keyword)) {
186
+ return acc;
187
+ }
188
+ uniqueKeywordsSet.add(normalized.keyword);
189
+ acc.push(item);
190
+ return acc;
191
+ }, []);
192
+ return deduplicatedGroupedKeywords;
193
+ }
194
+ /**
195
+ * Groups seed keywords and extracts just the keyword strings.
196
+ * Convenience wrapper around groupSeedKeywords for cases where
197
+ * only the keyword text is needed (not the full metadata).
198
+ */
199
+ function groupKeywordStrings(seedKeywords, generateIdeasFromSeeds = true) {
200
+ const groupedSeedKeywords = groupSeedKeywords(seedKeywords, generateIdeasFromSeeds);
201
+ return groupedSeedKeywords.map(g => {
202
+ if (Array.isArray(g)) {
203
+ return g.map(kw => kw.keyword);
204
+ }
205
+ return g.keyword;
206
+ });
207
+ }
208
+ /**
209
+ * Collects and groups seed keywords in one step, returning only keyword strings.
210
+ * This is a convenience function for pipelines that need grouped keyword strings
211
+ * without the full SeedKeyword metadata.
212
+ *
213
+ * @param params - Same parameters as collectSeedKeywords
214
+ * @param generateIdeasFromSeeds - When true, returns grouped keywords. When false, returns flat.
215
+ * @returns Grouped keyword strings (arrays for same-source groups, single strings otherwise)
216
+ */
217
+ function collectAndGroupKeywordStrings(params, generateIdeasFromSeeds = true) {
218
+ const seedKeywords = collectSeedKeywords(params);
219
+ return groupKeywordStrings(seedKeywords, generateIdeasFromSeeds);
220
+ }
@@ -0,0 +1,11 @@
1
+ import { type BrandContext } from '../schemas/brand.schema.js';
2
+ import { type ABSentiment } from '../schemas/sentiment.schema.js';
3
+ /**
4
+ * Extracts aspect-based sentiments from a text.
5
+ */
6
+ export declare function extractAspectBasedSentiments(text: string | null, instructions?: string, model?: string): Promise<Array<ABSentiment>>;
7
+ /**
8
+ * Classifies multiple data records concurrently while preserving order.
9
+ */
10
+ export declare function extractABSForBrandBatch(texts: Array<string | null>, brand?: BrandContext | null, model?: string, maxConcurrency?: number): Promise<Array<Array<ABSentiment>>>;
11
+ //# sourceMappingURL=sentiment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sentiment.d.ts","sourceRoot":"","sources":["../../../src/src/tools/sentiment.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAwCtF;;GAEG;AACH,wBAAsB,4BAA4B,CACjD,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,YAAY,GAAE,MAAW,EACzB,KAAK,GAAE,MAAuB,GAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAoB7B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAC3B,KAAK,GAAE,YAAY,GAAG,IAAW,EACjC,KAAK,GAAE,MAAuB,EAC9B,cAAc,GAAE,MAAY,GAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAYpC"}