@koda-sl/baker-cli 0.9.0 → 0.11.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 +70 -7
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -1
- package/dist/client.js.map +1 -1
- package/dist/commands/ads/cache.d.ts +0 -1
- package/dist/commands/ads/cache.d.ts.map +1 -1
- package/dist/commands/ads/cache.js +0 -6
- package/dist/commands/ads/cache.js.map +1 -1
- package/dist/commands/ads/google/accounts.d.ts.map +1 -1
- package/dist/commands/ads/google/accounts.js +2 -1
- package/dist/commands/ads/google/accounts.js.map +1 -1
- package/dist/commands/ads/google/changes.d.ts +5 -0
- package/dist/commands/ads/google/changes.d.ts.map +1 -1
- package/dist/commands/ads/google/changes.js +5 -2
- package/dist/commands/ads/google/changes.js.map +1 -1
- package/dist/commands/ads/google/correction-table.d.ts.map +1 -1
- package/dist/commands/ads/google/correction-table.js +11 -3
- package/dist/commands/ads/google/correction-table.js.map +1 -1
- package/dist/commands/ads/google/currency.d.ts.map +1 -1
- package/dist/commands/ads/google/currency.js +7 -1
- package/dist/commands/ads/google/currency.js.map +1 -1
- package/dist/commands/ads/google/error-parser.d.ts.map +1 -1
- package/dist/commands/ads/google/error-parser.js +3 -1
- package/dist/commands/ads/google/error-parser.js.map +1 -1
- package/dist/commands/ads/google/keywords/discover.d.ts.map +1 -1
- package/dist/commands/ads/google/keywords/discover.js +2 -0
- package/dist/commands/ads/google/keywords/discover.js.map +1 -1
- package/dist/commands/ads/google/keywords/metrics.d.ts.map +1 -1
- package/dist/commands/ads/google/keywords/metrics.js +2 -0
- package/dist/commands/ads/google/keywords/metrics.js.map +1 -1
- package/dist/commands/ads/google/query.d.ts +0 -5
- package/dist/commands/ads/google/query.d.ts.map +1 -1
- package/dist/commands/ads/google/query.js +8 -9
- package/dist/commands/ads/google/query.js.map +1 -1
- package/dist/commands/research/advertisers.d.ts +5 -0
- package/dist/commands/research/advertisers.d.ts.map +1 -1
- package/dist/commands/research/advertisers.js +6 -2
- package/dist/commands/research/advertisers.js.map +1 -1
- package/dist/commands/research/countries.d.ts +2 -0
- package/dist/commands/research/countries.d.ts.map +1 -0
- package/dist/commands/research/countries.js +69 -0
- package/dist/commands/research/countries.js.map +1 -0
- package/dist/commands/research/index.d.ts.map +1 -1
- package/dist/commands/research/index.js +6 -0
- package/dist/commands/research/index.js.map +1 -1
- package/dist/commands/research/intent.d.ts +5 -0
- package/dist/commands/research/intent.d.ts.map +1 -1
- package/dist/commands/research/intent.js +4 -0
- package/dist/commands/research/intent.js.map +1 -1
- package/dist/commands/research/keyword-gap.d.ts +5 -0
- package/dist/commands/research/keyword-gap.d.ts.map +1 -1
- package/dist/commands/research/keyword-gap.js +8 -1
- package/dist/commands/research/keyword-gap.js.map +1 -1
- package/dist/commands/research/keywords-for-site.d.ts +5 -0
- package/dist/commands/research/keywords-for-site.d.ts.map +1 -1
- package/dist/commands/research/keywords-for-site.js +6 -2
- package/dist/commands/research/keywords-for-site.js.map +1 -1
- package/dist/commands/research/languages.d.ts +2 -0
- package/dist/commands/research/languages.d.ts.map +1 -0
- package/dist/commands/research/languages.js +42 -0
- package/dist/commands/research/languages.js.map +1 -0
- package/dist/commands/research/lighthouse.d.ts +5 -0
- package/dist/commands/research/lighthouse.d.ts.map +1 -1
- package/dist/commands/research/lighthouse.js +11 -1
- package/dist/commands/research/lighthouse.js.map +1 -1
- package/dist/commands/research/output.d.ts +3 -0
- package/dist/commands/research/output.d.ts.map +1 -1
- package/dist/commands/research/output.js +1 -0
- package/dist/commands/research/output.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lighthouse.d.ts","sourceRoot":"","sources":["../../../src/commands/research/lighthouse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lighthouse.d.ts","sourceRoot":"","sources":["../../../src/commands/research/lighthouse.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;EAqC5B,CAAC"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { defineCommand } from "citty";
|
|
2
2
|
import { apiPost } from "../../client.js";
|
|
3
3
|
import { registerSchema } from "../../schemas.js";
|
|
4
|
-
import { handleResearchError, writeResearchJson } from "./output.js";
|
|
4
|
+
import { handleResearchError, writeResearchJson, writeResearchOutput } from "./output.js";
|
|
5
5
|
registerSchema({
|
|
6
6
|
command: "research.lighthouse",
|
|
7
7
|
description: "Landing page performance audit. Returns metrics that affect Google Ads Quality Score and CPC.",
|
|
8
8
|
args: {
|
|
9
9
|
url: { type: "string", description: "Full URL to audit (with https://)", required: true },
|
|
10
10
|
mobile: { type: "boolean", description: "Test as mobile (default: true)", required: false },
|
|
11
|
+
"no-cache": { type: "boolean", description: "Skip server cache, hit API directly", required: false },
|
|
11
12
|
},
|
|
12
13
|
});
|
|
13
14
|
const FIELDS = {
|
|
15
|
+
url: "URL that was audited",
|
|
14
16
|
performance_score: "Lighthouse performance score 0-100 (aim for 90+)",
|
|
15
17
|
fcp_ms: "First Contentful Paint in ms (good: < 1800)",
|
|
16
18
|
lcp_ms: "Largest Contentful Paint in ms (good: < 2500)",
|
|
@@ -31,15 +33,23 @@ Examples:
|
|
|
31
33
|
url: { type: "positional", description: "Full URL to audit (with https://)", required: true },
|
|
32
34
|
mobile: { type: "string", description: "Test as mobile: true|false (default: true)", required: false },
|
|
33
35
|
output: { type: "string", description: "Format: json|csv|md|jsonl", required: false, default: "json" },
|
|
36
|
+
"no-cache": { type: "boolean", description: "Skip server cache, hit API directly", required: false },
|
|
34
37
|
},
|
|
35
38
|
run: async ({ args }) => {
|
|
36
39
|
const url = args.url;
|
|
37
40
|
const mobile = args.mobile === "false" ? false : undefined;
|
|
41
|
+
const skipCache = args["no-cache"] ? true : undefined;
|
|
38
42
|
try {
|
|
39
43
|
const data = await apiPost("/api/research/lighthouse", {
|
|
40
44
|
url,
|
|
41
45
|
mobile,
|
|
46
|
+
skipCache,
|
|
42
47
|
});
|
|
48
|
+
const format = args.output || "json";
|
|
49
|
+
if (format !== "json") {
|
|
50
|
+
writeResearchOutput([data], format);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
43
53
|
writeResearchJson({ ok: true, data, fields: FIELDS });
|
|
44
54
|
}
|
|
45
55
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lighthouse.js","sourceRoot":"","sources":["../../../src/commands/research/lighthouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"lighthouse.js","sourceRoot":"","sources":["../../../src/commands/research/lighthouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE1F,cAAc,CAAC;IACb,OAAO,EAAE,qBAAqB;IAC9B,WAAW,EAAE,+FAA+F;IAC5G,IAAI,EAAE;QACJ,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzF,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,EAAE,KAAK,EAAE;QAC3F,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE,QAAQ,EAAE,KAAK,EAAE;KACrG;CACF,CAAC,CAAC;AAYH,MAAM,MAAM,GAA2B;IACrC,GAAG,EAAE,sBAAsB;IAC3B,iBAAiB,EAAE,kDAAkD;IACrE,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,+CAA+C;IACvD,GAAG,EAAE,uCAAuC;IAC5C,cAAc,EAAE,kCAAkC;IAClD,cAAc,EAAE,0CAA0C;CAC3D,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;IAC7C,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE;;;;iEAIgD;KAC9D;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,mCAAmC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7F,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4CAA4C,EAAE,QAAQ,EAAE,KAAK,EAAE;QACtG,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;QACtG,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,qCAAqC,EAAE,QAAQ,EAAE,KAAK,EAAE;KACrG;IACD,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAa,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAmB,0BAA0B,EAAE;gBACvE,GAAG;gBACH,MAAM;gBACN,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,MAAM,CAAC;YACjD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,mBAAmB,CAAC,CAAC,IAA0C,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YACD,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare const RESEARCH_DATA_NOTE = "Estimates based on third-party SERP data \u2014 not exact figures. Use for directional insights, not precise measurement.";
|
|
1
2
|
interface PaginationInfo {
|
|
2
3
|
offset: number;
|
|
3
4
|
limit: number;
|
|
@@ -8,8 +9,10 @@ interface ResearchSuccessEnvelope<T> {
|
|
|
8
9
|
ok: true;
|
|
9
10
|
data: T;
|
|
10
11
|
fields?: Record<string, string>;
|
|
12
|
+
note?: string;
|
|
11
13
|
total_count?: number;
|
|
12
14
|
pagination?: PaginationInfo;
|
|
15
|
+
[key: string]: unknown;
|
|
13
16
|
}
|
|
14
17
|
interface ResearchErrorEnvelope {
|
|
15
18
|
ok: false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/commands/research/output.ts"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,uBAAuB,CAAC,CAAC;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/commands/research/output.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,8HACyF,CAAC;AAEzH,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,uBAAuB,CAAC,CAAC;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,KAAK,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC;AAE/E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAEhE;AAgDD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAcjH;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAgBvD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ApiError } from "../../client.js";
|
|
2
|
+
export const RESEARCH_DATA_NOTE = "Estimates based on third-party SERP data — not exact figures. Use for directional insights, not precise measurement.";
|
|
2
3
|
export function writeResearchJson(envelope) {
|
|
3
4
|
process.stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
4
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/commands/research/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/commands/research/output.ts"],"names":[],"mappings":"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"}
|