@canonry/canonry 7.65.0 → 7.66.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/assets/agent-workspace/skills/aero/references/seo-analysis.md +15 -1
- package/assets/agent-workspace/skills/canonry/references/canonry-cli.md +1 -1
- package/assets/assets/{AgentSetupPage-DPHRo4OR.js → AgentSetupPage-DXFxOJ1W.js} +1 -1
- package/assets/assets/{AuditHistoryPanel-qhIB8KRK.js → AuditHistoryPanel-CS8UfTHc.js} +1 -1
- package/assets/assets/{BacklinksPage-iWrZ0-Pp.js → BacklinksPage-D5IA2tNY.js} +1 -1
- package/assets/assets/{HistoryPage-BP1_GGlT.js → HistoryPage-DsQAUkgR.js} +1 -1
- package/assets/assets/MeasurementPropertyPage-CdCnjCaS.js +4 -0
- package/assets/assets/ProjectPage-D3oFKnBG.js +9 -0
- package/assets/assets/{RunsPage-Cc98Px3T.js → RunsPage-BgjN1N3t.js} +1 -1
- package/assets/assets/{SettingsPage-CMyCE-H2.js → SettingsPage-BQuqnEvm.js} +1 -1
- package/assets/assets/SiteHealthSection-C6QE9xNk.js +2 -0
- package/assets/assets/ToneBadge-DNva5_AM.js +60 -0
- package/assets/assets/{TrafficPage-DAef3d2A.js → TrafficPage-BBqpvwl5.js} +2 -2
- package/assets/assets/{TrafficSourceDetailPage-CdoL5Dt9.js → TrafficSourceDetailPage-uxd0ojry.js} +1 -1
- package/assets/assets/{account-context-CWRd3KeS.js → account-context-wRthfm6K.js} +1 -1
- package/assets/assets/{card-Cb_fM36G.js → card-Bq64-UB5.js} +1 -1
- package/assets/assets/{extract-error-message-DSIAoHTR.js → extract-error-message-BRDc8As2.js} +1 -1
- package/assets/assets/{format-helpers-CxNDa1oa.js → format-helpers-D5wFtgg2.js} +1 -1
- package/assets/assets/{index-Da8t1_vu.css → index-C6U4u18w.css} +1 -1
- package/assets/assets/index-Ttz5_bL3.js +60 -0
- package/assets/assets/{query-client-DLdAMlsX.js → query-client-IopmAOx0.js} +1 -1
- package/assets/assets/react-query-CISHjSch.js +1 -0
- package/assets/assets/{react-sigma_core.esm.min-DgK5sRqv.js → react-sigma_core.esm.min-d72rX0Uo.js} +1 -1
- package/assets/assets/{service-Dv9FDyFY.js → service-DsDxSQuN.js} +1 -1
- package/assets/index.html +8 -8
- package/dist/{ads-D4WQOT5K.js → ads-IFKZU7SC.js} +3 -3
- package/dist/{agent-E3IYC7OJ.js → agent-3KMENHL3.js} +7 -7
- package/dist/{agent-ask-ZSKRPB2Z.js → agent-ask-7WVQLLD5.js} +3 -3
- package/dist/{agent-conversations-YHPYPQE2.js → agent-conversations-5LR67TBD.js} +3 -3
- package/dist/{agent-memory-6OWOOD5O.js → agent-memory-GKUCCKVX.js} +3 -3
- package/dist/{agent-providers-7KZK37UO.js → agent-providers-TVCRM3YZ.js} +3 -3
- package/dist/{agent-transcript-3O7GPML6.js → agent-transcript-MUTCOOWG.js} +3 -3
- package/dist/{analytics-P2LLIUYK.js → analytics-2IXSG5ML.js} +3 -3
- package/dist/{apply-VBNNJOCT.js → apply-7RIYK4VC.js} +3 -3
- package/dist/{backfill-F5SSURCH.js → backfill-VU3FV6DQ.js} +9 -9
- package/dist/{backlinks-4RE3TNNA.js → backlinks-DLSRYEX2.js} +3 -3
- package/dist/{bing-V6UN7D44.js → bing-4CXTZUH4.js} +3 -3
- package/dist/{bootstrap-SHTSPAI5.js → bootstrap-OOHSBSDQ.js} +10 -10
- package/dist/{cdp-GDL2VFI3.js → cdp-Y53SRSRV.js} +7 -7
- package/dist/{chunk-ZWZOQNLD.js → chunk-2YBEI6LE.js} +1 -1
- package/dist/{chunk-SL3Y7IOX.js → chunk-6ASEI24F.js} +1 -1
- package/dist/{chunk-HI2HCYLB.js → chunk-743NYXIK.js} +2 -2
- package/dist/{chunk-BV6NXSAH.js → chunk-ALQEGGYM.js} +21 -3
- package/dist/{chunk-GQXSZE2Z.js → chunk-AVQQRTMD.js} +146 -39
- package/dist/{chunk-Q2WZAD5W.js → chunk-BCRRAH5C.js} +1 -1
- package/dist/{chunk-ZPRJCSSR.js → chunk-CKTA5374.js} +1 -1
- package/dist/{chunk-GZPGDAAF.js → chunk-DE2UI37M.js} +2 -2
- package/dist/{chunk-2Y7RN5HG.js → chunk-DH5QRKFW.js} +3 -3
- package/dist/{chunk-CRKOGLKJ.js → chunk-DVYS2RMM.js} +4 -4
- package/dist/{chunk-F7NZEUXP.js → chunk-EIMXB6UH.js} +14 -2
- package/dist/{chunk-C2PYKUD3.js → chunk-EYWC24VC.js} +1 -1
- package/dist/{chunk-2AROR73F.js → chunk-FG7KMVA6.js} +5 -5
- package/dist/{chunk-QNRMYDK6.js → chunk-FNI3QSVD.js} +1 -1
- package/dist/{chunk-H6HIJAIU.js → chunk-H37CDAZX.js} +2 -2
- package/dist/{chunk-XMKXXWMO.js → chunk-IHOVPHUW.js} +2 -2
- package/dist/{chunk-M3OZL6PQ.js → chunk-IPF2S5G2.js} +4 -4
- package/dist/{chunk-3QKKHU7D.js → chunk-J5YZXRD5.js} +8 -8
- package/dist/{chunk-XOMUSIM7.js → chunk-JALKQREN.js} +1 -1
- package/dist/{chunk-Z2EENWM3.js → chunk-JYOMHNRP.js} +182 -20
- package/dist/{chunk-66DPEVLJ.js → chunk-K2HDTMRI.js} +3 -3
- package/dist/{chunk-O3INLME6.js → chunk-L7DQYID4.js} +4 -4
- package/dist/{chunk-HO5W6QC7.js → chunk-LBRG6RKI.js} +2 -1
- package/dist/{chunk-HPUZMBS6.js → chunk-OSF27DCY.js} +2 -2
- package/dist/{chunk-737TOG2F.js → chunk-PFKBQTYD.js} +1 -1
- package/dist/{chunk-S4VCXCRQ.js → chunk-QRBZBJ4U.js} +1 -1
- package/dist/{chunk-X4AHYJCE.js → chunk-SGZWOUIZ.js} +5 -5
- package/dist/{chunk-AE6HJZBU.js → chunk-TJZLICMB.js} +3 -3
- package/dist/{chunk-GM5ZOWBK.js → chunk-VGUZPC3I.js} +4 -4
- package/dist/{chunk-DQVJB6CZ.js → chunk-WNCOBSPN.js} +82 -8
- package/dist/{chunk-LTX3TJ3E.js → chunk-XC44Q5XR.js} +1 -1
- package/dist/{chunk-IYB3EGSD.js → chunk-YJYLFIVT.js} +1 -1
- package/dist/{chunk-IJKKK7F4.js → chunk-YRX5UOM3.js} +1 -1
- package/dist/{chunk-6FN2OQKL.js → chunk-ZRSNMEB3.js} +364 -336
- package/dist/{citations-GO4SPZYS.js → citations-ZTQIYYDB.js} +3 -3
- package/dist/{cli-catalog-6XYQY3PI.js → cli-catalog-IZJXAHFQ.js} +3 -3
- package/dist/{cli-commands-AMURHC27.js → cli-commands-XYM2VMAK.js} +7 -7
- package/dist/cli.js +13 -13
- package/dist/{competitor-JBTKRJ6Y.js → competitor-SIXAPHOM.js} +3 -3
- package/dist/{content-LKXXQ7X4.js → content-XPS3D3Y6.js} +3 -3
- package/dist/{dashboard-LUA7UX6B.js → dashboard-FMJDM5PA.js} +6 -6
- package/dist/{demo-I7JDZJUW.js → demo-QQKSHTPO.js} +1 -1
- package/dist/{demo-server-GNGGWERV.js → demo-server-LQ3QXUAS.js} +71 -11
- package/dist/{discover-TODAYYJ2.js → discover-K5HFEU2T.js} +3 -3
- package/dist/{discover-eval-FWQESEYB.js → discover-eval-6536Z2YN.js} +3 -3
- package/dist/{doctor-AXNJT2UC.js → doctor-STNH3PHH.js} +3 -3
- package/dist/{evidence-2XGEY4ZC.js → evidence-W2EWKBAV.js} +3 -3
- package/dist/{export-cmd-7RMYBIBZ.js → export-cmd-EGHMY3M6.js} +3 -3
- package/dist/{ga-HZDIZGCO.js → ga-DVIG3PVW.js} +3 -3
- package/dist/{gbp-SMRBWJEL.js → gbp-SNS4XZBO.js} +3 -3
- package/dist/{google-2CN345XS.js → google-KGPHZG6E.js} +4 -4
- package/dist/{google-marketing-W7T2VTVW.js → google-marketing-VZR6W3L6.js} +1 -1
- package/dist/{health-cmd-W7OWZ4ZI.js → health-cmd-2KWO2GOM.js} +3 -3
- package/dist/{history-UVNCBHTE.js → history-ZY27B7JE.js} +3 -3
- package/dist/index.d.ts +236 -161
- package/dist/index.js +24 -24
- package/dist/{init-MDGOTK2L.js → init-5TXIKII2.js} +11 -11
- package/dist/{insights-PQ52G5LU.js → insights-MUYEOSOG.js} +3 -3
- package/dist/intelligence-service-U4NSGZUH.js +15 -0
- package/dist/{journeys-3PP5GYVJ.js → journeys-YO54IRVC.js} +3 -3
- package/dist/{keys-CWZUX7IQ.js → keys-M4QZGYVJ.js} +3 -3
- package/dist/{keyword-5OMMULLY.js → keyword-MU62MGWT.js} +3 -3
- package/dist/{logs-3FTE42E3.js → logs-BAQM334Q.js} +3 -3
- package/dist/{mcp-FK5DTI7I.js → mcp-LYS5P3PB.js} +2 -2
- package/dist/mcp.js +9 -9
- package/dist/{measurement-plan-ICO2BQNT.js → measurement-plan-HVSTZWTW.js} +5 -5
- package/dist/{notify-ML4PYD3L.js → notify-XSP5JXU3.js} +3 -3
- package/dist/{organic-evidence-4U4H3DCR.js → organic-evidence-4HYW4PVO.js} +3 -3
- package/dist/{overview-NF427VFO.js → overview-XH72WTZT.js} +4 -4
- package/dist/{project-AAO65OF7.js → project-UKH7FTQX.js} +3 -3
- package/dist/{query-7ZOUQNF5.js → query-RRD5M4QV.js} +3 -3
- package/dist/{research-UQ7AF5N3.js → research-V2IGDUKL.js} +3 -3
- package/dist/{results-export-CZCLC4ZH.js → results-export-5FC7ZT6O.js} +3 -3
- package/dist/{run-4XJZW52R.js → run-B2A4LMWU.js} +4 -4
- package/dist/{schedule-D3E5FDBE.js → schedule-PLY6CHQT.js} +3 -3
- package/dist/{search-DYET2IL4.js → search-ACVK3WH5.js} +3 -3
- package/dist/{serve-R2CI3RWQ.js → serve-2LTQZPEK.js} +25 -25
- package/dist/{session-7CW2V5EH.js → session-IHXMPETX.js} +12 -12
- package/dist/{settings-ZISHACFX.js → settings-ZHBNX2I5.js} +3 -3
- package/dist/{skills-WU6IN3NL.js → skills-KWRTCXTF.js} +2 -2
- package/dist/{snapshot-KCKQDJ2W.js → snapshot-GBDCCV6L.js} +3 -3
- package/dist/{src-WIOU5G4V.js → src-NOTQWGYV.js} +2 -2
- package/dist/{status-CYZFVMYA.js → status-FGDDGBMJ.js} +4 -4
- package/dist/{technical-aeo-P5CS22AR.js → technical-aeo-AK4QI63Q.js} +3 -3
- package/dist/{telemetry-LPK5F2WU.js → telemetry-6QPWYMCR.js} +4 -4
- package/dist/{tools-E3B2GZ6Q.js → tools-PBNTVVN7.js} +11 -11
- package/dist/{traffic-5KZYXXIQ.js → traffic-AS4PIOQL.js} +5 -5
- package/dist/{users-2F346HIW.js → users-BNYKF35J.js} +3 -3
- package/dist/{visibility-stats-ITA6DNF3.js → visibility-stats-TWL3GJMD.js} +3 -3
- package/dist/{wordpress-ZHCFT6V3.js → wordpress-XBWXAACD.js} +3 -3
- package/package.json +1 -1
- package/assets/assets/MeasurementPropertyPage-DfPHZNGo.js +0 -4
- package/assets/assets/ProjectPage-D4n2oqPP.js +0 -9
- package/assets/assets/SiteHealthSection-CGKKUtqQ.js +0 -2
- package/assets/assets/ToneBadge-CJ6ObMRe.js +0 -60
- package/assets/assets/index-DEXKV7TW.js +0 -60
- package/assets/assets/react-query-BktZZtSC.js +0 -1
- package/dist/intelligence-service-IAUGKMDO.js +0 -15
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
createApiClient,
|
|
8
8
|
runWithUsageTags
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EIMXB6UH.js";
|
|
10
10
|
import {
|
|
11
11
|
canonryMcpTools,
|
|
12
12
|
mcpOutputSchema,
|
|
13
13
|
toolOperationAccess
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ALQEGGYM.js";
|
|
15
15
|
import {
|
|
16
16
|
PACKAGE_VERSION
|
|
17
17
|
} from "./chunk-AOJU5LKX.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
isReadOnlyKey,
|
|
25
25
|
restrictedWriteScopes,
|
|
26
26
|
upgradeCaveatFor
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-WNCOBSPN.js";
|
|
28
28
|
|
|
29
29
|
// src/mcp/server.ts
|
|
30
30
|
import { randomUUID } from "crypto";
|
|
@@ -258,7 +258,7 @@ var OPERATIONS_GUIDE = {
|
|
|
258
258
|
"canonry_seo_sync",
|
|
259
259
|
"canonry_seo_run_cancel"
|
|
260
260
|
],
|
|
261
|
-
"guidance": "Read saved SEO evidence first. Preserve profile, exact domain or host, market, language, plan revision, dataset and collection date. SEO traffic and keyword metrics are third-party estimates, separate from Search Console observations and AI citation and mention coverage. Refresh requires explicit approval for the profile and work, a fresh refresh intent and an idempotency key. Hosted financial controls are internal; no credential or billing information belongs in the response."
|
|
261
|
+
"guidance": "Read saved SEO evidence first. Preserve profile, exact domain or host, market, language, plan revision, dataset and collection date. Market rankings (canonry_seo_market_rankings) are the site's Google position for its tracked queries by market, the same queries AI visibility measures. SEO traffic and keyword metrics are third-party estimates, separate from Search Console observations and AI citation and mention coverage. Refresh requires explicit approval for the profile and work, a fresh refresh intent and an idempotency key. Hosted financial controls are internal; no credential or billing information belongs in the response."
|
|
262
262
|
},
|
|
263
263
|
"operations": {
|
|
264
264
|
"keywords": [
|
|
@@ -13365,6 +13365,7 @@ var STORED_READ_OPERATIONS = /* @__PURE__ */ new Set([
|
|
|
13365
13365
|
"GET /api/v1/projects/{name}/seo/keyword-metrics",
|
|
13366
13366
|
"GET /api/v1/projects/{name}/seo/domain-intelligence",
|
|
13367
13367
|
"GET /api/v1/projects/{name}/seo/ranked-keywords",
|
|
13368
|
+
"GET /api/v1/projects/{name}/seo/market-rankings",
|
|
13368
13369
|
"GET /api/v1/projects/{name}/gbp/local-post-attempt",
|
|
13369
13370
|
"GET /api/v1/openapi.json",
|
|
13370
13371
|
"GET /api/v1/screenshots/{snapshotId}",
|
|
@@ -21214,7 +21215,7 @@ function uncheckedSourcesLabel(value) {
|
|
|
21214
21215
|
|
|
21215
21216
|
// ../contracts/src/seo.ts
|
|
21216
21217
|
import { z as z66 } from "zod";
|
|
21217
|
-
var seoCapabilitySchema = z66.enum(["keyword-metrics", "domain-intelligence", "ranked-keywords"]);
|
|
21218
|
+
var seoCapabilitySchema = z66.enum(["keyword-metrics", "domain-intelligence", "ranked-keywords", "market-rankings"]);
|
|
21218
21219
|
var SeoCapabilities = seoCapabilitySchema.enum;
|
|
21219
21220
|
var seoProviderSchema = z66.enum(["dataforseo"]);
|
|
21220
21221
|
var SeoProviders = seoProviderSchema.enum;
|
|
@@ -21240,16 +21241,36 @@ var seoScopeSelectionSchema = z66.object({
|
|
|
21240
21241
|
key: z66.string().min(1).max(200).optional(),
|
|
21241
21242
|
expectedPlanRevision: z66.number().int().nonnegative().optional()
|
|
21242
21243
|
}).strict();
|
|
21244
|
+
var seoDeviceSchema = z66.enum(["desktop", "mobile"]);
|
|
21245
|
+
var SeoDevices = seoDeviceSchema.enum;
|
|
21246
|
+
var seoSearchTextSchema = z66.enum(["query", "query-without-market-region"]);
|
|
21247
|
+
var SeoSearchTexts = seoSearchTextSchema.enum;
|
|
21248
|
+
var seoMarketLocationSchema = z66.object({
|
|
21249
|
+
key: z66.string().trim().min(1).max(200),
|
|
21250
|
+
locationCode: z66.number().int().positive(),
|
|
21251
|
+
/** The provider's name for the location, shown beside results. */
|
|
21252
|
+
label: z66.string().trim().min(1).max(200)
|
|
21253
|
+
}).strict();
|
|
21254
|
+
var SEO_MARKET_RANKING_MAX_SEARCHES = 1e3;
|
|
21255
|
+
var SEO_PROJECT_MARKET_KEY = "project";
|
|
21256
|
+
var seoRankingSettingsSchema = z66.object({
|
|
21257
|
+
locations: z66.array(seoMarketLocationSchema).max(500),
|
|
21258
|
+
/** How many organic results to check per search, in steps of 10. A target past this reads as not ranked. */
|
|
21259
|
+
depth: z66.number().int().min(10).max(100).multipleOf(10),
|
|
21260
|
+
device: seoDeviceSchema,
|
|
21261
|
+
searchText: seoSearchTextSchema
|
|
21262
|
+
}).strict();
|
|
21243
21263
|
var seoProfileInputSchema = z66.object({
|
|
21244
21264
|
name: z66.string().trim().min(1).max(120),
|
|
21245
21265
|
connectionId: z66.string().min(1).max(100),
|
|
21246
|
-
capabilities: z66.array(seoCapabilitySchema).min(1).max(
|
|
21266
|
+
capabilities: z66.array(seoCapabilitySchema).min(1).max(4),
|
|
21247
21267
|
targets: z66.array(seoTargetSchema).max(20),
|
|
21248
21268
|
keywords: z66.array(z66.string().trim().min(1).max(80).regex(/^\S+(?:\s+\S+){0,9}$/, "Use at most 10 words per keyword.")).max(700),
|
|
21249
21269
|
locationCode: z66.number().int().positive(),
|
|
21250
21270
|
languageCode: z66.string().min(2).max(10),
|
|
21251
21271
|
limit: z66.number().int().min(1).max(1e3),
|
|
21252
|
-
scope: seoScopeSelectionSchema
|
|
21272
|
+
scope: seoScopeSelectionSchema,
|
|
21273
|
+
rankings: seoRankingSettingsSchema.optional()
|
|
21253
21274
|
}).strict();
|
|
21254
21275
|
var seoProfileSchema = seoProfileInputSchema.extend({
|
|
21255
21276
|
id: z66.string(),
|
|
@@ -21311,7 +21332,7 @@ var seoProvenanceSchema = z66.object({
|
|
|
21311
21332
|
engine: z66.literal("google"),
|
|
21312
21333
|
locationCode: z66.number().int().positive(),
|
|
21313
21334
|
languageCode: z66.string(),
|
|
21314
|
-
device: z66.literal("unspecified"),
|
|
21335
|
+
device: z66.union([z66.literal("unspecified"), seoDeviceSchema]),
|
|
21315
21336
|
collectedAt: z66.string(),
|
|
21316
21337
|
sourceUpdatedAt: z66.string().nullable()
|
|
21317
21338
|
}).strict();
|
|
@@ -21355,13 +21376,52 @@ var seoRankedKeywordSchema = z66.object({
|
|
|
21355
21376
|
serpFeatures: z66.array(z66.string()),
|
|
21356
21377
|
provenance: seoProvenanceSchema
|
|
21357
21378
|
}).strict();
|
|
21379
|
+
var seoMarketRankingContextSchema = z66.object({
|
|
21380
|
+
marketKey: z66.string(),
|
|
21381
|
+
marketLabel: z66.string(),
|
|
21382
|
+
/** The market's top-level group (a metro, say), or null when it has none. */
|
|
21383
|
+
regionKey: z66.string().nullable(),
|
|
21384
|
+
regionLabel: z66.string().nullable(),
|
|
21385
|
+
queryId: z66.string().nullable(),
|
|
21386
|
+
queryText: z66.string(),
|
|
21387
|
+
queryClass: queryClassSchema
|
|
21388
|
+
}).strict();
|
|
21389
|
+
var seoMarketRankingSchema = seoMarketRankingContextSchema.extend({
|
|
21390
|
+
/** The exact text searched on Google for `queryText` (see `seoSearchTextSchema`). */
|
|
21391
|
+
searchText: z66.string(),
|
|
21392
|
+
locationLabel: z66.string(),
|
|
21393
|
+
target: seoTargetSchema,
|
|
21394
|
+
rankOrganic: z66.number().int().positive().nullable(),
|
|
21395
|
+
rankAbsolute: z66.number().int().positive().nullable(),
|
|
21396
|
+
url: z66.string().nullable(),
|
|
21397
|
+
depth: z66.number().int().positive(),
|
|
21398
|
+
/** Tracked competitors found in the same results, by their best organic position. */
|
|
21399
|
+
competitors: z66.array(z66.object({ domain: z66.string(), rankOrganic: z66.number().int().positive() }).strict()),
|
|
21400
|
+
provenance: seoProvenanceSchema
|
|
21401
|
+
}).strict();
|
|
21358
21402
|
var seoResultsSchema = z66.object({
|
|
21359
21403
|
keywordMetrics: z66.array(seoKeywordMetricsSchema),
|
|
21360
21404
|
domainIntelligence: z66.array(seoDomainIntelligenceSchema),
|
|
21361
|
-
rankedKeywords: z66.array(seoRankedKeywordSchema)
|
|
21405
|
+
rankedKeywords: z66.array(seoRankedKeywordSchema),
|
|
21406
|
+
marketRankings: z66.array(seoMarketRankingSchema)
|
|
21362
21407
|
}).strict();
|
|
21363
21408
|
function emptySeoResults() {
|
|
21364
|
-
return { keywordMetrics: [], domainIntelligence: [], rankedKeywords: [] };
|
|
21409
|
+
return { keywordMetrics: [], domainIntelligence: [], rankedKeywords: [], marketRankings: [] };
|
|
21410
|
+
}
|
|
21411
|
+
function marketRegionName(marketLabel) {
|
|
21412
|
+
const comma = marketLabel.lastIndexOf(",");
|
|
21413
|
+
if (comma < 0) return null;
|
|
21414
|
+
const region = marketLabel.slice(comma + 1).trim();
|
|
21415
|
+
return region || null;
|
|
21416
|
+
}
|
|
21417
|
+
function seoSearchTextForQuery(queryText, marketLabel, rule) {
|
|
21418
|
+
const text = queryText.replace(/\s+/g, " ").trim();
|
|
21419
|
+
if (rule === SeoSearchTexts.query || marketLabel === null) return text;
|
|
21420
|
+
const region = marketRegionName(marketLabel.replace(/\s+/g, " "));
|
|
21421
|
+
if (!region) return text;
|
|
21422
|
+
const suffix = `, ${region}`;
|
|
21423
|
+
if (text.length <= suffix.length || text.slice(-suffix.length).toLowerCase() !== suffix.toLowerCase()) return text;
|
|
21424
|
+
return text.slice(0, -suffix.length).trim();
|
|
21365
21425
|
}
|
|
21366
21426
|
var seoRunSchema = z66.object({
|
|
21367
21427
|
id: z66.string(),
|
|
@@ -21393,7 +21453,8 @@ var seoTaskSchema = z66.object({
|
|
|
21393
21453
|
var seoResultCountsSchema = z66.object({
|
|
21394
21454
|
keywordMetrics: z66.number().int().nonnegative(),
|
|
21395
21455
|
domainIntelligence: z66.number().int().nonnegative(),
|
|
21396
|
-
rankedKeywords: z66.number().int().nonnegative()
|
|
21456
|
+
rankedKeywords: z66.number().int().nonnegative(),
|
|
21457
|
+
marketRankings: z66.number().int().nonnegative()
|
|
21397
21458
|
}).strict();
|
|
21398
21459
|
var seoRunDetailSchema = seoRunSchema.extend({
|
|
21399
21460
|
tasks: z66.array(seoTaskSchema),
|
|
@@ -21417,6 +21478,11 @@ var seoPageShape = {
|
|
|
21417
21478
|
var seoKeywordMetricsListSchema = z66.object({ ...seoPageShape, items: z66.array(seoKeywordMetricsSchema) }).strict();
|
|
21418
21479
|
var seoDomainIntelligenceListSchema = z66.object({ ...seoPageShape, items: z66.array(seoDomainIntelligenceSchema) }).strict();
|
|
21419
21480
|
var seoRankedKeywordListSchema = z66.object({ ...seoPageShape, items: z66.array(seoRankedKeywordSchema) }).strict();
|
|
21481
|
+
var seoMarketRankingQuerySchema = seoEvidenceQuerySchema.extend({
|
|
21482
|
+
marketKey: z66.string().min(1).max(200).optional(),
|
|
21483
|
+
regionKey: z66.string().min(1).max(200).optional()
|
|
21484
|
+
}).strict();
|
|
21485
|
+
var seoMarketRankingListSchema = z66.object({ ...seoPageShape, items: z66.array(seoMarketRankingSchema) }).strict();
|
|
21420
21486
|
var seoOverviewSchema = z66.object({
|
|
21421
21487
|
status: seoStatusSchema,
|
|
21422
21488
|
profiles: z66.array(seoProfileSchema),
|
|
@@ -21432,7 +21498,8 @@ var seoOverviewSchema = z66.object({
|
|
|
21432
21498
|
}).strict().nullable(),
|
|
21433
21499
|
keywordMetricsCount: z66.number().int().nonnegative(),
|
|
21434
21500
|
domainIntelligenceCount: z66.number().int().nonnegative(),
|
|
21435
|
-
rankedKeywordCount: z66.number().int().nonnegative()
|
|
21501
|
+
rankedKeywordCount: z66.number().int().nonnegative(),
|
|
21502
|
+
marketRankingCount: z66.number().int().nonnegative()
|
|
21436
21503
|
}).strict();
|
|
21437
21504
|
var seoMicrosSchema = z66.number().int().min(0).max(Number.MAX_SAFE_INTEGER);
|
|
21438
21505
|
var seoOperatorTaskSchema = z66.object({
|
|
@@ -27292,6 +27359,10 @@ export {
|
|
|
27292
27359
|
SeoScopeKinds,
|
|
27293
27360
|
SeoRunStatuses,
|
|
27294
27361
|
SeoAvailability,
|
|
27362
|
+
seoDeviceSchema,
|
|
27363
|
+
SEO_MARKET_RANKING_MAX_SEARCHES,
|
|
27364
|
+
SEO_PROJECT_MARKET_KEY,
|
|
27365
|
+
seoRankingSettingsSchema,
|
|
27295
27366
|
seoProfileInputSchema,
|
|
27296
27367
|
seoProfileSchema,
|
|
27297
27368
|
seoProfileListSchema,
|
|
@@ -27301,6 +27372,7 @@ export {
|
|
|
27301
27372
|
seoQuoteSchema,
|
|
27302
27373
|
seoSyncInputSchema,
|
|
27303
27374
|
emptySeoResults,
|
|
27375
|
+
seoSearchTextForQuery,
|
|
27304
27376
|
seoRunSchema,
|
|
27305
27377
|
seoRunDetailSchema,
|
|
27306
27378
|
seoRunListSchema,
|
|
@@ -27308,6 +27380,8 @@ export {
|
|
|
27308
27380
|
seoKeywordMetricsListSchema,
|
|
27309
27381
|
seoDomainIntelligenceListSchema,
|
|
27310
27382
|
seoRankedKeywordListSchema,
|
|
27383
|
+
seoMarketRankingQuerySchema,
|
|
27384
|
+
seoMarketRankingListSchema,
|
|
27311
27385
|
seoOverviewSchema,
|
|
27312
27386
|
seoOperatorTaskSchema,
|
|
27313
27387
|
seoReconcileInputSchema,
|