@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,237 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Taxonomy = exports.TaxonomyBase = exports.Topic = void 0;
4
+ exports.toTopics = toTopics;
5
+ exports.createLabelSchema = createLabelSchema;
6
+ exports.assignTopic = assignTopic;
7
+ exports.assignTopics = assignTopics;
8
+ exports.extractTopics = extractTopics;
9
+ /* eslint no-console: ["warn", { allow: ["log", "warn", "error"] }] */
10
+ const index_js_1 = require("../../deps/jsr.io/@zod/zod/4.1.12/src/index.js");
11
+ const async_js_1 = require("../async.js");
12
+ const openai_js_1 = require("../openai.js");
13
+ const topics_schema_js_1 = require("../schemas/topics.schema.js");
14
+ const utils_js_1 = require("../utils.js");
15
+ /**
16
+ * Levenshtein distance implementation for string similarity validation
17
+ */
18
+ function levenshteinDistance(a, b) {
19
+ if (a.length === 0)
20
+ return b.length;
21
+ if (b.length === 0)
22
+ return a.length;
23
+ const matrix = Array(a.length + 1).fill(null).map(() => Array(b.length + 1).fill(0));
24
+ for (let i = 0; i <= a.length; i++) {
25
+ matrix[i][0] = i;
26
+ }
27
+ for (let j = 0; j <= b.length; j++) {
28
+ matrix[0][j] = j;
29
+ }
30
+ for (let i = 1; i <= a.length; i++) {
31
+ for (let j = 1; j <= b.length; j++) {
32
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
33
+ matrix[i][j] = Math.min(matrix[i - 1][j] + 1, // deletion
34
+ matrix[i][j - 1] + 1, // insertion
35
+ matrix[i - 1][j - 1] + cost // substitution
36
+ );
37
+ }
38
+ }
39
+ return matrix[a.length][b.length];
40
+ }
41
+ /**
42
+ * Validates that subtopics are sufficiently distinct from each other and from the parent topic.
43
+ */
44
+ function validateSubtopics(topic, subtopics) {
45
+ const MIN_LDIST = 2;
46
+ const subtopicsLower = subtopics.map((st) => st.toLowerCase());
47
+ const errors = [];
48
+ for (let i = 0; i < subtopicsLower.length; i++) {
49
+ const st = subtopicsLower[i];
50
+ // Subtopics should not be too similar to their parent topic
51
+ if (levenshteinDistance(st, topic.toLowerCase()) < MIN_LDIST) {
52
+ errors.push(`Subtopic '${st}' too similar to parent topic '${topic}'.`);
53
+ }
54
+ // Subtopics should not be too similar to each other
55
+ for (let j = i + 1; j < subtopicsLower.length; j++) {
56
+ const other = subtopicsLower[j];
57
+ // Check Levenshtein distance for similarity
58
+ if (levenshteinDistance(st.replace(/ /g, ''), other.replace(/ /g, '')) < MIN_LDIST) {
59
+ errors.push(`Subtopic '${st}' too similar to other subtopic '${other}'.`);
60
+ }
61
+ // Check for permutations of words
62
+ const stWords = new Set(st.split(' '));
63
+ const otherWords = new Set(other.split(' '));
64
+ if (stWords.size === otherWords.size &&
65
+ [...stWords].every(word => otherWords.has(word))) {
66
+ errors.push(`Subtopic '${st}' is a duplicate (permutation) of subtopic '${other}'.`);
67
+ }
68
+ }
69
+ }
70
+ return errors;
71
+ }
72
+ /**
73
+ * Topic schema with subtopic validation
74
+ * Validates that subtopics are sufficiently distinct from each other and from the parent topic.
75
+ */
76
+ exports.Topic = topics_schema_js_1.TopicSchema.superRefine(({ topic, subtopics }, ctx) => {
77
+ const errors = validateSubtopics(topic, subtopics);
78
+ for (const error of errors) {
79
+ ctx.addIssue({
80
+ code: 'custom',
81
+ message: error,
82
+ path: ['subtopics']
83
+ });
84
+ }
85
+ });
86
+ /**
87
+ * Taxonomy schema WITHOUT validation for fallback parsing
88
+ */
89
+ exports.TaxonomyBase = index_js_1.z.object({
90
+ topics: index_js_1.z.array(topics_schema_js_1.TopicSchema)
91
+ });
92
+ /**
93
+ * Taxonomy schema with topic validation
94
+ */
95
+ exports.Taxonomy = index_js_1.z.object({
96
+ topics: index_js_1.z.array(exports.Topic)
97
+ });
98
+ /**
99
+ * Converts a taxonomy in the format Record<string, Array<string>> to an array
100
+ * of topic objects compatible with the Topic schema.
101
+ */
102
+ function toTopics(taxonomy) {
103
+ return Object.entries(taxonomy).map(([topic, subtopics]) => ({
104
+ topic,
105
+ subtopics
106
+ }));
107
+ }
108
+ /**
109
+ * Creates a dynamic TopicLabel schema based on a topic hierarchy
110
+ * Validates that subtopic belongs to the correct topic
111
+ */
112
+ function createLabelSchema(taxonomy) {
113
+ const topicNames = taxonomy.topics.map(t => t.topic);
114
+ const allSubtopics = taxonomy.topics.flatMap(t => t.subtopics);
115
+ return index_js_1.z.object({
116
+ topic: index_js_1.z.enum(topicNames),
117
+ subtopic: index_js_1.z.enum(allSubtopics)
118
+ }).superRefine((data, ctx) => {
119
+ const topicEntry = taxonomy.topics.find(t => t.topic === data.topic);
120
+ const allowedSubtopics = topicEntry?.subtopics || [];
121
+ if (!allowedSubtopics.includes(data.subtopic)) {
122
+ ctx.addIssue({
123
+ code: 'custom',
124
+ message: `Subtopic '${data.subtopic}' is not a valid subtopic for topic '${data.topic}'. ` +
125
+ `Allowed subtopics are: ${allowedSubtopics.join(', ')}.`,
126
+ path: ['subtopic']
127
+ });
128
+ }
129
+ });
130
+ }
131
+ const TOPICS_PROMPT = (0, utils_js_1.dedent)(`
132
+ # Instructions
133
+
134
+ From the data records below, extract a two-level nested list of topics.
135
+ The output should be a JSON object with top-level topics as keys and lists of subtopics as values.
136
+ The top-level should not contain more than {n_topics} topics, and each top-level
137
+ should not contain more than {n_subtopics} subtopics.
138
+
139
+ Make sure top-level topics are generalizable and capture broad themes.
140
+ Subtopics should represent more specific categories within each theme.
141
+ Both topics and subtopics must be written in {language}.
142
+
143
+ {instructions}
144
+
145
+ # Data Records
146
+
147
+ {records}
148
+ `);
149
+ const LABEL_PROMPT_SYSTEM = (0, utils_js_1.dedent)(`
150
+ You're task is to use the following hierarchy of topics and subtopics (in json format),
151
+ to assign the correct topic and subtopic to each text in the input.
152
+ You cannot invent new topics or subtopics.
153
+ You cannot assign a subtopic that does not belong to the assigned topic.
154
+
155
+ # Topics
156
+
157
+ {taxonomy}
158
+ `);
159
+ const LABEL_PROMPT_USER = (0, utils_js_1.dedent)(`
160
+ Assign the correct topic and subtopic to the following text.
161
+
162
+ # Text
163
+
164
+ {text}
165
+ `);
166
+ /**
167
+ * Assigns a topic and subtopic to a single text using an LLM call.
168
+ */
169
+ async function assignTopic(text, taxonomy, labelSchema, model = 'gpt-5.1', modelParams = { reasoning: { effort: 'none' } }) {
170
+ if (text == null || text.trim() === '') {
171
+ return null;
172
+ }
173
+ const systemPrompt = LABEL_PROMPT_SYSTEM.replace('{taxonomy}', typeof taxonomy === 'string' ? taxonomy : JSON.stringify(taxonomy, null, 2));
174
+ const userPrompt = LABEL_PROMPT_USER.replace('{text}', text);
175
+ const prompts = [
176
+ { role: 'system', content: systemPrompt },
177
+ { role: 'user', content: userPrompt }
178
+ ];
179
+ try {
180
+ const { parsed, error } = await (0, openai_js_1.askOpenAISafe)(prompts, model, labelSchema, modelParams);
181
+ if (error != null || parsed == null) {
182
+ return null;
183
+ }
184
+ return parsed;
185
+ }
186
+ catch (error) {
187
+ console.warn(`Failed to assign topic for text "${text.substring(0, 50)}...":`, error);
188
+ return null;
189
+ }
190
+ }
191
+ /**
192
+ * Assigns topics to multiple texts concurrently while preserving order.
193
+ */
194
+ function assignTopics(texts, taxonomy, model = 'gpt-5.1', modelParams = { reasoning: { effort: 'none' } }, maxConcurrency = 100) {
195
+ // Precompute normalized taxonomy and label schema once for whole batch
196
+ const normalizedTaxonomy = Array.isArray(taxonomy)
197
+ ? { topics: taxonomy }
198
+ : taxonomy;
199
+ const labelSchema = createLabelSchema(normalizedTaxonomy);
200
+ const serializedTaxonomy = JSON.stringify(normalizedTaxonomy, null, 2);
201
+ return (0, async_js_1.mapParallel)(texts, maxConcurrency, text => assignTopic(text, serializedTaxonomy, labelSchema, model, modelParams));
202
+ }
203
+ /**
204
+ * Extracts a topic hierarchy from an array of records using an LLM.
205
+ */
206
+ async function extractTopics({ records, nTopics = 10, nSubtopics = 5, instructions = '', maxSamples = 500, model = 'gpt-4.1', modelParams = {}, maxRetries = 8, language = 'The same language as the records' }) {
207
+ if (!records || records.length === 0) {
208
+ return { topics: [] };
209
+ }
210
+ const sampledRecords = records.length > maxSamples
211
+ ? records.slice(0, maxSamples)
212
+ : records;
213
+ const formattedRecords = (0, utils_js_1.formatRecordsAttrWise)(sampledRecords);
214
+ const prompt = TOPICS_PROMPT
215
+ .replace('{n_topics}', String(nTopics))
216
+ .replace('{n_subtopics}', String(nSubtopics))
217
+ .replace('{instructions}', instructions)
218
+ .replace('{records}', formattedRecords)
219
+ .replace('{language}', language);
220
+ const { parsed, output_text, error } = await (0, openai_js_1.askOpenAISafe)(prompt, model, exports.Taxonomy, modelParams, maxRetries, 'return');
221
+ if (error != null) {
222
+ if (output_text == null) {
223
+ throw new Error('Failed to get response from OpenAI');
224
+ }
225
+ try {
226
+ const taxonomy = JSON.parse(output_text);
227
+ return exports.TaxonomyBase.parse(taxonomy);
228
+ }
229
+ catch (parseError) {
230
+ throw new Error(`Failed to parse response even without validation: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
231
+ }
232
+ }
233
+ if (parsed == null) {
234
+ throw new Error('Failed to parse response from OpenAI');
235
+ }
236
+ return parsed;
237
+ }
@@ -0,0 +1,44 @@
1
+ import type { BrandContext } from '../schemas/brand.schema.js';
2
+ export interface translateParams {
3
+ keyword: string;
4
+ language?: string;
5
+ model?: string;
6
+ instructions?: string;
7
+ brandContext: BrandContext;
8
+ }
9
+ /**
10
+ * Translates a single Google search keyword into an equivalent LLM prompt.
11
+ */
12
+ export declare function translate({ keyword, language, model, brandContext, instructions }: translateParams): Promise<string>;
13
+ /**
14
+ * Translates multiple Google search keywords to LLM prompts concurrently while preserving order.
15
+ */
16
+ export interface translateBatchParams {
17
+ keywords: Array<string>;
18
+ language?: string;
19
+ model?: string;
20
+ maxConcurrency?: number;
21
+ instructions?: string;
22
+ brandContext: BrandContext;
23
+ }
24
+ export declare function translateBatch(params: translateBatchParams): Promise<Array<string>>;
25
+ export interface reverseTranslateParams {
26
+ prompt: string;
27
+ language?: string;
28
+ model?: string;
29
+ }
30
+ /**
31
+ * Converts a natural language prompt into an equivalent Google search keyword.
32
+ */
33
+ export declare function reverseTranslate({ prompt, language, model }: reverseTranslateParams): Promise<string>;
34
+ export interface reverseTranslateBatchParams {
35
+ prompts: Array<string>;
36
+ language?: string;
37
+ model?: string;
38
+ maxConcurrency?: number;
39
+ }
40
+ /**
41
+ * Converts multiple natural language prompts to Google search keywords concurrently while preserving order.
42
+ */
43
+ export declare function reverseTranslateBatch(params: reverseTranslateBatchParams): Promise<Array<string>>;
44
+ //# sourceMappingURL=translate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../../src/src/tools/translate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA+C/D,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC9B,EAAE,OAAO,EAAE,QAAe,EAAE,KAAoB,EAAE,YAAY,EAAE,YAAiB,EAAE,EAAE,eAAe,GAClG,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;GAEG;AAEH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC3B;AAED,wBAAsB,cAAc,CACnC,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAQxB;AA4BD,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACrC,EAAE,MAAM,EAAE,QAAe,EAAE,KAAsB,EAAE,EAAE,sBAAsB,GACzE,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAC1C,MAAM,EAAE,2BAA2B,GACjC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAQxB"}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translate = translate;
4
+ exports.translateBatch = translateBatch;
5
+ exports.reverseTranslate = reverseTranslate;
6
+ exports.reverseTranslateBatch = reverseTranslateBatch;
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 TRANSLATE_PROMPT = (0, utils_js_1.dedent)(`
11
+ You are an expert in understanding search intent and conversational AI interactions.
12
+
13
+ Convert the following Google search keyword into an equivalent natural language prompt that
14
+ someone would use when interacting with an LLM like ChatGPT. The LLM prompt should:
15
+
16
+ - Be conversational and natural, as if speaking to an assistant
17
+ - Capture the same intent and information need as the keyword
18
+ - Be a complete sentence or question
19
+ - Not be overly verbose - keep it concise but natural
20
+ - Be written in "{language}"
21
+
22
+ For example:
23
+ - "best running shoes" → "What are the best running shoes?"
24
+ - "how to train for marathon" → "How do I train for a marathon?"
25
+ - "nike air max review" → "Can you give me a review of Nike Air Max shoes?"
26
+ - "weather new york" → "What's the weather like in New York?"
27
+
28
+ ## Brand Context Rules
29
+
30
+ You will receive brand context (sector, country). Follow these rules strictly:
31
+
32
+ 1. **DO NOT** change the core intent or meaning of the keyword
33
+ 2. **DO** use brand context to disambiguate terms when multiple interpretations exist
34
+ 3. The keyword's original intent must be preserved - brand context only helps clarify ambiguous terms
35
+
36
+ **Example of correct disambiguation:**
37
+ - Keyword: "geo"
38
+ - Brand sector: "ai visibility search"
39
+ - WRONG: "Tell me about geography" (ignores sector context)
40
+ - CORRECT: "What is GEO in AI visibility and search optimization?" (uses sector to disambiguate the acronym)
41
+
42
+ {additional_instructions}
43
+
44
+ # Keyword
45
+
46
+ {keyword}
47
+
48
+ # Brand Context (for reference only)
49
+ - Sector: {sector}
50
+ - Country: {country}
51
+
52
+ Return only the converted prompt, nothing else.
53
+ `);
54
+ /**
55
+ * Translates a single Google search keyword into an equivalent LLM prompt.
56
+ */
57
+ async function translate({ keyword, language = 'en', model = 'gpt-5-mini', brandContext, instructions = '' }) {
58
+ const prompt = TRANSLATE_PROMPT
59
+ .replace('{keyword}', keyword)
60
+ .replace('{language}', language)
61
+ .replace('{sector}', brandContext.sector)
62
+ .replace('{country}', brandContext.country)
63
+ .replace('{additional_instructions}', instructions);
64
+ const { parsed } = await (0, openai_js_1.askOpenAISafe)(prompt, model);
65
+ if (!parsed) {
66
+ throw new Error('Failed to parse translation from OpenAI response');
67
+ }
68
+ return parsed;
69
+ }
70
+ async function translateBatch(params) {
71
+ const { keywords, language = 'en', model = 'gpt-4.1-mini', maxConcurrency = 100, brandContext, instructions = '' } = params;
72
+ return (0, async_js_1.mapParallel)(keywords, maxConcurrency, kwd => translate({ keyword: kwd, language, model, brandContext, instructions }));
73
+ }
74
+ const REVERSE_TRANSLATE_PROMPT = (0, utils_js_1.dedent)(`
75
+ You are an expert in understanding search intent.
76
+
77
+ Convert the following natural language prompt into an equivalent Google search keyword.
78
+ The keyword should:
79
+
80
+ - Be concise (typically 2-5 words)
81
+ - Capture the core search intent
82
+ - Remove conversational filler and politeness
83
+ - Use common search terms
84
+
85
+ For example:
86
+ - "What are the best running shoes?" → "best running shoes"
87
+ - "How do I train for a marathon?" → "how to train marathon"
88
+ - "Can you give me a review of Nike Air Max shoes?" → "nike air max review"
89
+ - "What's the weather like in New York?" → "weather new york"
90
+
91
+ Make sure the keyword is in the language "{language}".
92
+
93
+ # Prompt
94
+
95
+ {prompt}
96
+
97
+ Return only the keyword, nothing else.
98
+ `);
99
+ /**
100
+ * Converts a natural language prompt into an equivalent Google search keyword.
101
+ */
102
+ async function reverseTranslate({ prompt, language = 'en', model = 'gpt-4.1-mini' }) {
103
+ const requestPrompt = REVERSE_TRANSLATE_PROMPT
104
+ .replace('{prompt}', prompt)
105
+ .replace('{language}', language);
106
+ const { parsed } = await (0, openai_js_1.askOpenAISafe)(requestPrompt, model);
107
+ if (!parsed) {
108
+ throw new Error('Failed to parse reverse translation from OpenAI response');
109
+ }
110
+ return parsed;
111
+ }
112
+ /**
113
+ * Converts multiple natural language prompts to Google search keywords concurrently while preserving order.
114
+ */
115
+ async function reverseTranslateBatch(params) {
116
+ const { prompts, language = 'en', model = 'gpt-5-mini', maxConcurrency = 100 } = params;
117
+ return (0, async_js_1.mapParallel)(prompts, maxConcurrency, p => reverseTranslate({ prompt: p, language, model }));
118
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Parse a URL, adding scheme if missing (internal helper).
3
+ */
4
+ export declare function parseUrl(url: string): URL;
5
+ /**
6
+ * Extract the domain from a URL or hostname.
7
+ * Handles incomplete URLs (missing scheme), Google Translate redirects, and subdomains.
8
+ */
9
+ export declare function extractDomain(url: string, withSubdomain?: boolean, resolveGoogleTranslate?: boolean): string;
10
+ //# sourceMappingURL=urls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/src/urls.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAQzC;AAaD;;;GAGG;AACH,wBAAgB,aAAa,CAC5B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,OAAe,EAC9B,sBAAsB,GAAE,OAAc,GACpC,MAAM,CA6BR"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseUrl = parseUrl;
4
+ exports.extractDomain = extractDomain;
5
+ const tldts_1 = require("tldts");
6
+ /**
7
+ * Parse a URL, adding scheme if missing (internal helper).
8
+ */
9
+ function parseUrl(url) {
10
+ let normalizedUrl = url.trim();
11
+ if (!normalizedUrl.startsWith('http://') && !normalizedUrl.startsWith('https://') && !normalizedUrl.startsWith('//')) {
12
+ normalizedUrl = 'http://' + normalizedUrl;
13
+ }
14
+ return new URL(normalizedUrl);
15
+ }
16
+ /**
17
+ * Check if a URL is a Google Translate URL (internal helper).
18
+ */
19
+ function isGoogleTranslateUrl(parsedUrl) {
20
+ return (parsedUrl.hostname === 'translate.google.com' &&
21
+ parsedUrl.pathname.startsWith('/translate') &&
22
+ parsedUrl.searchParams.has('u'));
23
+ }
24
+ /**
25
+ * Extract the domain from a URL or hostname.
26
+ * Handles incomplete URLs (missing scheme), Google Translate redirects, and subdomains.
27
+ */
28
+ function extractDomain(url, withSubdomain = false, resolveGoogleTranslate = true) {
29
+ if (!url) {
30
+ return url;
31
+ }
32
+ try {
33
+ let targetUrl = url.trim();
34
+ if (resolveGoogleTranslate) {
35
+ const parsedUrl = parseUrl(targetUrl);
36
+ if (isGoogleTranslateUrl(parsedUrl)) {
37
+ const originalUrl = parsedUrl.searchParams.get('u');
38
+ if (originalUrl != null) {
39
+ targetUrl = originalUrl;
40
+ }
41
+ }
42
+ }
43
+ const extracted = (0, tldts_1.parse)(targetUrl);
44
+ if (withSubdomain) {
45
+ const fqdn = extracted.hostname ?? '';
46
+ return fqdn.replace(/^www\./, '');
47
+ }
48
+ return extracted.domain ?? url;
49
+ }
50
+ catch {
51
+ return url;
52
+ }
53
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * General utility functions for text processing, record formatting, and arrays.
3
+ */
4
+ /**
5
+ * Remove leading whitespace from a string, similar to Python's textwrap.dedent.
6
+ * Also collapses newlines within paragraphs (except for markdown list items).
7
+ */
8
+ export declare function dedent(text: string): string;
9
+ /**
10
+ * Clean a string to make it suitable for use as a column name.
11
+ * Converts to lowercase, replaces non-alphanumeric characters with underscores,
12
+ * and removes consecutive underscores.
13
+ */
14
+ export declare function cleanColumnName(name: string): string;
15
+ /**
16
+ * Formats records in attribute-wise format (column-oriented).
17
+ * Each section shows all values for a single attribute across all records.
18
+ * Equivalent to records_attr_wise.jinja template.
19
+ *
20
+ * @param records - Array of record objects to format
21
+ * @returns Formatted string with records grouped by attribute
22
+ */
23
+ export declare function formatRecordsAttrWise(records: Array<Record<string, unknown>>): string;
24
+ /**
25
+ * Randomly sample n elements from an array using Fisher-Yates shuffle.
26
+ */
27
+ export declare function sampleArray<T>(array: Array<T>, n: number): Array<T>;
28
+ /**
29
+ * Deduplicates an array of records based on a single scalar field.
30
+ * Keeps the first occurrence of each unique value and removes subsequent duplicates.
31
+ */
32
+ export declare function deduplicate<T extends Record<string, unknown>>(records: Array<T>, field: keyof T): Array<T>;
33
+ /**
34
+ * Deduplicates an array of records based on a single scalar field.
35
+ * Keeps the last occurrence of each unique value, removing earlier duplicates.
36
+ */
37
+ export declare function deduplicateLast<T extends Record<string, unknown>>(records: Array<T>, field: keyof T): Array<T>;
38
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA8B3C;AAwCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AAMD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAoCrF;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAYnE;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,MAAM,CAAC,GACZ,KAAK,CAAC,CAAC,CAAC,CAoBV;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EACjB,KAAK,EAAE,MAAM,CAAC,GACZ,KAAK,CAAC,CAAC,CAAC,CAgBV"}