@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.
- package/README.md +18 -0
- package/esm/_dnt.shims.d.ts +6 -0
- package/esm/_dnt.shims.d.ts.map +1 -0
- package/esm/_dnt.shims.js +61 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/index.js +4 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts +2 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.js +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts +18 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.js +17 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts +51 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.js +31 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts +31 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.js +48 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts +14 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.js +18 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts +23 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.js +30 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts +32 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.js +15 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts +674 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.js +1040 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts +296 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.js +925 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts +279 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.js +560 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts +53 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.js +65 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts +15 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.js +36 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts +211 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.js +181 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts +15 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.js +14 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts +89 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.js +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts +50 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.js +93 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts +79 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.js +127 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts +36 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.js +52 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts +1115 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.js +1954 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts +56 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.js +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts +91 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.js +920 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts +198 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.js +600 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.js +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.js +115 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.js +164 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.js +128 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.js +118 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.js +135 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.js +131 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.js +149 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.js +122 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.js +122 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts +48 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.js +47 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.js +115 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.js +125 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.js +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.js +121 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.js +230 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.js +118 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.js +122 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.js +164 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.js +118 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.js +115 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.js +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.js +117 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.js +115 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.js +116 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.js +117 -0
- package/esm/mod.d.ts +23 -0
- package/esm/mod.d.ts.map +1 -0
- package/esm/mod.js +22 -0
- package/esm/package.json +3 -0
- package/esm/src/api.d.ts +42 -0
- package/esm/src/api.d.ts.map +1 -0
- package/esm/src/api.js +161 -0
- package/esm/src/apis/chatgptScraper/brightdata.d.ts +3 -0
- package/esm/src/apis/chatgptScraper/brightdata.d.ts.map +1 -0
- package/esm/src/apis/chatgptScraper/brightdata.js +172 -0
- package/esm/src/apis/chatgptScraper/index.d.ts +10 -0
- package/esm/src/apis/chatgptScraper/index.d.ts.map +1 -0
- package/esm/src/apis/chatgptScraper/index.js +41 -0
- package/esm/src/apis/chatgptScraper/oxy.d.ts +3 -0
- package/esm/src/apis/chatgptScraper/oxy.d.ts.map +1 -0
- package/esm/src/apis/chatgptScraper/oxy.js +156 -0
- package/esm/src/apis/chatgptScraper/scraper.d.ts +46 -0
- package/esm/src/apis/chatgptScraper/scraper.d.ts.map +1 -0
- package/esm/src/apis/chatgptScraper/scraper.js +98 -0
- package/esm/src/apis/googleAds/apiTypes.d.ts +131 -0
- package/esm/src/apis/googleAds/apiTypes.d.ts.map +1 -0
- package/esm/src/apis/googleAds/apiTypes.js +1 -0
- package/esm/src/apis/googleAds/client.d.ts +2 -0
- package/esm/src/apis/googleAds/client.d.ts.map +1 -0
- package/esm/src/apis/googleAds/client.js +97 -0
- package/esm/src/apis/googleAds/countryResourceMap.d.ts +2 -0
- package/esm/src/apis/googleAds/countryResourceMap.d.ts.map +1 -0
- package/esm/src/apis/googleAds/countryResourceMap.js +874 -0
- package/esm/src/apis/googleAds/keywordPlanner.d.ts +64 -0
- package/esm/src/apis/googleAds/keywordPlanner.d.ts.map +1 -0
- package/esm/src/apis/googleAds/keywordPlanner.js +462 -0
- package/esm/src/apis/googleAds/languageResourceMap.d.ts +2 -0
- package/esm/src/apis/googleAds/languageResourceMap.d.ts.map +1 -0
- package/esm/src/apis/googleAds/languageResourceMap.js +208 -0
- package/esm/src/apis/hasdata/aim.d.ts +4 -0
- package/esm/src/apis/hasdata/aim.d.ts.map +1 -0
- package/esm/src/apis/hasdata/aim.js +32 -0
- package/esm/src/apis/hasdata/aio.d.ts +4 -0
- package/esm/src/apis/hasdata/aio.d.ts.map +1 -0
- package/esm/src/apis/hasdata/aio.js +42 -0
- package/esm/src/apis/hasdata/helpers.d.ts +55 -0
- package/esm/src/apis/hasdata/helpers.d.ts.map +1 -0
- package/esm/src/apis/hasdata/helpers.js +182 -0
- package/esm/src/async.d.ts +29 -0
- package/esm/src/async.d.ts.map +1 -0
- package/esm/src/async.js +109 -0
- package/esm/src/models.d.ts +18 -0
- package/esm/src/models.d.ts.map +1 -0
- package/esm/src/models.js +48 -0
- package/esm/src/openai.d.ts +17 -0
- package/esm/src/openai.d.ts.map +1 -0
- package/esm/src/openai.js +136 -0
- package/esm/src/schemas/brand.schema.d.ts +182 -0
- package/esm/src/schemas/brand.schema.d.ts.map +1 -0
- package/esm/src/schemas/brand.schema.js +49 -0
- package/esm/src/schemas/entity.schema.d.ts +14 -0
- package/esm/src/schemas/entity.schema.d.ts.map +1 -0
- package/esm/src/schemas/entity.schema.js +8 -0
- package/esm/src/schemas/funnel.schema.d.ts +94 -0
- package/esm/src/schemas/funnel.schema.d.ts.map +1 -0
- package/esm/src/schemas/funnel.schema.js +46 -0
- package/esm/src/schemas/index.d.ts +21 -0
- package/esm/src/schemas/index.d.ts.map +1 -0
- package/esm/src/schemas/index.js +13 -0
- package/esm/src/schemas/keyword.schema.d.ts +44 -0
- package/esm/src/schemas/keyword.schema.d.ts.map +1 -0
- package/esm/src/schemas/keyword.schema.js +6 -0
- package/esm/src/schemas/models.schema.d.ts +6 -0
- package/esm/src/schemas/models.schema.d.ts.map +1 -0
- package/esm/src/schemas/models.schema.js +1 -0
- package/esm/src/schemas/persona.schema.d.ts +50 -0
- package/esm/src/schemas/persona.schema.d.ts.map +1 -0
- package/esm/src/schemas/persona.schema.js +21 -0
- package/esm/src/schemas/pipeline.schema.d.ts +146 -0
- package/esm/src/schemas/pipeline.schema.d.ts.map +1 -0
- package/esm/src/schemas/pipeline.schema.js +16 -0
- package/esm/src/schemas/search.schema.d.ts +29 -0
- package/esm/src/schemas/search.schema.d.ts.map +1 -0
- package/esm/src/schemas/search.schema.js +1 -0
- package/esm/src/schemas/seedKeyword.schema.d.ts +15 -0
- package/esm/src/schemas/seedKeyword.schema.d.ts.map +1 -0
- package/esm/src/schemas/seedKeyword.schema.js +7 -0
- package/esm/src/schemas/sentiment.schema.d.ts +22 -0
- package/esm/src/schemas/sentiment.schema.d.ts.map +1 -0
- package/esm/src/schemas/sentiment.schema.js +9 -0
- package/esm/src/schemas/sources.schema.d.ts +29 -0
- package/esm/src/schemas/sources.schema.d.ts.map +1 -0
- package/esm/src/schemas/sources.schema.js +1 -0
- package/esm/src/schemas/topics.schema.d.ts +33 -0
- package/esm/src/schemas/topics.schema.d.ts.map +1 -0
- package/esm/src/schemas/topics.schema.js +14 -0
- package/esm/src/tools/brands.d.ts +55 -0
- package/esm/src/tools/brands.d.ts.map +1 -0
- package/esm/src/tools/brands.js +458 -0
- package/esm/src/tools/classifier.d.ts +17 -0
- package/esm/src/tools/classifier.d.ts.map +1 -0
- package/esm/src/tools/classifier.js +135 -0
- package/esm/src/tools/entities.d.ts +19 -0
- package/esm/src/tools/entities.d.ts.map +1 -0
- package/esm/src/tools/entities.js +80 -0
- package/esm/src/tools/funnel.d.ts +41 -0
- package/esm/src/tools/funnel.d.ts.map +1 -0
- package/esm/src/tools/funnel.js +372 -0
- package/esm/src/tools/keywords.d.ts +21 -0
- package/esm/src/tools/keywords.d.ts.map +1 -0
- package/esm/src/tools/keywords.js +172 -0
- package/esm/src/tools/personas.d.ts +3 -0
- package/esm/src/tools/personas.d.ts.map +1 -0
- package/esm/src/tools/personas.js +88 -0
- package/esm/src/tools/scorer.d.ts +14 -0
- package/esm/src/tools/scorer.d.ts.map +1 -0
- package/esm/src/tools/scorer.js +54 -0
- package/esm/src/tools/search.d.ts +24 -0
- package/esm/src/tools/search.d.ts.map +1 -0
- package/esm/src/tools/search.js +130 -0
- package/esm/src/tools/seedKeywords.d.ts +68 -0
- package/esm/src/tools/seedKeywords.d.ts.map +1 -0
- package/esm/src/tools/seedKeywords.js +214 -0
- package/esm/src/tools/sentiment.d.ts +11 -0
- package/esm/src/tools/sentiment.d.ts.map +1 -0
- package/esm/src/tools/sentiment.js +68 -0
- package/esm/src/tools/sources.d.ts +39 -0
- package/esm/src/tools/sources.d.ts.map +1 -0
- package/esm/src/tools/sources.js +263 -0
- package/esm/src/tools/topics.d.ts +74 -0
- package/esm/src/tools/topics.d.ts.map +1 -0
- package/esm/src/tools/topics.js +229 -0
- package/esm/src/tools/translate.d.ts +44 -0
- package/esm/src/tools/translate.d.ts.map +1 -0
- package/esm/src/tools/translate.js +112 -0
- package/esm/src/urls.d.ts +10 -0
- package/esm/src/urls.d.ts.map +1 -0
- package/esm/src/urls.js +49 -0
- package/esm/src/utils.d.ts +38 -0
- package/esm/src/utils.d.ts.map +1 -0
- package/esm/src/utils.js +175 -0
- package/package.json +32 -0
- package/script/_dnt.shims.d.ts +6 -0
- package/script/_dnt.shims.d.ts.map +1 -0
- package/script/_dnt.shims.js +65 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/index.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/index.js +43 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts +2 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/checks.js +32 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts +18 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/coerce.js +57 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts +51 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/compat.js +71 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts +31 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/errors.js +84 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts +14 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/external.js +80 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts +23 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/iso.js +70 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts +32 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/parse.js +51 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts +674 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/classic/schemas.js +1161 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts +296 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/api.js +1066 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts +279 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/checks.js +596 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts +53 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/core.js +72 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts +15 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/doc.js +40 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts +211 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/errors.js +222 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts +15 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/index.js +53 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts +89 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/json-schema.js +2 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts +50 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/parse.js +141 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts +79 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/regexes.js +136 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts +36 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/registries.js +57 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts +1115 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/schemas.js +1995 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts +56 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/standard-schema.js +2 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts +91 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/to-json-schema.js +925 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts +198 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/util.js +657 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/core/versions.js +8 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ar.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/az.js +151 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/be.js +200 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/bg.js +166 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ca.js +154 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/cs.js +171 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/da.js +167 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/de.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/en.js +155 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/eo.js +154 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/es.js +185 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fa.js +158 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fi.js +158 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr-CA.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/fr.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/he.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/hu.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/id.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts +48 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/index.js +100 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/is.js +155 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/it.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ja.js +151 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ka.js +163 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/kh.js +11 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/km.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ko.js +157 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/lt.js +268 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/mk.js +154 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ms.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/nl.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/no.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ota.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pl.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ps.js +158 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/pt.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ru.js +200 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sl.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/sv.js +154 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ta.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/th.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/tr.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts +6 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ua.js +11 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/uk.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/ur.js +153 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/vi.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/yo.js +151 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-CN.js +152 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts +5 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.d.ts.map +1 -0
- package/script/deps/jsr.io/@zod/zod/4.1.12/src/v4/locales/zh-TW.js +153 -0
- package/script/mod.d.ts +23 -0
- package/script/mod.d.ts.map +1 -0
- package/script/mod.js +38 -0
- package/script/package.json +3 -0
- package/script/src/api.d.ts +42 -0
- package/script/src/api.d.ts.map +1 -0
- package/script/src/api.js +172 -0
- package/script/src/apis/chatgptScraper/brightdata.d.ts +3 -0
- package/script/src/apis/chatgptScraper/brightdata.d.ts.map +1 -0
- package/script/src/apis/chatgptScraper/brightdata.js +208 -0
- package/script/src/apis/chatgptScraper/index.d.ts +10 -0
- package/script/src/apis/chatgptScraper/index.d.ts.map +1 -0
- package/script/src/apis/chatgptScraper/index.js +81 -0
- package/script/src/apis/chatgptScraper/oxy.d.ts +3 -0
- package/script/src/apis/chatgptScraper/oxy.d.ts.map +1 -0
- package/script/src/apis/chatgptScraper/oxy.js +192 -0
- package/script/src/apis/chatgptScraper/scraper.d.ts +46 -0
- package/script/src/apis/chatgptScraper/scraper.d.ts.map +1 -0
- package/script/src/apis/chatgptScraper/scraper.js +139 -0
- package/script/src/apis/googleAds/apiTypes.d.ts +131 -0
- package/script/src/apis/googleAds/apiTypes.d.ts.map +1 -0
- package/script/src/apis/googleAds/apiTypes.js +2 -0
- package/script/src/apis/googleAds/client.d.ts +2 -0
- package/script/src/apis/googleAds/client.d.ts.map +1 -0
- package/script/src/apis/googleAds/client.js +133 -0
- package/script/src/apis/googleAds/countryResourceMap.d.ts +2 -0
- package/script/src/apis/googleAds/countryResourceMap.d.ts.map +1 -0
- package/script/src/apis/googleAds/countryResourceMap.js +877 -0
- package/script/src/apis/googleAds/keywordPlanner.d.ts +64 -0
- package/script/src/apis/googleAds/keywordPlanner.d.ts.map +1 -0
- package/script/src/apis/googleAds/keywordPlanner.js +465 -0
- package/script/src/apis/googleAds/languageResourceMap.d.ts +2 -0
- package/script/src/apis/googleAds/languageResourceMap.d.ts.map +1 -0
- package/script/src/apis/googleAds/languageResourceMap.js +211 -0
- package/script/src/apis/hasdata/aim.d.ts +4 -0
- package/script/src/apis/hasdata/aim.d.ts.map +1 -0
- package/script/src/apis/hasdata/aim.js +36 -0
- package/script/src/apis/hasdata/aio.d.ts +4 -0
- package/script/src/apis/hasdata/aio.d.ts.map +1 -0
- package/script/src/apis/hasdata/aio.js +46 -0
- package/script/src/apis/hasdata/helpers.d.ts +55 -0
- package/script/src/apis/hasdata/helpers.d.ts.map +1 -0
- package/script/src/apis/hasdata/helpers.js +222 -0
- package/script/src/async.d.ts +29 -0
- package/script/src/async.d.ts.map +1 -0
- package/script/src/async.js +148 -0
- package/script/src/models.d.ts +18 -0
- package/script/src/models.d.ts.map +1 -0
- package/script/src/models.js +52 -0
- package/script/src/openai.d.ts +17 -0
- package/script/src/openai.d.ts.map +1 -0
- package/script/src/openai.js +175 -0
- package/script/src/schemas/brand.schema.d.ts +182 -0
- package/script/src/schemas/brand.schema.d.ts.map +1 -0
- package/script/src/schemas/brand.schema.js +52 -0
- package/script/src/schemas/entity.schema.d.ts +14 -0
- package/script/src/schemas/entity.schema.d.ts.map +1 -0
- package/script/src/schemas/entity.schema.js +11 -0
- package/script/src/schemas/funnel.schema.d.ts +94 -0
- package/script/src/schemas/funnel.schema.d.ts.map +1 -0
- package/script/src/schemas/funnel.schema.js +49 -0
- package/script/src/schemas/index.d.ts +21 -0
- package/script/src/schemas/index.d.ts.map +1 -0
- package/script/src/schemas/index.js +14 -0
- package/script/src/schemas/keyword.schema.d.ts +44 -0
- package/script/src/schemas/keyword.schema.d.ts.map +1 -0
- package/script/src/schemas/keyword.schema.js +9 -0
- package/script/src/schemas/models.schema.d.ts +6 -0
- package/script/src/schemas/models.schema.d.ts.map +1 -0
- package/script/src/schemas/models.schema.js +2 -0
- package/script/src/schemas/persona.schema.d.ts +50 -0
- package/script/src/schemas/persona.schema.d.ts.map +1 -0
- package/script/src/schemas/persona.schema.js +24 -0
- package/script/src/schemas/pipeline.schema.d.ts +146 -0
- package/script/src/schemas/pipeline.schema.d.ts.map +1 -0
- package/script/src/schemas/pipeline.schema.js +17 -0
- package/script/src/schemas/search.schema.d.ts +29 -0
- package/script/src/schemas/search.schema.d.ts.map +1 -0
- package/script/src/schemas/search.schema.js +2 -0
- package/script/src/schemas/seedKeyword.schema.d.ts +15 -0
- package/script/src/schemas/seedKeyword.schema.d.ts.map +1 -0
- package/script/src/schemas/seedKeyword.schema.js +8 -0
- package/script/src/schemas/sentiment.schema.d.ts +22 -0
- package/script/src/schemas/sentiment.schema.d.ts.map +1 -0
- package/script/src/schemas/sentiment.schema.js +12 -0
- package/script/src/schemas/sources.schema.d.ts +29 -0
- package/script/src/schemas/sources.schema.d.ts.map +1 -0
- package/script/src/schemas/sources.schema.js +2 -0
- package/script/src/schemas/topics.schema.d.ts +33 -0
- package/script/src/schemas/topics.schema.d.ts.map +1 -0
- package/script/src/schemas/topics.schema.js +17 -0
- package/script/src/tools/brands.d.ts +55 -0
- package/script/src/tools/brands.d.ts.map +1 -0
- package/script/src/tools/brands.js +470 -0
- package/script/src/tools/classifier.d.ts +17 -0
- package/script/src/tools/classifier.d.ts.map +1 -0
- package/script/src/tools/classifier.js +141 -0
- package/script/src/tools/entities.d.ts +19 -0
- package/script/src/tools/entities.d.ts.map +1 -0
- package/script/src/tools/entities.js +88 -0
- package/script/src/tools/funnel.d.ts +41 -0
- package/script/src/tools/funnel.d.ts.map +1 -0
- package/script/src/tools/funnel.js +381 -0
- package/script/src/tools/keywords.d.ts +21 -0
- package/script/src/tools/keywords.d.ts.map +1 -0
- package/script/src/tools/keywords.js +190 -0
- package/script/src/tools/personas.d.ts +3 -0
- package/script/src/tools/personas.d.ts.map +1 -0
- package/script/src/tools/personas.js +91 -0
- package/script/src/tools/scorer.d.ts +14 -0
- package/script/src/tools/scorer.d.ts.map +1 -0
- package/script/src/tools/scorer.js +59 -0
- package/script/src/tools/search.d.ts +24 -0
- package/script/src/tools/search.d.ts.map +1 -0
- package/script/src/tools/search.js +135 -0
- package/script/src/tools/seedKeywords.d.ts +68 -0
- package/script/src/tools/seedKeywords.d.ts.map +1 -0
- package/script/src/tools/seedKeywords.js +220 -0
- package/script/src/tools/sentiment.d.ts +11 -0
- package/script/src/tools/sentiment.d.ts.map +1 -0
- package/script/src/tools/sentiment.js +72 -0
- package/script/src/tools/sources.d.ts +39 -0
- package/script/src/tools/sources.d.ts.map +1 -0
- package/script/src/tools/sources.js +273 -0
- package/script/src/tools/topics.d.ts +74 -0
- package/script/src/tools/topics.d.ts.map +1 -0
- package/script/src/tools/topics.js +237 -0
- package/script/src/tools/translate.d.ts +44 -0
- package/script/src/tools/translate.d.ts.map +1 -0
- package/script/src/tools/translate.js +118 -0
- package/script/src/urls.d.ts +10 -0
- package/script/src/urls.d.ts.map +1 -0
- package/script/src/urls.js +53 -0
- package/script/src/utils.d.ts +38 -0
- package/script/src/utils.d.ts.map +1 -0
- package/script/src/utils.js +183 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FunnelWithExplanationSchema = void 0;
|
|
4
|
+
exports.iterateFunnelCategories = iterateFunnelCategories;
|
|
5
|
+
exports.funnelToTopics = funnelToTopics;
|
|
6
|
+
exports.customizeFunnel = customizeFunnel;
|
|
7
|
+
exports.generateSeedKeywords = generateSeedKeywords;
|
|
8
|
+
exports.reseedFunnel = reseedFunnel;
|
|
9
|
+
exports.generateFunnel = generateFunnel;
|
|
10
|
+
const async_js_1 = require("../async.js");
|
|
11
|
+
const openai_js_1 = require("../openai.js");
|
|
12
|
+
const funnel_schema_js_1 = require("../schemas/funnel.schema.js");
|
|
13
|
+
Object.defineProperty(exports, "FunnelWithExplanationSchema", { enumerable: true, get: function () { return funnel_schema_js_1.FunnelWithExplanationSchema; } });
|
|
14
|
+
const utils_js_1 = require("../utils.js");
|
|
15
|
+
/**
|
|
16
|
+
* Iterates over all categories in a funnel, yielding references to stage info and category objects.
|
|
17
|
+
* This allows in-place modifications of categories within the funnel structure.
|
|
18
|
+
*
|
|
19
|
+
* @param funnel - The funnel to iterate over (can be a Funnel object or array of stages)
|
|
20
|
+
* @yields A tuple of [stageName, stageGoal, categoryObject] where categoryObject can be modified in-place
|
|
21
|
+
*/
|
|
22
|
+
function* iterateFunnelCategories(funnel) {
|
|
23
|
+
const stages = Array.isArray(funnel) ? funnel : funnel.stages;
|
|
24
|
+
for (const stageData of stages) {
|
|
25
|
+
for (const category of stageData.categories) {
|
|
26
|
+
yield [stageData.stage, stageData.goal, category];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Converts a Funnel into a topic taxonomy structure where stages are top-level topics
|
|
32
|
+
* and categories are subtopics.
|
|
33
|
+
*
|
|
34
|
+
* @param funnel - The funnel to convert (can be a Funnel object or array of stages)
|
|
35
|
+
* @returns An array of topic objects with stage names as topics and category names as subtopics
|
|
36
|
+
*/
|
|
37
|
+
function funnelToTopics(funnel) {
|
|
38
|
+
const stages = Array.isArray(funnel) ? funnel : funnel.stages;
|
|
39
|
+
return stages.map(stage => ({
|
|
40
|
+
topic: stage.stage,
|
|
41
|
+
subtopics: stage.categories.map(category => category.name)
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
const GENERIC_FUNNEL = [
|
|
45
|
+
{
|
|
46
|
+
'stage': 'Awareness / Discovery',
|
|
47
|
+
'goal': 'Problem recognition, education.',
|
|
48
|
+
'categories': [
|
|
49
|
+
{
|
|
50
|
+
'name': 'Problem Identification',
|
|
51
|
+
'description': 'User searches to understand or define their problem or need.',
|
|
52
|
+
'keywordPatterns': ['questions', 'how-to', 'why', 'tips', 'guides'],
|
|
53
|
+
'keywordSeeds': [
|
|
54
|
+
'why does my back hurt when running',
|
|
55
|
+
'how to organize customer data'
|
|
56
|
+
],
|
|
57
|
+
'intent': 'Informational'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
'name': 'Category Education',
|
|
61
|
+
'description': 'Exploring broad product/service categories without specific brands.',
|
|
62
|
+
'keywordPatterns': ['types of', 'what is', 'overview', 'guide to'],
|
|
63
|
+
'keywordSeeds': ['types of running shoes', 'what is CRM software'],
|
|
64
|
+
'intent': 'Informational'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
'name': 'Trends & Inspiration',
|
|
68
|
+
'description': 'Looking for ideas, new trends, or general inspiration.',
|
|
69
|
+
'keywordPatterns': [
|
|
70
|
+
'trends',
|
|
71
|
+
'ideas',
|
|
72
|
+
'inspiration',
|
|
73
|
+
'popular',
|
|
74
|
+
'latest'
|
|
75
|
+
],
|
|
76
|
+
'keywordSeeds': [
|
|
77
|
+
'latest running shoe trends 2025',
|
|
78
|
+
'popular small business tools'
|
|
79
|
+
],
|
|
80
|
+
'intent': 'Informational'
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
'stage': 'Consideration / Research',
|
|
86
|
+
'goal': 'Compare options, evaluate solutions.',
|
|
87
|
+
'categories': [
|
|
88
|
+
{
|
|
89
|
+
'name': 'Features & Specifications',
|
|
90
|
+
'description': 'Interest in specific attributes or capabilities.',
|
|
91
|
+
'keywordPatterns': [
|
|
92
|
+
'feature',
|
|
93
|
+
'specifications',
|
|
94
|
+
'capabilities',
|
|
95
|
+
'functions'
|
|
96
|
+
],
|
|
97
|
+
'keywordSeeds': [
|
|
98
|
+
'running shoes with arch support',
|
|
99
|
+
'CRM with email automation'
|
|
100
|
+
],
|
|
101
|
+
'intent': 'Commercial / Research'
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
'name': 'Comparisons',
|
|
105
|
+
'description': 'Directly comparing brands, products, or categories.',
|
|
106
|
+
'keywordPatterns': ['vs', 'comparison', 'alternatives', 'best of'],
|
|
107
|
+
'keywordSeeds': ['Nike vs Adidas', 'HubSpot vs Salesforce'],
|
|
108
|
+
'intent': 'Commercial / Research'
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
'name': 'Suitability & Use Cases',
|
|
112
|
+
'description': 'Evaluating how well a solution fits specific needs or contexts.',
|
|
113
|
+
'keywordPatterns': ['best for', 'ideal for', 'use case', 'fit for'],
|
|
114
|
+
'keywordSeeds': ['best shoes for marathon training', 'CRM for freelancers'],
|
|
115
|
+
'intent': 'Commercial / Research'
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
'name': 'Social Proof & Reviews',
|
|
119
|
+
'description': 'Looking for recommendations, opinions, ratings, testimonials. Often includes temporal modifiers like "2024".',
|
|
120
|
+
'keywordPatterns': [
|
|
121
|
+
'review',
|
|
122
|
+
'rating',
|
|
123
|
+
'top-rated',
|
|
124
|
+
'best',
|
|
125
|
+
'customer feedback'
|
|
126
|
+
],
|
|
127
|
+
'keywordSeeds': ['best CRM software', 'best rated running shoes 2025', 'HubSpot reviews'],
|
|
128
|
+
'intent': 'Commercial / Research'
|
|
129
|
+
}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
'stage': 'Decision / Evaluation',
|
|
134
|
+
'goal': 'Prospect is close to acting but still evaluating options.',
|
|
135
|
+
'categories': [
|
|
136
|
+
{
|
|
137
|
+
'name': 'Pricing & Packages',
|
|
138
|
+
'description': 'Researching cost, plans, discounts, promotions.',
|
|
139
|
+
'keywordPatterns': [
|
|
140
|
+
'price',
|
|
141
|
+
'pricing',
|
|
142
|
+
'cost',
|
|
143
|
+
'plan',
|
|
144
|
+
'tier',
|
|
145
|
+
'discount'
|
|
146
|
+
],
|
|
147
|
+
'keywordSeeds': ['Nike Pegasus price', 'HubSpot CRM pricing tiers'],
|
|
148
|
+
'intent': 'Commercial / Research'
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
'name': 'Availability & Location',
|
|
152
|
+
'description': 'Where or how to obtain the product/service.',
|
|
153
|
+
'keywordPatterns': [
|
|
154
|
+
'buy near me',
|
|
155
|
+
'availability',
|
|
156
|
+
'store',
|
|
157
|
+
'online purchase'
|
|
158
|
+
],
|
|
159
|
+
'keywordSeeds': ['buy running shoes near me', 'best CRM free trial'],
|
|
160
|
+
'intent': 'Commercial / Research'
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
'name': 'Intent-to-Act Signals',
|
|
164
|
+
'description': 'Keywords showing strong intent to act soon but still evaluating options.',
|
|
165
|
+
'keywordPatterns': [
|
|
166
|
+
'sign up trial',
|
|
167
|
+
'get started demo',
|
|
168
|
+
'order sample',
|
|
169
|
+
'try now'
|
|
170
|
+
],
|
|
171
|
+
'keywordSeeds': ['sign up for HubSpot demo', 'get started with CRM trial'],
|
|
172
|
+
'intent': 'Commercial / Research'
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
'stage': 'Conversion / Action',
|
|
178
|
+
'goal': 'Prospect decides to purchase or take desired action (checkout, demo, signup).',
|
|
179
|
+
'categories': [
|
|
180
|
+
{
|
|
181
|
+
'name': 'Purchase / Signup',
|
|
182
|
+
'description': 'Final action: completing a purchase, signing up, or starting a trial.',
|
|
183
|
+
'keywordPatterns': ['buy', 'checkout', 'signup', 'register', 'demo'],
|
|
184
|
+
'keywordSeeds': ['buy Nike Pegasus online', 'HubSpot CRM demo signup'],
|
|
185
|
+
'intent': 'Transactional'
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
'name': 'Immediate Offers & Promotions',
|
|
189
|
+
'description': 'Using discounts, coupon codes, or limited-time deals to convert.',
|
|
190
|
+
'keywordPatterns': [
|
|
191
|
+
'discount',
|
|
192
|
+
'promo code',
|
|
193
|
+
'deal',
|
|
194
|
+
'offer',
|
|
195
|
+
'coupon'
|
|
196
|
+
],
|
|
197
|
+
'keywordSeeds': ['Nike Pegasus 20% off', 'HubSpot CRM free trial code'],
|
|
198
|
+
'intent': 'Transactional'
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
'stage': 'Post-Purchase / Retention & Advocacy',
|
|
204
|
+
'goal': 'Support existing customers, encourage loyalty or advocacy.',
|
|
205
|
+
'categories': [
|
|
206
|
+
{
|
|
207
|
+
'name': 'Usage & How-To',
|
|
208
|
+
'description': 'Guides, tutorials, setup instructions.',
|
|
209
|
+
'keywordPatterns': [
|
|
210
|
+
'how to',
|
|
211
|
+
'tutorial',
|
|
212
|
+
'setup',
|
|
213
|
+
'guide',
|
|
214
|
+
'instructions'
|
|
215
|
+
],
|
|
216
|
+
'keywordSeeds': ['how to break in running shoes', 'HubSpot CRM tutorial'],
|
|
217
|
+
'intent': 'Retention / Post-Purchase'
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
'name': 'Troubleshooting & Support',
|
|
221
|
+
'description': 'Fixing problems, maintenance, FAQs.',
|
|
222
|
+
'keywordPatterns': ['help', 'troubleshoot', 'issue', 'problem', 'FAQ'],
|
|
223
|
+
'keywordSeeds': ['Nike Pegasus sizing issues', 'HubSpot login help'],
|
|
224
|
+
'intent': 'Retention / Post-Purchase'
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
'name': 'Upgrades & Add-ons',
|
|
228
|
+
'description': 'Expanding or enhancing existing purchase.',
|
|
229
|
+
'keywordPatterns': [
|
|
230
|
+
'upgrade',
|
|
231
|
+
'add-on',
|
|
232
|
+
'extension',
|
|
233
|
+
'premium features'
|
|
234
|
+
],
|
|
235
|
+
'keywordSeeds': [
|
|
236
|
+
'best insoles for running shoes',
|
|
237
|
+
'HubSpot premium features'
|
|
238
|
+
],
|
|
239
|
+
'intent': 'Retention / Post-Purchase'
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
'name': 'Community & Advocacy',
|
|
243
|
+
'description': 'Engagement, referrals, sharing experiences.',
|
|
244
|
+
'keywordPatterns': [
|
|
245
|
+
'forum',
|
|
246
|
+
'community',
|
|
247
|
+
'refer',
|
|
248
|
+
'share',
|
|
249
|
+
'testimonial'
|
|
250
|
+
],
|
|
251
|
+
'keywordSeeds': [
|
|
252
|
+
'running shoe user forum',
|
|
253
|
+
'refer a friend HubSpot discount'
|
|
254
|
+
],
|
|
255
|
+
'intent': 'Retention / Post-Purchase'
|
|
256
|
+
}
|
|
257
|
+
]
|
|
258
|
+
}
|
|
259
|
+
];
|
|
260
|
+
const CUSTOMIZE_PROMPT = (0, utils_js_1.dedent)(`
|
|
261
|
+
Adapt this marketing funnel for sector '{sector}', market '{market}', language '{language}'.
|
|
262
|
+
{briefing}
|
|
263
|
+
|
|
264
|
+
RULES:
|
|
265
|
+
1. Keep the same funnel stages (translate names if needed) - only customize categories within stages
|
|
266
|
+
2. Adjust categories to fit the sector: modify names, descriptions, or replace irrelevant ones
|
|
267
|
+
3. "keywordPatterns": Abstract types/themes (e.g., "questions", "comparisons", "pricing")
|
|
268
|
+
4. "keywordSeeds": Real Google searches users actually type - NOT forced combinations of patterns
|
|
269
|
+
- Think: What would someone naturally search at this stage?
|
|
270
|
+
- Keep broad (1-3 words) to seed Google Keyword Planner for 100s-1000s of ideas
|
|
271
|
+
- Generate 3-10 keywordSeeds per category
|
|
272
|
+
5. Patterns and keywordSeeds should align thematically but DON'T force pattern words into keywordSeeds. Focus on the category "description" to guide relevant keywordSeeds.
|
|
273
|
+
|
|
274
|
+
Example for running shoes:
|
|
275
|
+
- Category description: "Palabras clave que muestran alta intención de compra, aunque todavía evaluando la mejor opción",
|
|
276
|
+
- Keyword Patterns: ["probar", "reservar", "solicitar prueba", "más info"]
|
|
277
|
+
- GOOD keywordSeeds: ["elegir talla zapatilla", "analisis de pisada"]
|
|
278
|
+
BAD: ["probar zapatillas", "reservar zapatillas"] (unnatural search)
|
|
279
|
+
- Pattern: ["comparativas"] → KeywordSeeds: ["nike vs adidas", "mejores zapatillas 2025"]
|
|
280
|
+
|
|
281
|
+
Return the customized funnel in language {userLanguage} except keywordSeeds, that should maintain the original language.
|
|
282
|
+
|
|
283
|
+
Also provide an "explanation" field with a brief summary (2-3 sentences) explaining the reasoning behind
|
|
284
|
+
the funnel customization: how the stages and categories were adapted for this sector and market,
|
|
285
|
+
and what customer journey they represent.
|
|
286
|
+
|
|
287
|
+
{instructions}
|
|
288
|
+
|
|
289
|
+
# Generic funnel structure
|
|
290
|
+
|
|
291
|
+
{funnel}
|
|
292
|
+
`);
|
|
293
|
+
/**
|
|
294
|
+
* Customize a generic marketing funnel to a specific sector and market using an LLM.
|
|
295
|
+
*/
|
|
296
|
+
async function customizeFunnel(sector, language, userLanguage = null, country = 'global', briefing = null, instructions = null, model = 'gpt-4.1', funnel = { stages: GENERIC_FUNNEL }) {
|
|
297
|
+
const funnelData = Array.isArray(funnel) ? funnel : funnel.stages;
|
|
298
|
+
const prompt = CUSTOMIZE_PROMPT
|
|
299
|
+
.replace('{sector}', sector)
|
|
300
|
+
.replace('{briefing}', briefing || '')
|
|
301
|
+
.replace('{instructions}', instructions || '')
|
|
302
|
+
.replace('{market}', country)
|
|
303
|
+
.replace('{language}', language)
|
|
304
|
+
.replace('{userLanguage}', userLanguage ?? language)
|
|
305
|
+
.replace('{funnel}', JSON.stringify(funnelData, null, 2));
|
|
306
|
+
const { parsed } = await (0, openai_js_1.askOpenAISafe)(prompt, model, funnel_schema_js_1.FunnelWithExplanationSchema);
|
|
307
|
+
if (!parsed) {
|
|
308
|
+
throw new Error('Failed to parse response from OpenAI');
|
|
309
|
+
}
|
|
310
|
+
return parsed;
|
|
311
|
+
}
|
|
312
|
+
const GENERATE_SEEDS_PROMPT = (0, utils_js_1.dedent)(`
|
|
313
|
+
Generate 3-10 Google search keywords that real users type when researching {sector} at this funnel stage.
|
|
314
|
+
|
|
315
|
+
Stage: {stage} ({goal})
|
|
316
|
+
Category: {category} - {description}
|
|
317
|
+
Intent: {intent}
|
|
318
|
+
Theme indicators: {patterns}
|
|
319
|
+
|
|
320
|
+
CRITICAL: Generate what people ACTUALLY search, NOT literal combinations of theme words.
|
|
321
|
+
|
|
322
|
+
Example for running shoes / "Señales de Intención" / themes ["probar", "reservar"]:
|
|
323
|
+
✅ GOOD: "elegir talla zapatilla", "analisis de pisada"
|
|
324
|
+
❌ BAD: "probar zapatillas", "reservar zapatillas" (unnatural, nobody searches this)
|
|
325
|
+
|
|
326
|
+
Requirements:
|
|
327
|
+
- Broad queries (1-3 words) suitable for Google Keyword Planner seed expansion
|
|
328
|
+
- Natural language people actually type in search bars
|
|
329
|
+
- Match the stage intent and category purpose
|
|
330
|
+
- Output {language} for {market} market
|
|
331
|
+
- 5-10 keywords (more is better)
|
|
332
|
+
|
|
333
|
+
What would someone in {market} naturally search when {description}?
|
|
334
|
+
`);
|
|
335
|
+
/**
|
|
336
|
+
* Generate example seed keywords for a specific funnel category using an LLM.
|
|
337
|
+
*/
|
|
338
|
+
async function generateSeedKeywords(stage, goal, category, sector, language, country = 'global', model = 'gpt-4.1') {
|
|
339
|
+
const prompt = GENERATE_SEEDS_PROMPT
|
|
340
|
+
.replace('{stage}', stage)
|
|
341
|
+
.replace('{goal}', goal)
|
|
342
|
+
.replace('{category}', category.name)
|
|
343
|
+
.replace('{description}', category.description)
|
|
344
|
+
.replace('{intent}', category.intent)
|
|
345
|
+
.replace('{patterns}', category.keywordPatterns.join(', '))
|
|
346
|
+
.replace('{sector}', sector)
|
|
347
|
+
.replace('{market}', country)
|
|
348
|
+
.replace('{language}', language);
|
|
349
|
+
const { parsed } = await (0, openai_js_1.askOpenAISafe)(prompt, model, funnel_schema_js_1.SeedsSchema);
|
|
350
|
+
if (!parsed) {
|
|
351
|
+
throw new Error('Failed to parse seed keywords from OpenAI');
|
|
352
|
+
}
|
|
353
|
+
return parsed.seeds;
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Regenerates seed keywords for all categories in a funnel concurrently,
|
|
357
|
+
* updating the keywordSeeds field in-place for each category.
|
|
358
|
+
*/
|
|
359
|
+
async function reseedFunnel(funnel, sector, language, country = 'global', model = 'gpt-4.1', maxConcurrency = 100) {
|
|
360
|
+
const categories = [];
|
|
361
|
+
for (const categoryTuple of iterateFunnelCategories(funnel)) {
|
|
362
|
+
categories.push(categoryTuple);
|
|
363
|
+
}
|
|
364
|
+
await (0, async_js_1.mapParallel)(categories, maxConcurrency, async ([stage, goal, category]) => {
|
|
365
|
+
const seeds = await generateSeedKeywords(stage, goal, category, sector, language, country, model);
|
|
366
|
+
category.keywordSeeds = seeds;
|
|
367
|
+
});
|
|
368
|
+
if (Array.isArray(funnel)) {
|
|
369
|
+
return { stages: funnel, explanation: '' };
|
|
370
|
+
}
|
|
371
|
+
return funnel;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Generate a complete customized marketing funnel with seed keywords.
|
|
375
|
+
* This is a convenience wrapper that combines customizeFunnel and reseedFunnel.
|
|
376
|
+
*/
|
|
377
|
+
async function generateFunnel({ sector, language, userLanguage, country, model, funnel, briefing, maxConcurrency, instructions }) {
|
|
378
|
+
const customized = await customizeFunnel(sector, language, userLanguage, country || 'global', briefing, instructions, model || 'gpt-4.1', funnel || { stages: GENERIC_FUNNEL });
|
|
379
|
+
const reseeded = await reseedFunnel(customized, sector, language, country || 'global', model || 'gpt-4.1', maxConcurrency ?? 100);
|
|
380
|
+
return reseeded;
|
|
381
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { KeywordsOptions } from '../schemas/keyword.schema.js';
|
|
2
|
+
import { type KeywordsResponse } from '../schemas/keyword.schema.js';
|
|
3
|
+
import { type KeywordRecord } from '../apis/googleAds/keywordPlanner.js';
|
|
4
|
+
export interface ExpandKeywordsParams {
|
|
5
|
+
seedKeywords: Array<string | Array<string>>;
|
|
6
|
+
url?: string;
|
|
7
|
+
urlAsExpandRelevanceContext?: string;
|
|
8
|
+
language?: string;
|
|
9
|
+
countryISOCode?: string | null;
|
|
10
|
+
generateIdeasFromSeeds?: boolean;
|
|
11
|
+
/** When true, adds deduplicatedKeywords column with all keywords sharing the same metrics */
|
|
12
|
+
includeDeduplicatedKeywords?: boolean;
|
|
13
|
+
/** When true, includes seedKeywords column in output records. Defaults to false. */
|
|
14
|
+
includeSeedKeywords?: boolean;
|
|
15
|
+
/** When true, generates a separate dataset with all keywords (dedup by keyword only). Defaults to false. */
|
|
16
|
+
includeAllKeywordsDataset?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function expandKeywords({ seedKeywords, url, urlAsExpandRelevanceContext, language, countryISOCode, generateIdeasFromSeeds, includeSeedKeywords }: ExpandKeywordsParams): Promise<Array<Array<KeywordRecord>>>;
|
|
19
|
+
export declare function generateKeywords({ sector, market, brand, brandDomain, language, userLanguage, model, briefing, instructions, keywords, brands, personas, funnel }: KeywordsOptions): Promise<KeywordsResponse>;
|
|
20
|
+
export * from '../schemas/keyword.schema.js';
|
|
21
|
+
//# sourceMappingURL=keywords.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../../src/src/tools/keywords.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE7F,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAE3G,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,6FAA6F;IAC7F,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4GAA4G;IAC5G,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,wBAAsB,cAAc,CAAC,EACpC,YAAY,EACZ,GAAG,EACH,2BAA2B,EAC3B,QAAe,EACf,cAAc,EACd,sBAA8B,EAC9B,mBAA2B,EAC3B,EAAE,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAsC7D;AAiGD,wBAAsB,gBAAgB,CAAC,EACtC,MAAM,EACN,MAAM,EACN,KAAK,EACL,WAAW,EACX,QAAoB,EACpB,YAAmB,EACnB,KAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,QAAe,EACf,MAAa,EACb,QAAe,EACf,MAAa,EACb,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA8D7C;AAED,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.expandKeywords = expandKeywords;
|
|
18
|
+
exports.generateKeywords = generateKeywords;
|
|
19
|
+
const async_js_1 = require("../async.js");
|
|
20
|
+
const openai_js_1 = require("../openai.js");
|
|
21
|
+
const brands_js_1 = require("./brands.js");
|
|
22
|
+
const keyword_schema_js_1 = require("../schemas/keyword.schema.js");
|
|
23
|
+
const utils_js_1 = require("../utils.js");
|
|
24
|
+
const keywordPlanner_js_1 = require("../apis/googleAds/keywordPlanner.js");
|
|
25
|
+
async function expandKeywords({ seedKeywords, url, urlAsExpandRelevanceContext, language = 'EN', countryISOCode, generateIdeasFromSeeds = false, includeSeedKeywords = false }) {
|
|
26
|
+
url = url?.trim();
|
|
27
|
+
language = language?.trim();
|
|
28
|
+
countryISOCode = countryISOCode?.trim();
|
|
29
|
+
const expandedKeywords = [];
|
|
30
|
+
const keywordIdeasPromise = (0, async_js_1.mapParallel)(seedKeywords, 2, async (keyword) => {
|
|
31
|
+
const keywordData = await (0, keywordPlanner_js_1.keywords)({
|
|
32
|
+
keywords: Array.isArray(keyword) ? keyword : [keyword],
|
|
33
|
+
ideas: generateIdeasFromSeeds, // Configurable: get data for seed keywords OR generate ideas
|
|
34
|
+
language,
|
|
35
|
+
countryISOCode,
|
|
36
|
+
url: generateIdeasFromSeeds != null ? urlAsExpandRelevanceContext : undefined,
|
|
37
|
+
includeSeedKeywords
|
|
38
|
+
});
|
|
39
|
+
expandedKeywords.push(keywordData);
|
|
40
|
+
});
|
|
41
|
+
const urlIdeasPromise = url
|
|
42
|
+
? (0, keywordPlanner_js_1.keywords)({
|
|
43
|
+
url,
|
|
44
|
+
wholeSite: true,
|
|
45
|
+
ideas: true, // Generate keyword ideas from URL
|
|
46
|
+
maxIdeas: 10000,
|
|
47
|
+
language,
|
|
48
|
+
countryISOCode,
|
|
49
|
+
includeSeedKeywords
|
|
50
|
+
}).then(ideas => expandedKeywords.push(ideas))
|
|
51
|
+
: Promise.resolve([]);
|
|
52
|
+
await Promise.all([keywordIdeasPromise, urlIdeasPromise]);
|
|
53
|
+
return expandedKeywords;
|
|
54
|
+
}
|
|
55
|
+
const GENERATE_KEYWORDS_PROMPT = (0, utils_js_1.dedent)(`
|
|
56
|
+
You're a keyword research expert helping a brand in the {sector} sector targeting the {market} market.
|
|
57
|
+
|
|
58
|
+
For context, the brand being analyzed is{brand_context}. Use this brand as context to better understand
|
|
59
|
+
the specific niche, positioning, and target audience within the {sector} sector.
|
|
60
|
+
|
|
61
|
+
{brandsInfo}
|
|
62
|
+
|
|
63
|
+
{personasInfo}
|
|
64
|
+
|
|
65
|
+
{funnelInfo}
|
|
66
|
+
|
|
67
|
+
# Your Task
|
|
68
|
+
|
|
69
|
+
You must follow the user's instructions below. The instructions will tell you EXACTLY what to do with keywords.
|
|
70
|
+
|
|
71
|
+
**CRITICAL**: Only generate new keywords if the instructions EXPLICITLY ask you to generate, add, create,
|
|
72
|
+
or suggest keywords. If the instructions ask for something else (like analysis, filtering, removing, or
|
|
73
|
+
any other operation), do NOT generate new keywords - instead, perform only what is requested.
|
|
74
|
+
|
|
75
|
+
If you are asked to generate keywords, they should be:
|
|
76
|
+
- Broad enough (1-3 words typically) for Google Keyword Planner seed expansion
|
|
77
|
+
- Natural search queries that real users would type
|
|
78
|
+
- Mix of informational and transactional intent
|
|
79
|
+
- Focused on the sector and market context
|
|
80
|
+
- Consider the customer personas and their search behaviors if provided
|
|
81
|
+
- Cover different funnel stages if funnel information is provided
|
|
82
|
+
- Do NOT include brand names{brand_exclusion}
|
|
83
|
+
|
|
84
|
+
IMPORTANT: Any "keywordSeeds" fields you see in the brands, personas, or funnel data above are for REFERENCE ONLY
|
|
85
|
+
to help you understand the context - they are managed separately and you should NOT include them in your output.
|
|
86
|
+
|
|
87
|
+
Return keywords as a list of strings in language {language}.
|
|
88
|
+
|
|
89
|
+
Make sure your answer is in the language "{userLanguage}" except the keywords themselves, which should
|
|
90
|
+
maintain the original language {language}.
|
|
91
|
+
|
|
92
|
+
Also provide an "explanation" field with a brief summary (2-3 sentences) explaining what you did
|
|
93
|
+
based on the instructions.
|
|
94
|
+
|
|
95
|
+
# User Instructions
|
|
96
|
+
|
|
97
|
+
{instructions}
|
|
98
|
+
|
|
99
|
+
{currentKeywordsInfo}
|
|
100
|
+
`);
|
|
101
|
+
const CURRENT_KEYWORDS_CLAUSE = (0, utils_js_1.dedent)(`
|
|
102
|
+
# Current Custom Keywords
|
|
103
|
+
|
|
104
|
+
The following is the current list of custom keywords the user has.
|
|
105
|
+
|
|
106
|
+
{currentData}
|
|
107
|
+
|
|
108
|
+
**CRITICAL**: Unless the instructions EXPLICITLY ask you to generate, add, create, or suggest NEW keywords,
|
|
109
|
+
you MUST return EXACTLY the same keywords that are in the current data (possibly modified per instructions
|
|
110
|
+
like filtering or removing). Do NOT automatically generate new keywords - only do so if explicitly requested.
|
|
111
|
+
`);
|
|
112
|
+
const BRANDS_CLAUSE = (0, utils_js_1.dedent)(`
|
|
113
|
+
# Brands Information (Reference Only)
|
|
114
|
+
|
|
115
|
+
The following brands (including competitors) are relevant to this analysis:
|
|
116
|
+
|
|
117
|
+
{brandsData}
|
|
118
|
+
|
|
119
|
+
Use this information to understand the competitive landscape and generate custom keywords that could help
|
|
120
|
+
the brand compete effectively. Consider the products, services, and market positions of these brands.
|
|
121
|
+
NOTE: Any "keywordSeeds" in the portfolio items are for reference only - do not include them directly in your output.
|
|
122
|
+
`);
|
|
123
|
+
const PERSONAS_CLAUSE = (0, utils_js_1.dedent)(`
|
|
124
|
+
# Customer Personas (Reference Only)
|
|
125
|
+
|
|
126
|
+
The following customer personas represent the target audience:
|
|
127
|
+
|
|
128
|
+
{personasData}
|
|
129
|
+
|
|
130
|
+
Generate custom keywords that these personas would naturally search for based on their characteristics,
|
|
131
|
+
needs, and behaviors. Consider their language, expertise level, and search intent.
|
|
132
|
+
NOTE: Any "keywordSeeds" in the personas are for reference only - do not include them directly in your output.
|
|
133
|
+
`);
|
|
134
|
+
const FUNNEL_CLAUSE = (0, utils_js_1.dedent)(`
|
|
135
|
+
# Marketing Funnel (Reference Only)
|
|
136
|
+
|
|
137
|
+
The following marketing funnel defines the customer journey stages:
|
|
138
|
+
|
|
139
|
+
{funnelData}
|
|
140
|
+
|
|
141
|
+
Generate custom keywords that cover different stages of this funnel, from awareness to conversion.
|
|
142
|
+
Consider the goals and categories at each stage to ensure comprehensive keyword coverage.
|
|
143
|
+
NOTE: Any "keywordSeeds" in the funnel categories are for reference only - do not include them directly in your output.
|
|
144
|
+
`);
|
|
145
|
+
async function generateKeywords({ sector, market, brand, brandDomain, language = 'english', userLanguage = null, model = 'gpt-4.1', briefing, instructions, keywords = null, brands = null, personas = null, funnel = null }) {
|
|
146
|
+
if (!brand && !brandDomain) {
|
|
147
|
+
throw new Error('Either brand or brandDomain must be provided');
|
|
148
|
+
}
|
|
149
|
+
const brandContext = (0, brands_js_1.buildBrandContext)({
|
|
150
|
+
brand,
|
|
151
|
+
brandDomain,
|
|
152
|
+
sector,
|
|
153
|
+
market,
|
|
154
|
+
briefing
|
|
155
|
+
});
|
|
156
|
+
let brandExclusion;
|
|
157
|
+
if (brandDomain) {
|
|
158
|
+
if (brand) {
|
|
159
|
+
brandExclusion = ` "${brand}" or the domain`;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
brandExclusion = ' or domain';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
brandExclusion = ` "${brand}"`;
|
|
167
|
+
}
|
|
168
|
+
const currentData = keywords && keywords.length > 0 ? CURRENT_KEYWORDS_CLAUSE.replace('{currentData}', JSON.stringify({ keywords }, null, 2)) : null;
|
|
169
|
+
const brandsInfo = brands && brands.length > 0 ? BRANDS_CLAUSE.replace('{brandsData}', JSON.stringify(brands, null, 2)) : null;
|
|
170
|
+
const personasInfo = personas && personas.length > 0 ? PERSONAS_CLAUSE.replace('{personasData}', JSON.stringify(personas, null, 2)) : null;
|
|
171
|
+
const funnelInfo = funnel != null ? FUNNEL_CLAUSE.replace('{funnelData}', JSON.stringify(funnel, null, 2)) : null;
|
|
172
|
+
const content = GENERATE_KEYWORDS_PROMPT
|
|
173
|
+
.replaceAll('{sector}', sector)
|
|
174
|
+
.replaceAll('{market}', market)
|
|
175
|
+
.replaceAll('{brand_context}', brandContext)
|
|
176
|
+
.replaceAll('{brand_exclusion}', brandExclusion)
|
|
177
|
+
.replaceAll('{language}', language)
|
|
178
|
+
.replaceAll('{userLanguage}', userLanguage ?? language)
|
|
179
|
+
.replaceAll('{instructions}', instructions || '')
|
|
180
|
+
.replaceAll('{currentKeywordsInfo}', currentData || '')
|
|
181
|
+
.replaceAll('{brandsInfo}', brandsInfo || '')
|
|
182
|
+
.replaceAll('{personasInfo}', personasInfo || '')
|
|
183
|
+
.replaceAll('{funnelInfo}', funnelInfo || '');
|
|
184
|
+
const { parsed } = await (0, openai_js_1.askOpenAISafe)(content, model, keyword_schema_js_1.KeywordsResponseSchema);
|
|
185
|
+
if (!parsed) {
|
|
186
|
+
throw new Error('Failed to parse response from OpenAI');
|
|
187
|
+
}
|
|
188
|
+
return parsed;
|
|
189
|
+
}
|
|
190
|
+
__exportStar(require("../schemas/keyword.schema.js"), exports);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { PersonasOptions, PersonasResponse } from '../schemas/persona.schema.js';
|
|
2
|
+
export declare function generatePersonas({ sector, market, brand, brandDomain, language, userLanguage, count, model, briefing, instructions, personas }: PersonasOptions): Promise<PersonasResponse>;
|
|
3
|
+
//# sourceMappingURL=personas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../../../src/src/tools/personas.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAkDtF,wBAAsB,gBAAgB,CAAC,EACtC,MAAM,EACN,MAAM,EACN,KAAK,EACL,WAAW,EACX,QAAoB,EACpB,YAAmB,EACnB,KAAS,EACT,KAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,QAAe,EACf,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4C7C"}
|