@canonry/canonry 7.79.1 → 7.80.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/dist/{backfill-SRE52FDL.js → backfill-BXEYMV3Y.js} +3 -3
- package/dist/{chunk-O4WBYEGV.js → chunk-B36XUBYK.js} +80 -2
- package/dist/{chunk-DEQC5XVD.js → chunk-CJ4JDM5W.js} +29 -29
- package/dist/{chunk-QOKK5PMO.js → chunk-DKONZ36U.js} +5 -5
- package/dist/{chunk-SWWZ733W.js → chunk-ENUSVOQ5.js} +1 -1
- package/dist/{chunk-I7RTAHCL.js → chunk-JJO5XNS6.js} +1 -1
- package/dist/{chunk-27MGZQ6Z.js → chunk-MIQMUSE4.js} +1 -1
- package/dist/{chunk-ZMMS3FAR.js → chunk-QAVJ6LHN.js} +1 -1
- package/dist/{chunk-KUMHO22S.js → chunk-R3US2RG6.js} +2 -2
- package/dist/{chunk-6OCQTAXU.js → chunk-T2TIQP5O.js} +3 -3
- package/dist/{cli-commands-BZLUMYKR.js → cli-commands-XFFBO46N.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{dashboard-43ST35IW.js → dashboard-L5XCPIFW.js} +2 -2
- package/dist/{demo-COMFIESH.js → demo-HWM3OWEO.js} +1 -1
- package/dist/{demo-server-MRGL3SNP.js → demo-server-5DE5PAEC.js} +3 -3
- package/dist/index.js +6 -6
- package/dist/{init-YKLLVT7X.js → init-WXKOOS25.js} +1 -1
- package/dist/{intelligence-service-5STL6A45.js → intelligence-service-RVKSPP4X.js} +3 -3
- package/dist/{serve-VU3E7XTX.js → serve-7JITP7HH.js} +7 -7
- package/dist/{session-JKMEKQYL.js → session-PCUTTGTF.js} +4 -4
- package/dist/{tools-LGTWLH5Y.js → tools-LILIKI26.js} +3 -3
- package/dist/{traffic-2JFQKVAX.js → traffic-77CKSYM3.js} +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
backfillSnapshotAttributionCommand,
|
|
11
11
|
backfillTrafficClassificationCommand,
|
|
12
12
|
replayQueryAuditLog
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-T2TIQP5O.js";
|
|
14
14
|
import "./chunk-7S6SQFFT.js";
|
|
15
15
|
import "./chunk-3QJWOF2B.js";
|
|
16
16
|
import "./chunk-HGMYEDAQ.js";
|
|
@@ -18,8 +18,8 @@ import "./chunk-JERATA5R.js";
|
|
|
18
18
|
import {
|
|
19
19
|
backfillProjectAnswerMentions,
|
|
20
20
|
backfillProjectAnswerMentionsInChunks
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-R3US2RG6.js";
|
|
22
|
+
import "./chunk-B36XUBYK.js";
|
|
23
23
|
import "./chunk-3MGM3U6V.js";
|
|
24
24
|
import "./chunk-HRFPGXON.js";
|
|
25
25
|
import "./chunk-PM2DB3HE.js";
|
|
@@ -15133,6 +15133,61 @@ function incrementBucket(map, key, fields) {
|
|
|
15133
15133
|
else map.set(key, { fields, hits: 1 });
|
|
15134
15134
|
}
|
|
15135
15135
|
|
|
15136
|
+
// ../integration-traffic/src/unlisted-agents.ts
|
|
15137
|
+
var UNLISTED_AGENT_SKIPPED_EXTENSIONS = [
|
|
15138
|
+
"avif",
|
|
15139
|
+
"bmp",
|
|
15140
|
+
"css",
|
|
15141
|
+
"gif",
|
|
15142
|
+
"ico",
|
|
15143
|
+
"jpeg",
|
|
15144
|
+
"jpg",
|
|
15145
|
+
"js",
|
|
15146
|
+
"map",
|
|
15147
|
+
"mjs",
|
|
15148
|
+
"mp3",
|
|
15149
|
+
"mp4",
|
|
15150
|
+
"otf",
|
|
15151
|
+
"png",
|
|
15152
|
+
"svg",
|
|
15153
|
+
"ttf",
|
|
15154
|
+
"webm",
|
|
15155
|
+
"webmanifest",
|
|
15156
|
+
"webp",
|
|
15157
|
+
"woff",
|
|
15158
|
+
"woff2",
|
|
15159
|
+
"zip"
|
|
15160
|
+
];
|
|
15161
|
+
var GENERIC_HTTP_CLIENTS = [
|
|
15162
|
+
"curl",
|
|
15163
|
+
"wget",
|
|
15164
|
+
"python",
|
|
15165
|
+
"python-requests",
|
|
15166
|
+
"python-urllib",
|
|
15167
|
+
"python-httpx",
|
|
15168
|
+
"aiohttp",
|
|
15169
|
+
"httpx",
|
|
15170
|
+
"go-http-client",
|
|
15171
|
+
"okhttp",
|
|
15172
|
+
"java",
|
|
15173
|
+
"apache-httpclient",
|
|
15174
|
+
"axios",
|
|
15175
|
+
"node",
|
|
15176
|
+
"node-fetch",
|
|
15177
|
+
"undici",
|
|
15178
|
+
"got",
|
|
15179
|
+
"libwww-perl",
|
|
15180
|
+
"guzzlehttp",
|
|
15181
|
+
"ruby",
|
|
15182
|
+
"faraday",
|
|
15183
|
+
"php",
|
|
15184
|
+
"wordpress",
|
|
15185
|
+
"dalvik",
|
|
15186
|
+
"postmanruntime",
|
|
15187
|
+
"insomnia"
|
|
15188
|
+
];
|
|
15189
|
+
var BROWSER_SHAPED_AGENT_MARKERS = ["compatible;", "fetch", "agent", "headless", "+http"];
|
|
15190
|
+
|
|
15136
15191
|
// ../integration-cloudflare-worker/src/types.ts
|
|
15137
15192
|
var CLOUDFLARE_WORKER_BINDINGS = {
|
|
15138
15193
|
deliveryMode: "CANONRY_DELIVERY_MODE",
|
|
@@ -15184,7 +15239,8 @@ var DEFAULT_BOT_LIST = {
|
|
|
15184
15239
|
uaKeywords: [
|
|
15185
15240
|
...DEFAULT_AI_CRAWLER_USER_AGENT_SUBSTRINGS,
|
|
15186
15241
|
// Preserve a small forward-looking machine-traffic net. The shared
|
|
15187
|
-
// classifier still drops unknown products after delivery.
|
|
15242
|
+
// classifier still drops unknown products after delivery. Agents whose
|
|
15243
|
+
// names carry none of these words are caught by `isUnlistedAgent`.
|
|
15188
15244
|
"bot",
|
|
15189
15245
|
"crawler",
|
|
15190
15246
|
"spider"
|
|
@@ -15203,6 +15259,27 @@ var DEFAULT_BOT_SCORE_MAX_FORWARD = 30;
|
|
|
15203
15259
|
var WORKER_COMPATIBILITY_DATE = "2026-05-01";
|
|
15204
15260
|
var CLOUDFLARE_PAGE_VIEWS_VERSION_SUFFIX = "+page-views";
|
|
15205
15261
|
var PAGE_VIEW_ASSET_EXTENSIONS = ["avif", "bmp", "css", "gif", "ico", "jpeg", "jpg", "js", "map", "mjs", "mp3", "mp4", "otf", "pdf", "png", "svg", "ttf", "txt", "webm", "webmanifest", "webp", "woff", "woff2", "xml", "zip"];
|
|
15262
|
+
var UNLISTED_AGENT_FILTER = `
|
|
15263
|
+
const UNLISTED_AGENT_SKIPPED_PATTERN = new RegExp(${JSON.stringify(`\\.(?:${UNLISTED_AGENT_SKIPPED_EXTENSIONS.join("|")})$`)}, 'i')
|
|
15264
|
+
const PRODUCT_NAME_END = new RegExp(${JSON.stringify("[/\\s;(]")})
|
|
15265
|
+
const GENERIC_HTTP_CLIENTS = ${JSON.stringify(GENERIC_HTTP_CLIENTS)}
|
|
15266
|
+
const BROWSER_SHAPED_AGENT_MARKERS = ${JSON.stringify(BROWSER_SHAPED_AGENT_MARKERS)}
|
|
15267
|
+
|
|
15268
|
+
function isUnlistedAgent(request) {
|
|
15269
|
+
const method = request.method || 'GET'
|
|
15270
|
+
if (method !== 'GET' && method !== 'HEAD') return false
|
|
15271
|
+
const ua = lower(request.headers.get('user-agent') || '').trim()
|
|
15272
|
+
if (!ua) return false
|
|
15273
|
+
const product = ua.split(PRODUCT_NAME_END)[0]
|
|
15274
|
+
if (GENERIC_HTTP_CLIENTS.indexOf(product) !== -1) return false
|
|
15275
|
+
if (product === 'mozilla' && !BROWSER_SHAPED_AGENT_MARKERS.some((marker) => ua.indexOf(marker) !== -1)) return false
|
|
15276
|
+
try {
|
|
15277
|
+
return !UNLISTED_AGENT_SKIPPED_PATTERN.test(new URL(request.url).pathname)
|
|
15278
|
+
} catch (_) {
|
|
15279
|
+
return false
|
|
15280
|
+
}
|
|
15281
|
+
}
|
|
15282
|
+
`;
|
|
15206
15283
|
var PAGE_VIEW_FILTER = `
|
|
15207
15284
|
const PAGE_VIEW_ASSET_PATTERN = new RegExp(${JSON.stringify(`\\.(?:${PAGE_VIEW_ASSET_EXTENSIONS.join("|")})$`)}, 'i')
|
|
15208
15285
|
|
|
@@ -15419,10 +15496,11 @@ function botSignals(cf) {
|
|
|
15419
15496
|
if (typeof cf.botScore === 'number' && cf.botScore < BOT_SCORE_MAX_FORWARD) return true
|
|
15420
15497
|
return false
|
|
15421
15498
|
}
|
|
15422
|
-
${pageViewFilter}
|
|
15499
|
+
${UNLISTED_AGENT_FILTER}${pageViewFilter}
|
|
15423
15500
|
function shouldForward(request) {
|
|
15424
15501
|
const ua = request.headers.get('user-agent') || ''
|
|
15425
15502
|
if (uaMatches(ua)) return true
|
|
15503
|
+
if (isUnlistedAgent(request)) return true
|
|
15426
15504
|
if (urlUtmMatches(request.url)) return true
|
|
15427
15505
|
const referer = request.headers.get('referer') || ''
|
|
15428
15506
|
if (refererMatches(referer)) return true
|
|
@@ -727,7 +727,7 @@ var DEMO_CLI_COMMANDS = [{
|
|
|
727
727
|
options: { host: stringOption(), port: stringOption(), "trust-proxy": multiStringOption() },
|
|
728
728
|
allowPositionals: false,
|
|
729
729
|
run: async (input) => {
|
|
730
|
-
const { demoCommand } = await import("./demo-
|
|
730
|
+
const { demoCommand } = await import("./demo-HWM3OWEO.js");
|
|
731
731
|
await demoCommand({
|
|
732
732
|
host: getString(input.values, "host"),
|
|
733
733
|
port: getString(input.values, "port"),
|
|
@@ -748,7 +748,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
748
748
|
allowPositionals: false,
|
|
749
749
|
supportsDryRun: true,
|
|
750
750
|
run: async (input) => {
|
|
751
|
-
const { backfillAnswerVisibilityCommand } = await import("./backfill-
|
|
751
|
+
const { backfillAnswerVisibilityCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
752
752
|
await backfillAnswerVisibilityCommand({
|
|
753
753
|
project: getString(input.values, "project"),
|
|
754
754
|
dryRun: input.dryRun,
|
|
@@ -765,7 +765,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
765
765
|
allowPositionals: false,
|
|
766
766
|
supportsDryRun: true,
|
|
767
767
|
run: async (input) => {
|
|
768
|
-
const { backfillAnswerMentionsCommand } = await import("./backfill-
|
|
768
|
+
const { backfillAnswerMentionsCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
769
769
|
await backfillAnswerMentionsCommand({
|
|
770
770
|
project: getString(input.values, "project"),
|
|
771
771
|
dryRun: input.dryRun,
|
|
@@ -783,7 +783,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
783
783
|
},
|
|
784
784
|
supportsDryRun: true,
|
|
785
785
|
run: async (input) => {
|
|
786
|
-
const { backfillInsightsCommand } = await import("./backfill-
|
|
786
|
+
const { backfillInsightsCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
787
787
|
const usage = "canonry backfill insights <project> [--from-run <id>] [--to-run <id>] [--since <date>] [--dry-run] [--format json]";
|
|
788
788
|
const project3 = requireProject(input, "backfill insights", usage);
|
|
789
789
|
await backfillInsightsCommand(project3, {
|
|
@@ -803,7 +803,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
803
803
|
},
|
|
804
804
|
allowPositionals: false,
|
|
805
805
|
run: async (input) => {
|
|
806
|
-
const { backfillNormalizedPathsCommand } = await import("./backfill-
|
|
806
|
+
const { backfillNormalizedPathsCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
807
807
|
await backfillNormalizedPathsCommand({
|
|
808
808
|
project: getString(input.values, "project"),
|
|
809
809
|
format: input.format
|
|
@@ -818,7 +818,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
818
818
|
},
|
|
819
819
|
allowPositionals: false,
|
|
820
820
|
run: async (input) => {
|
|
821
|
-
const { backfillAiReferralPathsCommand } = await import("./backfill-
|
|
821
|
+
const { backfillAiReferralPathsCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
822
822
|
await backfillAiReferralPathsCommand({
|
|
823
823
|
project: getString(input.values, "project"),
|
|
824
824
|
format: input.format
|
|
@@ -830,7 +830,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
830
830
|
usage: "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]",
|
|
831
831
|
supportsDryRun: true,
|
|
832
832
|
run: async (input) => {
|
|
833
|
-
const { backfillSnapshotAttributionCommand } = await import("./backfill-
|
|
833
|
+
const { backfillSnapshotAttributionCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
834
834
|
const usage = "canonry backfill snapshot-attribution <project> [--dry-run] [--format json]";
|
|
835
835
|
const project3 = requireProject(input, "backfill snapshot-attribution", usage);
|
|
836
836
|
await backfillSnapshotAttributionCommand({
|
|
@@ -849,7 +849,7 @@ var BACKFILL_CLI_COMMANDS = [
|
|
|
849
849
|
allowPositionals: false,
|
|
850
850
|
supportsDryRun: true,
|
|
851
851
|
run: async (input) => {
|
|
852
|
-
const { backfillTrafficClassificationCommand } = await import("./backfill-
|
|
852
|
+
const { backfillTrafficClassificationCommand } = await import("./backfill-BXEYMV3Y.js");
|
|
853
853
|
await backfillTrafficClassificationCommand({
|
|
854
854
|
project: getString(input.values, "project"),
|
|
855
855
|
dryRun: input.dryRun,
|
|
@@ -1291,7 +1291,7 @@ var DASHBOARD_CLI_COMMANDS = [
|
|
|
1291
1291
|
usage: "canonry dashboard reset-password [--format json]",
|
|
1292
1292
|
help: "Clears the dashboard password from config.yaml, so the dashboard asks for a new one after a restart.\nLocal only: it edits the config file under CANONRY_CONFIG_DIR and does not call the server.",
|
|
1293
1293
|
run: async (input) => {
|
|
1294
|
-
const { resetDashboardPassword } = await import("./dashboard-
|
|
1294
|
+
const { resetDashboardPassword } = await import("./dashboard-L5XCPIFW.js");
|
|
1295
1295
|
await resetDashboardPassword({ format: input.format });
|
|
1296
1296
|
}
|
|
1297
1297
|
},
|
|
@@ -3236,7 +3236,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3236
3236
|
help: "Complete stored traffic totals and breakdowns for the selected window. Project-wide for Simple and Advanced portfolios; no provider calls or sync.",
|
|
3237
3237
|
options: { period: stringOption() },
|
|
3238
3238
|
run: async (input) => {
|
|
3239
|
-
const { trafficAnalytics } = await import("./traffic-
|
|
3239
|
+
const { trafficAnalytics } = await import("./traffic-77CKSYM3.js");
|
|
3240
3240
|
const project3 = requireProject(input, "traffic.analytics", "canonry traffic analytics <project> [--period 7|14|30|90]");
|
|
3241
3241
|
await trafficAnalytics(project3, { period: getString(input.values, "window") ?? getString(input.values, "period"), format: input.format });
|
|
3242
3242
|
}
|
|
@@ -3248,7 +3248,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3248
3248
|
help: "DB-only diagnostic. Raw headlines stay unchanged. Candidate bursts are not confirmed automation; adjusted counts are estimates. Property, Target and market attribution are unavailable. The observed GA quotient has unknown comparable coverage.",
|
|
3249
3249
|
options: { "start-date": stringOption(), "end-date": stringOption(), source: stringOption(), "burst-threshold": stringOption(), "ratio-threshold": stringOption(), limit: stringOption() },
|
|
3250
3250
|
run: async (input) => {
|
|
3251
|
-
const { trafficReferralAssessment } = await import("./traffic-
|
|
3251
|
+
const { trafficReferralAssessment } = await import("./traffic-77CKSYM3.js");
|
|
3252
3252
|
const project3 = requireProject(input, "traffic.referral-assessment", "canonry traffic referral-assessment <project> --start-date YYYY-MM-DD --end-date YYYY-MM-DD");
|
|
3253
3253
|
await trafficReferralAssessment(project3, {
|
|
3254
3254
|
startDate: getString(input.values, "start") ?? getString(input.values, "start-date"),
|
|
@@ -3281,7 +3281,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3281
3281
|
"confirm-fail-open": { type: "boolean" }
|
|
3282
3282
|
},
|
|
3283
3283
|
run: async (input) => {
|
|
3284
|
-
const { trafficConnectCloudflare, DEFAULT_CLOUDFLARE_QUEUE_RETENTION_SECONDS } = await import("./traffic-
|
|
3284
|
+
const { trafficConnectCloudflare, DEFAULT_CLOUDFLARE_QUEUE_RETENTION_SECONDS } = await import("./traffic-77CKSYM3.js");
|
|
3285
3285
|
const forwardPageViews = getBoolean(input.values, "forward-page-views");
|
|
3286
3286
|
const noForwardPageViews = getBoolean(input.values, "no-forward-page-views");
|
|
3287
3287
|
if (forwardPageViews && noForwardPageViews) {
|
|
@@ -3334,7 +3334,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3334
3334
|
"display-name": stringOption()
|
|
3335
3335
|
},
|
|
3336
3336
|
run: async (input) => {
|
|
3337
|
-
const { trafficConnectCloudRun } = await import("./traffic-
|
|
3337
|
+
const { trafficConnectCloudRun } = await import("./traffic-77CKSYM3.js");
|
|
3338
3338
|
const project3 = requireProject(
|
|
3339
3339
|
input,
|
|
3340
3340
|
"traffic.connect.cloud-run",
|
|
@@ -3365,7 +3365,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3365
3365
|
"display-name": stringOption()
|
|
3366
3366
|
},
|
|
3367
3367
|
run: async (input) => {
|
|
3368
|
-
const { trafficConnectWordpress } = await import("./traffic-
|
|
3368
|
+
const { trafficConnectWordpress } = await import("./traffic-77CKSYM3.js");
|
|
3369
3369
|
const project3 = requireProject(
|
|
3370
3370
|
input,
|
|
3371
3371
|
"traffic.connect.wordpress",
|
|
@@ -3397,7 +3397,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3397
3397
|
"display-name": stringOption()
|
|
3398
3398
|
},
|
|
3399
3399
|
run: async (input) => {
|
|
3400
|
-
const { trafficConnectVercel } = await import("./traffic-
|
|
3400
|
+
const { trafficConnectVercel } = await import("./traffic-77CKSYM3.js");
|
|
3401
3401
|
const project3 = requireProject(
|
|
3402
3402
|
input,
|
|
3403
3403
|
"traffic.connect.vercel",
|
|
@@ -3436,7 +3436,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3436
3436
|
source: stringOption()
|
|
3437
3437
|
},
|
|
3438
3438
|
run: async (input) => {
|
|
3439
|
-
const { trafficActivate } = await import("./traffic-
|
|
3439
|
+
const { trafficActivate } = await import("./traffic-77CKSYM3.js");
|
|
3440
3440
|
const project3 = requireProject(
|
|
3441
3441
|
input,
|
|
3442
3442
|
"traffic.activate",
|
|
@@ -3455,7 +3455,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3455
3455
|
"since-minutes": stringOption()
|
|
3456
3456
|
},
|
|
3457
3457
|
run: async (input) => {
|
|
3458
|
-
const { trafficSync } = await import("./traffic-
|
|
3458
|
+
const { trafficSync } = await import("./traffic-77CKSYM3.js");
|
|
3459
3459
|
const project3 = requireProject(
|
|
3460
3460
|
input,
|
|
3461
3461
|
"traffic.sync",
|
|
@@ -3484,7 +3484,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3484
3484
|
wait: { type: "boolean" }
|
|
3485
3485
|
},
|
|
3486
3486
|
run: async (input) => {
|
|
3487
|
-
const { trafficBackfill } = await import("./traffic-
|
|
3487
|
+
const { trafficBackfill } = await import("./traffic-77CKSYM3.js");
|
|
3488
3488
|
const project3 = requireProject(
|
|
3489
3489
|
input,
|
|
3490
3490
|
"traffic.backfill",
|
|
@@ -3513,7 +3513,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3513
3513
|
"advance-to-now": { type: "boolean" }
|
|
3514
3514
|
},
|
|
3515
3515
|
run: async (input) => {
|
|
3516
|
-
const { trafficReset } = await import("./traffic-
|
|
3516
|
+
const { trafficReset } = await import("./traffic-77CKSYM3.js");
|
|
3517
3517
|
const project3 = requireProject(
|
|
3518
3518
|
input,
|
|
3519
3519
|
"traffic.reset",
|
|
@@ -3535,7 +3535,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3535
3535
|
source: stringOption()
|
|
3536
3536
|
},
|
|
3537
3537
|
run: async (input) => {
|
|
3538
|
-
const { trafficDeclareGap } = await import("./traffic-
|
|
3538
|
+
const { trafficDeclareGap } = await import("./traffic-77CKSYM3.js");
|
|
3539
3539
|
const project3 = requireProject(
|
|
3540
3540
|
input,
|
|
3541
3541
|
"traffic.declare-gap",
|
|
@@ -3550,7 +3550,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3550
3550
|
path: ["traffic", "sources"],
|
|
3551
3551
|
usage: "canonry traffic sources <project> [--format json]",
|
|
3552
3552
|
run: async (input) => {
|
|
3553
|
-
const { trafficSources } = await import("./traffic-
|
|
3553
|
+
const { trafficSources } = await import("./traffic-77CKSYM3.js");
|
|
3554
3554
|
const project3 = requireProject(
|
|
3555
3555
|
input,
|
|
3556
3556
|
"traffic.sources",
|
|
@@ -3563,7 +3563,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3563
3563
|
path: ["traffic", "status"],
|
|
3564
3564
|
usage: "canonry traffic status <project> [--format json]",
|
|
3565
3565
|
run: async (input) => {
|
|
3566
|
-
const { trafficStatus } = await import("./traffic-
|
|
3566
|
+
const { trafficStatus } = await import("./traffic-77CKSYM3.js");
|
|
3567
3567
|
const project3 = requireProject(
|
|
3568
3568
|
input,
|
|
3569
3569
|
"traffic.status",
|
|
@@ -3578,7 +3578,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3578
3578
|
help: "Stored sampled tail with 30-day retention, not visits. Unknown traffic is excluded by default. No provider calls.",
|
|
3579
3579
|
options: { kind: stringOption(), source: stringOption(), since: stringOption(), until: stringOption(), "since-minutes": stringOption(), path: stringOption(), limit: stringOption(), offset: stringOption() },
|
|
3580
3580
|
run: async (input) => {
|
|
3581
|
-
const { trafficSamples } = await import("./traffic-
|
|
3581
|
+
const { trafficSamples } = await import("./traffic-77CKSYM3.js");
|
|
3582
3582
|
const project3 = requireProject(input, "traffic.samples", "canonry traffic samples <project>");
|
|
3583
3583
|
const integer = (name) => parseIntegerOption(input, name, { command: "traffic.samples", usage: "canonry traffic samples <project>", message: `--${name} must be an integer` });
|
|
3584
3584
|
await trafficSamples(project3, { kind: getString(input.values, "kind"), sourceId: getString(input.values, "source"), since: getString(input.values, "since"), until: getString(input.values, "until"), sinceMinutes: integer("since-minutes"), path: getString(input.values, "path"), limit: integer("limit"), offset: integer("offset"), format: input.format });
|
|
@@ -3597,7 +3597,7 @@ var TRAFFIC_CLI_COMMANDS = [
|
|
|
3597
3597
|
granularity: stringOption()
|
|
3598
3598
|
},
|
|
3599
3599
|
run: async (input) => {
|
|
3600
|
-
const { trafficEvents } = await import("./traffic-
|
|
3600
|
+
const { trafficEvents } = await import("./traffic-77CKSYM3.js");
|
|
3601
3601
|
const project3 = requireProject(
|
|
3602
3602
|
input,
|
|
3603
3603
|
"traffic.events",
|
|
@@ -6868,7 +6868,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
6868
6868
|
options: { access: stringOption() },
|
|
6869
6869
|
run: async (input) => {
|
|
6870
6870
|
if (input.positionals.length > 1) throw usageError("Expected at most one command group");
|
|
6871
|
-
const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-KC6JYHSW.js"), import("./cli-commands-
|
|
6871
|
+
const [{ printCliCatalog }, { REGISTERED_CLI_COMMANDS: REGISTERED_CLI_COMMANDS2 }] = await Promise.all([import("./cli-catalog-KC6JYHSW.js"), import("./cli-commands-XFFBO46N.js")]);
|
|
6872
6872
|
printCliCatalog(REGISTERED_CLI_COMMANDS2, input.format, input.positionals[0], getString(input.values, "access"));
|
|
6873
6873
|
}
|
|
6874
6874
|
},
|
|
@@ -6917,7 +6917,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
6917
6917
|
},
|
|
6918
6918
|
allowPositionals: false,
|
|
6919
6919
|
run: async (input) => {
|
|
6920
|
-
const { initCommand } = await import("./init-
|
|
6920
|
+
const { initCommand } = await import("./init-WXKOOS25.js");
|
|
6921
6921
|
await initCommand({
|
|
6922
6922
|
force: getBoolean(input.values, "force"),
|
|
6923
6923
|
ref: getString(input.values, "ref"),
|
|
@@ -6972,7 +6972,7 @@ var SYSTEM_CLI_COMMANDS = [
|
|
|
6972
6972
|
allowPositionals: false,
|
|
6973
6973
|
run: async (input) => {
|
|
6974
6974
|
applyServerEnv(input.values);
|
|
6975
|
-
const { serveCommand } = await import("./serve-
|
|
6975
|
+
const { serveCommand } = await import("./serve-7JITP7HH.js");
|
|
6976
6976
|
await serveCommand(input.format);
|
|
6977
6977
|
}
|
|
6978
6978
|
},
|
|
@@ -8290,8 +8290,8 @@ var AGENT_CLI_COMMANDS = [
|
|
|
8290
8290
|
"timeout-ms": stringOption()
|
|
8291
8291
|
},
|
|
8292
8292
|
run: async (input) => {
|
|
8293
|
-
const { coerceAgentProvider } = await import("./session-
|
|
8294
|
-
const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-
|
|
8293
|
+
const { coerceAgentProvider } = await import("./session-PCUTTGTF.js");
|
|
8294
|
+
const { AERO_TOOL_PROFILES, isAeroToolProfile } = await import("./tools-LILIKI26.js");
|
|
8295
8295
|
const { agentAsk } = await import("./agent-ask-32RTOL2M.js");
|
|
8296
8296
|
const usage = `canonry agent ask <project> "<prompt>" [--provider ${AGENT_PROVIDER_IDS.join("|")}] [--model <id>] [--scope all|read-only] [--profile default|ads-operator] [--context <json>] [--conversation <id>] [--max-tool-calls <n>] [--timeout-ms <ms>] [--format json]`;
|
|
8297
8297
|
const project3 = requireProject(input, "agent.ask", usage);
|
|
@@ -27,14 +27,14 @@ import {
|
|
|
27
27
|
resolveConfiguredAgentProvider,
|
|
28
28
|
resolveSessionProviderAndModel,
|
|
29
29
|
setAeroSystemPrompt
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-MIQMUSE4.js";
|
|
31
31
|
import {
|
|
32
32
|
AeroToolProfiles,
|
|
33
33
|
AeroToolScopes,
|
|
34
34
|
buildAeroStateTools,
|
|
35
35
|
isAeroToolProfile,
|
|
36
36
|
truncateToolResult
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-JJO5XNS6.js";
|
|
38
38
|
import {
|
|
39
39
|
getGoogleAuthConfig,
|
|
40
40
|
getGoogleConnection,
|
|
@@ -161,7 +161,7 @@ import {
|
|
|
161
161
|
} from "./chunk-HGMYEDAQ.js";
|
|
162
162
|
import {
|
|
163
163
|
IntelligenceService
|
|
164
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-QAVJ6LHN.js";
|
|
165
165
|
import {
|
|
166
166
|
addLogListener,
|
|
167
167
|
createFastifyLogger,
|
|
@@ -291,7 +291,7 @@ import {
|
|
|
291
291
|
webhookResponseReason,
|
|
292
292
|
webhookTargetRefusalReason,
|
|
293
293
|
writeAuditLog
|
|
294
|
-
} from "./chunk-
|
|
294
|
+
} from "./chunk-R3US2RG6.js";
|
|
295
295
|
import {
|
|
296
296
|
OperationalLogStore,
|
|
297
297
|
SentimentIdempotencyConflict,
|
|
@@ -5937,7 +5937,7 @@ function nonBlank(value) {
|
|
|
5937
5937
|
return trimmed ? trimmed : void 0;
|
|
5938
5938
|
}
|
|
5939
5939
|
function resolveBuildCommit(env = process.env) {
|
|
5940
|
-
const embedded = true ? "
|
|
5940
|
+
const embedded = true ? "7de408778ee8c17a4b7d4e10315544e07bc057a8" : void 0;
|
|
5941
5941
|
return nonBlank(embedded) ?? nonBlank(env.CANONRY_COMMIT);
|
|
5942
5942
|
}
|
|
5943
5943
|
function resolveInstanceIdentity(env = process.env) {
|
|
@@ -47,7 +47,7 @@ function queueServeHandoff() {
|
|
|
47
47
|
async function runPendingServeHandoff(format) {
|
|
48
48
|
if (!pendingServeHandoff) return;
|
|
49
49
|
pendingServeHandoff = false;
|
|
50
|
-
const { serveCommand } = await import("./serve-
|
|
50
|
+
const { serveCommand } = await import("./serve-7JITP7HH.js");
|
|
51
51
|
await serveCommand(format);
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
normalizeCloudflareWorkerEvent,
|
|
10
10
|
sessionizeJourneyRequests,
|
|
11
11
|
verifyRequestSignature
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-B36XUBYK.js";
|
|
13
13
|
import {
|
|
14
14
|
currentOutcomeAttribution,
|
|
15
15
|
getRequestContext,
|
|
@@ -29617,7 +29617,7 @@ import { and as and42, asc as asc10, count as count4, desc as desc23, eq as eq50
|
|
|
29617
29617
|
import "zod";
|
|
29618
29618
|
|
|
29619
29619
|
// ../api-routes/src/cloudflare-worker-version.ts
|
|
29620
|
-
var CURRENT_CLOUDFLARE_WORKER_VERSION = "1.0
|
|
29620
|
+
var CURRENT_CLOUDFLARE_WORKER_VERSION = "1.1.0";
|
|
29621
29621
|
function cloudflareWorkerVersionFor(options) {
|
|
29622
29622
|
return `${CURRENT_CLOUDFLARE_WORKER_VERSION}${options.forwardPageViews ? CLOUDFLARE_PAGE_VIEWS_VERSION_SUFFIX : ""}`;
|
|
29623
29623
|
}
|
|
@@ -23,11 +23,11 @@ import {
|
|
|
23
23
|
createRunCompetitorResolver,
|
|
24
24
|
readMarketCompetitorNames,
|
|
25
25
|
refreshSnapshotMentionIdentity
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-R3US2RG6.js";
|
|
27
27
|
import {
|
|
28
28
|
classifyAiUserFetch,
|
|
29
29
|
classifyCrawler
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-B36XUBYK.js";
|
|
31
31
|
import {
|
|
32
32
|
RawEventSampleEventTypes,
|
|
33
33
|
aiUserFetchEventsHourly,
|
|
@@ -437,7 +437,7 @@ No DB writes performed. Re-run without --dry-run to apply.`);
|
|
|
437
437
|
}
|
|
438
438
|
}
|
|
439
439
|
async function backfillInsightsCommand(project, opts) {
|
|
440
|
-
const { IntelligenceService } = await import("./intelligence-service-
|
|
440
|
+
const { IntelligenceService } = await import("./intelligence-service-RVKSPP4X.js");
|
|
441
441
|
const config = loadConfig();
|
|
442
442
|
const db = createClient(config.database);
|
|
443
443
|
migrate(db);
|
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node --import tsx
|
|
2
2
|
import {
|
|
3
3
|
REGISTERED_CLI_COMMANDS
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CJ4JDM5W.js";
|
|
5
5
|
import {
|
|
6
6
|
buildSetupState,
|
|
7
7
|
runPendingServeHandoff
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ENUSVOQ5.js";
|
|
9
9
|
import "./chunk-6GO5VVAC.js";
|
|
10
10
|
import "./chunk-2EWZ3DJ4.js";
|
|
11
11
|
import "./chunk-VJWDBFSL.js";
|
|
@@ -40,7 +40,7 @@ function parseDemoTrustedProxies(values) {
|
|
|
40
40
|
async function demoCommand(options) {
|
|
41
41
|
const { host, port } = parseDemoListenOptions(options);
|
|
42
42
|
const trustProxy = parseDemoTrustedProxies(options.trustProxy);
|
|
43
|
-
const { createDemoServer } = await import("./demo-server-
|
|
43
|
+
const { createDemoServer } = await import("./demo-server-5DE5PAEC.js");
|
|
44
44
|
const app = await createDemoServer({ trustProxy });
|
|
45
45
|
let stopping = false;
|
|
46
46
|
const stop = () => {
|
|
@@ -18,7 +18,7 @@ import "./chunk-HGMYEDAQ.js";
|
|
|
18
18
|
import {
|
|
19
19
|
HISTORY_WINDOW_RUNS,
|
|
20
20
|
IntelligenceService
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-QAVJ6LHN.js";
|
|
22
22
|
import "./chunk-TZRYVW75.js";
|
|
23
23
|
import {
|
|
24
24
|
determineCitationState
|
|
@@ -26,8 +26,8 @@ import {
|
|
|
26
26
|
import {
|
|
27
27
|
apiRoutes,
|
|
28
28
|
assessConversionTrackingIntegrity
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-R3US2RG6.js";
|
|
30
|
+
import "./chunk-B36XUBYK.js";
|
|
31
31
|
import "./chunk-3MGM3U6V.js";
|
|
32
32
|
import {
|
|
33
33
|
adsAdGroups,
|
package/dist/index.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
createGoogleMarketingCredentialStore,
|
|
4
4
|
createGoogleMarketingRuntime,
|
|
5
5
|
createServer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DKONZ36U.js";
|
|
7
7
|
import "./chunk-WSWHLKKJ.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-MIQMUSE4.js";
|
|
9
|
+
import "./chunk-JJO5XNS6.js";
|
|
10
10
|
import "./chunk-ELCLGWUT.js";
|
|
11
11
|
import "./chunk-XEBKF4N5.js";
|
|
12
12
|
import "./chunk-KZB6HLFT.js";
|
|
@@ -28,11 +28,11 @@ import "./chunk-ZHFE6J3A.js";
|
|
|
28
28
|
import "./chunk-7HB6QLX4.js";
|
|
29
29
|
import "./chunk-AOJU5LKX.js";
|
|
30
30
|
import "./chunk-HGMYEDAQ.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-QAVJ6LHN.js";
|
|
32
32
|
import "./chunk-TZRYVW75.js";
|
|
33
33
|
import "./chunk-JERATA5R.js";
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-R3US2RG6.js";
|
|
35
|
+
import "./chunk-B36XUBYK.js";
|
|
36
36
|
import "./chunk-3MGM3U6V.js";
|
|
37
37
|
import "./chunk-HRFPGXON.js";
|
|
38
38
|
import "./chunk-PM2DB3HE.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HISTORY_WINDOW_RUNS,
|
|
3
3
|
IntelligenceService
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-QAVJ6LHN.js";
|
|
5
5
|
import "./chunk-TZRYVW75.js";
|
|
6
6
|
import "./chunk-JERATA5R.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-R3US2RG6.js";
|
|
8
|
+
import "./chunk-B36XUBYK.js";
|
|
9
9
|
import "./chunk-3MGM3U6V.js";
|
|
10
10
|
import "./chunk-HRFPGXON.js";
|
|
11
11
|
import "./chunk-PM2DB3HE.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
backfillAiReferralPaths,
|
|
3
3
|
backfillNormalizedPaths
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-T2TIQP5O.js";
|
|
5
5
|
import {
|
|
6
6
|
operatorHttpUrl
|
|
7
7
|
} from "./chunk-6GO5VVAC.js";
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
allowsKeylessFirstRunSetup,
|
|
10
10
|
createServer,
|
|
11
11
|
waitForServerRuntimeStartup
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DKONZ36U.js";
|
|
13
13
|
import "./chunk-WSWHLKKJ.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-MIQMUSE4.js";
|
|
15
|
+
import "./chunk-JJO5XNS6.js";
|
|
16
16
|
import "./chunk-ELCLGWUT.js";
|
|
17
17
|
import "./chunk-XEBKF4N5.js";
|
|
18
18
|
import "./chunk-KZB6HLFT.js";
|
|
@@ -57,14 +57,14 @@ import {
|
|
|
57
57
|
CliError,
|
|
58
58
|
isMachineFormat
|
|
59
59
|
} from "./chunk-HGMYEDAQ.js";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-QAVJ6LHN.js";
|
|
61
61
|
import "./chunk-TZRYVW75.js";
|
|
62
62
|
import "./chunk-JERATA5R.js";
|
|
63
63
|
import {
|
|
64
64
|
refreshSnapshotMentionIdentity,
|
|
65
65
|
snapshotsWithSentimentResults
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-
|
|
66
|
+
} from "./chunk-R3US2RG6.js";
|
|
67
|
+
import "./chunk-B36XUBYK.js";
|
|
68
68
|
import "./chunk-3MGM3U6V.js";
|
|
69
69
|
import {
|
|
70
70
|
createClient,
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
resolveAeroModel,
|
|
10
10
|
resolveConfiguredAgentProvider,
|
|
11
11
|
resolveSessionProviderAndModel
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-MIQMUSE4.js";
|
|
13
|
+
import "./chunk-JJO5XNS6.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveAeroSkillDir
|
|
16
16
|
} from "./chunk-JI7FDO7I.js";
|
|
@@ -26,8 +26,8 @@ import "./chunk-7HB6QLX4.js";
|
|
|
26
26
|
import "./chunk-AOJU5LKX.js";
|
|
27
27
|
import "./chunk-HGMYEDAQ.js";
|
|
28
28
|
import "./chunk-TZRYVW75.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-R3US2RG6.js";
|
|
30
|
+
import "./chunk-B36XUBYK.js";
|
|
31
31
|
import "./chunk-3MGM3U6V.js";
|
|
32
32
|
import "./chunk-HRFPGXON.js";
|
|
33
33
|
import "./chunk-PM2DB3HE.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
buildAllTools,
|
|
12
12
|
buildReadTools,
|
|
13
13
|
isAeroToolProfile
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JJO5XNS6.js";
|
|
15
15
|
import "./chunk-7OAXEMOF.js";
|
|
16
16
|
import "./chunk-3QJWOF2B.js";
|
|
17
17
|
import "./chunk-MUYTDD35.js";
|
|
@@ -19,8 +19,8 @@ import "./chunk-ZHFE6J3A.js";
|
|
|
19
19
|
import "./chunk-7HB6QLX4.js";
|
|
20
20
|
import "./chunk-AOJU5LKX.js";
|
|
21
21
|
import "./chunk-HGMYEDAQ.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-R3US2RG6.js";
|
|
23
|
+
import "./chunk-B36XUBYK.js";
|
|
24
24
|
import "./chunk-3MGM3U6V.js";
|
|
25
25
|
import "./chunk-HRFPGXON.js";
|
|
26
26
|
import "./chunk-PM2DB3HE.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@canonry/canonry",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.80.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Self-hosted AI visibility (AEO) platform: track how ChatGPT, Claude, Gemini, and Perplexity cite your domain, join it with Search Console, GA4, server-side traffic, and paid media, and fix what you find through agent tools (CLI, REST, MCP). Local SQLite.",
|
|
6
6
|
"keywords": [
|