@koda-sl/baker-cli 0.5.0 → 0.9.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 +655 -162
- package/dist/cli.js +9 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/ads/cache.d.ts +8 -0
- package/dist/commands/ads/cache.d.ts.map +1 -0
- package/dist/commands/ads/cache.js +79 -0
- package/dist/commands/ads/cache.js.map +1 -0
- package/dist/commands/ads/cache.test.d.ts +2 -0
- package/dist/commands/ads/cache.test.d.ts.map +1 -0
- package/dist/commands/ads/cache.test.js +44 -0
- package/dist/commands/ads/cache.test.js.map +1 -0
- package/dist/commands/ads/field-descriptions.d.ts +2 -0
- package/dist/commands/ads/field-descriptions.d.ts.map +1 -0
- package/dist/commands/ads/field-descriptions.js +91 -0
- package/dist/commands/ads/field-descriptions.js.map +1 -0
- package/dist/commands/ads/google/accounts.d.ts +14 -0
- package/dist/commands/ads/google/accounts.d.ts.map +1 -0
- package/dist/commands/ads/google/accounts.js +72 -0
- package/dist/commands/ads/google/accounts.js.map +1 -0
- package/dist/commands/ads/google/changes.d.ts +29 -0
- package/dist/commands/ads/google/changes.d.ts.map +1 -0
- package/dist/commands/ads/google/changes.js +77 -0
- package/dist/commands/ads/google/changes.js.map +1 -0
- package/dist/commands/ads/google/correction-table.d.ts +3 -0
- package/dist/commands/ads/google/correction-table.d.ts.map +1 -0
- package/dist/commands/ads/google/correction-table.js +332 -0
- package/dist/commands/ads/google/correction-table.js.map +1 -0
- package/dist/commands/ads/google/currency.d.ts +13 -0
- package/dist/commands/ads/google/currency.d.ts.map +1 -0
- package/dist/commands/ads/google/currency.js +62 -0
- package/dist/commands/ads/google/currency.js.map +1 -0
- package/dist/commands/ads/google/error-parser.d.ts +3 -0
- package/dist/commands/ads/google/error-parser.d.ts.map +1 -0
- package/dist/commands/ads/google/error-parser.js +89 -0
- package/dist/commands/ads/google/error-parser.js.map +1 -0
- package/dist/commands/ads/google/error-parser.test.d.ts +2 -0
- package/dist/commands/ads/google/error-parser.test.d.ts.map +1 -0
- package/dist/commands/ads/google/error-parser.test.js +48 -0
- package/dist/commands/ads/google/error-parser.test.js.map +1 -0
- package/dist/commands/ads/google/index.d.ts +2 -0
- package/dist/commands/ads/google/index.d.ts.map +1 -0
- package/dist/commands/ads/google/index.js +30 -0
- package/dist/commands/ads/google/index.js.map +1 -0
- package/dist/commands/ads/google/keywords/discover.d.ts +49 -0
- package/dist/commands/ads/google/keywords/discover.d.ts.map +1 -0
- package/dist/commands/ads/google/keywords/discover.js +137 -0
- package/dist/commands/ads/google/keywords/discover.js.map +1 -0
- package/dist/commands/ads/google/keywords/index.d.ts +2 -0
- package/dist/commands/ads/google/keywords/index.d.ts.map +1 -0
- package/dist/commands/ads/google/keywords/index.js +18 -0
- package/dist/commands/ads/google/keywords/index.js.map +1 -0
- package/dist/commands/ads/google/keywords/metrics.d.ts +34 -0
- package/dist/commands/ads/google/keywords/metrics.d.ts.map +1 -0
- package/dist/commands/ads/google/keywords/metrics.js +109 -0
- package/dist/commands/ads/google/keywords/metrics.js.map +1 -0
- package/dist/commands/ads/google/preflight.d.ts +3 -0
- package/dist/commands/ads/google/preflight.d.ts.map +1 -0
- package/dist/commands/ads/google/preflight.js +115 -0
- package/dist/commands/ads/google/preflight.js.map +1 -0
- package/dist/commands/ads/google/preflight.test.d.ts +2 -0
- package/dist/commands/ads/google/preflight.test.d.ts.map +1 -0
- package/dist/commands/ads/google/preflight.test.js +50 -0
- package/dist/commands/ads/google/preflight.test.js.map +1 -0
- package/dist/commands/ads/google/presets.d.ts +12 -0
- package/dist/commands/ads/google/presets.d.ts.map +1 -0
- package/dist/commands/ads/google/presets.js +71 -0
- package/dist/commands/ads/google/presets.js.map +1 -0
- package/dist/commands/ads/google/presets.test.d.ts +2 -0
- package/dist/commands/ads/google/presets.test.d.ts.map +1 -0
- package/dist/commands/ads/google/presets.test.js +79 -0
- package/dist/commands/ads/google/presets.test.js.map +1 -0
- package/dist/commands/ads/google/query.d.ts +69 -0
- package/dist/commands/ads/google/query.d.ts.map +1 -0
- package/dist/commands/ads/google/query.js +305 -0
- package/dist/commands/ads/google/query.js.map +1 -0
- package/dist/commands/ads/index.d.ts +2 -0
- package/dist/commands/ads/index.d.ts.map +1 -0
- package/dist/commands/ads/index.js +19 -0
- package/dist/commands/ads/index.js.map +1 -0
- package/dist/commands/ads/output.d.ts +17 -0
- package/dist/commands/ads/output.d.ts.map +1 -0
- package/dist/commands/ads/output.js +78 -0
- package/dist/commands/ads/output.js.map +1 -0
- package/dist/commands/ads/output.test.d.ts +2 -0
- package/dist/commands/ads/output.test.d.ts.map +1 -0
- package/dist/commands/ads/output.test.js +100 -0
- package/dist/commands/ads/output.test.js.map +1 -0
- package/dist/commands/ads/types.d.ts +69 -0
- package/dist/commands/ads/types.d.ts.map +1 -0
- package/dist/commands/ads/types.js +2 -0
- package/dist/commands/ads/types.js.map +1 -0
- package/dist/commands/research/advertisers.d.ts +29 -0
- package/dist/commands/research/advertisers.d.ts.map +1 -0
- package/dist/commands/research/advertisers.js +71 -0
- package/dist/commands/research/advertisers.js.map +1 -0
- package/dist/commands/research/index.d.ts +2 -0
- package/dist/commands/research/index.d.ts.map +1 -0
- package/dist/commands/research/index.js +34 -0
- package/dist/commands/research/index.js.map +1 -0
- package/dist/commands/research/intent.d.ts +19 -0
- package/dist/commands/research/intent.d.ts.map +1 -0
- package/dist/commands/research/intent.js +67 -0
- package/dist/commands/research/intent.js.map +1 -0
- package/dist/commands/research/keyword-gap.d.ts +44 -0
- package/dist/commands/research/keyword-gap.d.ts.map +1 -0
- package/dist/commands/research/keyword-gap.js +92 -0
- package/dist/commands/research/keyword-gap.js.map +1 -0
- package/dist/commands/research/keywords-for-site.d.ts +39 -0
- package/dist/commands/research/keywords-for-site.d.ts.map +1 -0
- package/dist/commands/research/keywords-for-site.js +79 -0
- package/dist/commands/research/keywords-for-site.js.map +1 -0
- package/dist/commands/research/lighthouse.d.ts +19 -0
- package/dist/commands/research/lighthouse.d.ts.map +1 -0
- package/dist/commands/research/lighthouse.js +50 -0
- package/dist/commands/research/lighthouse.js.map +1 -0
- package/dist/commands/research/output.d.ts +26 -0
- package/dist/commands/research/output.d.ts.map +1 -0
- package/dist/commands/research/output.js +80 -0
- package/dist/commands/research/output.js.map +1 -0
- package/dist/commands/testimonials/get.d.ts +30 -0
- package/dist/commands/testimonials/get.d.ts.map +1 -0
- package/dist/commands/testimonials/get.js +42 -0
- package/dist/commands/testimonials/get.js.map +1 -0
- package/dist/commands/testimonials/index.d.ts +2 -0
- package/dist/commands/testimonials/index.d.ts.map +1 -0
- package/dist/commands/testimonials/index.js +22 -0
- package/dist/commands/testimonials/index.js.map +1 -0
- package/dist/commands/testimonials/list.d.ts +60 -0
- package/dist/commands/testimonials/list.d.ts.map +1 -0
- package/dist/commands/testimonials/list.js +69 -0
- package/dist/commands/testimonials/list.js.map +1 -0
- package/dist/commands/testimonials/search.d.ts +40 -0
- package/dist/commands/testimonials/search.d.ts.map +1 -0
- package/dist/commands/testimonials/search.js +59 -0
- package/dist/commands/testimonials/search.js.map +1 -0
- package/dist/env.d.ts +1 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -1
- package/dist/env.js.map +1 -1
- package/dist/output.d.ts +1 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +37 -0
- package/dist/output.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { defineCommand } from "citty";
|
|
2
|
+
import { ApiError, apiGet } from "../../client.js";
|
|
3
|
+
import { testimonialNormalizer, writeJson, writeOutput } from "../../output.js";
|
|
4
|
+
import { registerSchema } from "../../schemas.js";
|
|
5
|
+
registerSchema({
|
|
6
|
+
command: "testimonials.list",
|
|
7
|
+
description: "List testimonials with optional filters.",
|
|
8
|
+
args: {
|
|
9
|
+
source: { type: "string", description: "Filter by source: google|trustpilot", required: false },
|
|
10
|
+
"rating-min": { type: "number", description: "Minimum star rating (1-5)", required: false },
|
|
11
|
+
"rating-max": { type: "number", description: "Maximum star rating (1-5)", required: false },
|
|
12
|
+
status: { type: "string", description: "Filter by status: pending|processing|ready|error", required: false },
|
|
13
|
+
sentiment: { type: "string", description: "Filter: positive|neutral|negative", required: false },
|
|
14
|
+
language: { type: "string", description: "Filter by language code (e.g. en, es)", required: false },
|
|
15
|
+
tags: { type: "string", description: "Comma-separated tags to filter by", required: false },
|
|
16
|
+
limit: { type: "number", description: "Max results (default 50)", required: false, default: 50 },
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
export const listCommand = defineCommand({
|
|
20
|
+
meta: {
|
|
21
|
+
name: "list",
|
|
22
|
+
description: "List testimonials with optional filters. Example: baker testimonials list --source google --sentiment positive",
|
|
23
|
+
},
|
|
24
|
+
args: {
|
|
25
|
+
source: { type: "string", description: "Filter by source: google|trustpilot", required: false },
|
|
26
|
+
"rating-min": { type: "string", description: "Minimum star rating (1-5)", required: false },
|
|
27
|
+
"rating-max": { type: "string", description: "Maximum star rating (1-5)", required: false },
|
|
28
|
+
status: { type: "string", description: "Filter by status: pending|processing|ready|error", required: false },
|
|
29
|
+
sentiment: { type: "string", description: "Filter: positive|neutral|negative", required: false },
|
|
30
|
+
language: { type: "string", description: "Filter by language code (e.g. en, es)", required: false },
|
|
31
|
+
tags: { type: "string", description: "Comma-separated tags to filter by", required: false },
|
|
32
|
+
limit: { type: "string", description: "Max results (default 50)", required: false },
|
|
33
|
+
output: { type: "string", description: "Output format: json|files|md", required: false, default: "json" },
|
|
34
|
+
fields: { type: "string", description: "Comma-separated field names to include", required: false },
|
|
35
|
+
full: { type: "boolean", description: "Include full metadata", required: false, default: false },
|
|
36
|
+
},
|
|
37
|
+
run: async ({ args }) => {
|
|
38
|
+
try {
|
|
39
|
+
const params = {};
|
|
40
|
+
if (args.source)
|
|
41
|
+
params.source = args.source;
|
|
42
|
+
if (args["rating-min"])
|
|
43
|
+
params.rating_min = args["rating-min"];
|
|
44
|
+
if (args["rating-max"])
|
|
45
|
+
params.rating_max = args["rating-max"];
|
|
46
|
+
if (args.status)
|
|
47
|
+
params.status = args.status;
|
|
48
|
+
if (args.sentiment)
|
|
49
|
+
params.sentiment = args.sentiment;
|
|
50
|
+
if (args.language)
|
|
51
|
+
params.language = args.language;
|
|
52
|
+
if (args.tags)
|
|
53
|
+
params.tags = args.tags;
|
|
54
|
+
if (args.limit)
|
|
55
|
+
params.limit = args.limit;
|
|
56
|
+
const data = await apiGet("/api/testimonials", params);
|
|
57
|
+
writeOutput({ ok: true, data }, args.output || "json", args.fields ? args.fields.split(",") : undefined, args.full, testimonialNormalizer);
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
if (err instanceof ApiError) {
|
|
61
|
+
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
|
|
65
|
+
process.exit(1);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/testimonials/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const searchCommand: import("citty").CommandDef<{
|
|
2
|
+
readonly query: {
|
|
3
|
+
readonly type: "positional";
|
|
4
|
+
readonly description: "Search query text";
|
|
5
|
+
readonly required: false;
|
|
6
|
+
};
|
|
7
|
+
readonly limit: {
|
|
8
|
+
readonly type: "string";
|
|
9
|
+
readonly description: "Max results (default 10)";
|
|
10
|
+
readonly required: false;
|
|
11
|
+
};
|
|
12
|
+
readonly "rating-min": {
|
|
13
|
+
readonly type: "string";
|
|
14
|
+
readonly description: "Minimum star rating (1-5)";
|
|
15
|
+
readonly required: false;
|
|
16
|
+
};
|
|
17
|
+
readonly tags: {
|
|
18
|
+
readonly type: "string";
|
|
19
|
+
readonly description: "Comma-separated tags to filter by";
|
|
20
|
+
readonly required: false;
|
|
21
|
+
};
|
|
22
|
+
readonly output: {
|
|
23
|
+
readonly type: "string";
|
|
24
|
+
readonly description: "Output format: json|files|md";
|
|
25
|
+
readonly required: false;
|
|
26
|
+
readonly default: "json";
|
|
27
|
+
};
|
|
28
|
+
readonly fields: {
|
|
29
|
+
readonly type: "string";
|
|
30
|
+
readonly description: "Comma-separated field names to include";
|
|
31
|
+
readonly required: false;
|
|
32
|
+
};
|
|
33
|
+
readonly full: {
|
|
34
|
+
readonly type: "boolean";
|
|
35
|
+
readonly description: "Include full metadata";
|
|
36
|
+
readonly required: false;
|
|
37
|
+
readonly default: false;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/testimonials/search.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDxB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { defineCommand } from "citty";
|
|
2
|
+
import { ApiError, apiPost } from "../../client.js";
|
|
3
|
+
import { testimonialNormalizer, writeJson, writeOutput } from "../../output.js";
|
|
4
|
+
import { registerSchema } from "../../schemas.js";
|
|
5
|
+
registerSchema({
|
|
6
|
+
command: "testimonials.search",
|
|
7
|
+
description: "Search testimonials by text query. Uses hybrid BM25 + vector + reranking.",
|
|
8
|
+
args: {
|
|
9
|
+
query: { type: "string", description: "Search query text", required: true },
|
|
10
|
+
limit: { type: "number", description: "Maximum results to return", required: false, default: 10 },
|
|
11
|
+
"rating-min": { type: "number", description: "Minimum star rating (1-5)", required: false },
|
|
12
|
+
tags: { type: "string", description: "Comma-separated tags to filter by", required: false },
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
export const searchCommand = defineCommand({
|
|
16
|
+
meta: {
|
|
17
|
+
name: "search",
|
|
18
|
+
description: "Semantic search testimonials by text query. Uses hybrid BM25 + vector + reranking. Example: baker testimonials search 'great service' --rating-min 4",
|
|
19
|
+
},
|
|
20
|
+
args: {
|
|
21
|
+
query: { type: "positional", description: "Search query text", required: false },
|
|
22
|
+
limit: { type: "string", description: "Max results (default 10)", required: false },
|
|
23
|
+
"rating-min": { type: "string", description: "Minimum star rating (1-5)", required: false },
|
|
24
|
+
tags: { type: "string", description: "Comma-separated tags to filter by", required: false },
|
|
25
|
+
output: { type: "string", description: "Output format: json|files|md", required: false, default: "json" },
|
|
26
|
+
fields: { type: "string", description: "Comma-separated field names to include", required: false },
|
|
27
|
+
full: { type: "boolean", description: "Include full metadata", required: false, default: false },
|
|
28
|
+
},
|
|
29
|
+
run: async ({ args }) => {
|
|
30
|
+
try {
|
|
31
|
+
const query = args.query;
|
|
32
|
+
if (!query) {
|
|
33
|
+
writeJson({ ok: false, error: { code: "VALIDATION_ERROR", message: "Search query is required" } });
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
const body = { query };
|
|
37
|
+
if (args.limit) {
|
|
38
|
+
body.limit = Number(args.limit);
|
|
39
|
+
}
|
|
40
|
+
if (args["rating-min"]) {
|
|
41
|
+
body.rating_min = Number(args["rating-min"]);
|
|
42
|
+
}
|
|
43
|
+
if (args.tags) {
|
|
44
|
+
body.tags = args.tags.split(",").filter(Boolean);
|
|
45
|
+
}
|
|
46
|
+
const data = await apiPost("/api/testimonials/search", body);
|
|
47
|
+
writeOutput({ ok: true, data }, args.output || "json", args.fields ? args.fields.split(",") : undefined, args.full, testimonialNormalizer);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (err instanceof ApiError) {
|
|
51
|
+
writeJson({ ok: false, error: { code: err.code, message: err.message } });
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
writeJson({ ok: false, error: { code: "INTERNAL_ERROR", message: "Unexpected error" } });
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/testimonials/search.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
CHANGED
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAGA,KAAK,GAAG,GAAG;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC,CAAC;AAIF,wBAAgB,MAAM,IAAI,GAAG,CAe5B"}
|
package/dist/env.js
CHANGED
|
@@ -6,7 +6,11 @@ export function getEnv() {
|
|
|
6
6
|
cached = createEnv({
|
|
7
7
|
server: {
|
|
8
8
|
BAKER_API_KEY: z.string().startsWith("bk_", "API key must start with 'bk_'"),
|
|
9
|
-
BAKER_API_URL: z.
|
|
9
|
+
BAKER_API_URL: z.url("BAKER_API_URL must be a valid URL"),
|
|
10
|
+
BAKER_GOOGLE_ADS_CUSTOMER_ID: z
|
|
11
|
+
.string()
|
|
12
|
+
.regex(/^\d{10}$/)
|
|
13
|
+
.optional(),
|
|
10
14
|
},
|
|
11
15
|
runtimeEnv: process.env,
|
|
12
16
|
});
|
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,IAAI,MAAuB,CAAC;AAE5B,MAAM,UAAU,MAAM;IACpB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,SAAS,CAAC;YACjB,MAAM,EAAE;gBACN,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,+BAA+B,CAAC;gBAC5E,aAAa,EAAE,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC;gBACzD,4BAA4B,EAAE,CAAC;qBAC5B,MAAM,EAAE;qBACR,KAAK,CAAC,UAAU,CAAC;qBACjB,QAAQ,EAAE;aACd;YACD,UAAU,EAAE,OAAO,CAAC,GAAG;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/output.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ interface ImageCompact {
|
|
|
34
34
|
export declare function compactImage(image: Record<string, unknown>): ImageCompact;
|
|
35
35
|
export declare function fullImage(image: Record<string, unknown>): Record<string, unknown>;
|
|
36
36
|
export declare function videoNormalizer(record: Record<string, unknown>, full: boolean): Record<string, unknown>;
|
|
37
|
+
export declare function testimonialNormalizer(record: Record<string, unknown>, full: boolean): Record<string, unknown>;
|
|
37
38
|
export declare function applyFieldMask<T extends Record<string, unknown>>(data: T, fields: string[]): Partial<T>;
|
|
38
39
|
export declare function writeJson<T>(envelope: Envelope<T>): void;
|
|
39
40
|
export declare function writeOutput<T>(envelope: Envelope<T>, format: OutputFormat, fields?: string[], full?: boolean, normalizer?: Normalizer): void;
|
package/dist/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAEnD,UAAU,eAAe,CAAC,CAAC;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,cAAc,CAAC;AAEvE,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiB9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU1E;AAED,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAQzE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYjF;AAwCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKvG;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAQvG;AAMD,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAExD;AAyCD,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,OAAO,EACd,UAAU,CAAC,EAAE,UAAU,GACtB,IAAI,CAuBN"}
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAEnD,UAAU,eAAe,CAAC,CAAC;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/D;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,cAAc,CAAC;AAEvE,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiB9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU1E;AAED,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAQzE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYjF;AAwCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKvG;AA6CD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK7G;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAQvG;AAMD,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAExD;AAyCD,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,OAAO,EACd,UAAU,CAAC,EAAE,UAAU,GACtB,IAAI,CAuBN"}
|
package/dist/output.js
CHANGED
|
@@ -76,6 +76,43 @@ export function videoNormalizer(record, full) {
|
|
|
76
76
|
}
|
|
77
77
|
return compactVideo(record);
|
|
78
78
|
}
|
|
79
|
+
function truncate(text, maxLength) {
|
|
80
|
+
if (text.length <= maxLength)
|
|
81
|
+
return text;
|
|
82
|
+
return `${text.slice(0, maxLength)}...`;
|
|
83
|
+
}
|
|
84
|
+
function compactTestimonial(record) {
|
|
85
|
+
return {
|
|
86
|
+
_id: String(record._id ?? ""),
|
|
87
|
+
reviewerName: String(record.reviewerName ?? ""),
|
|
88
|
+
reviewText: truncate(String(record.reviewText ?? ""), 200),
|
|
89
|
+
rating: record.rating ?? null,
|
|
90
|
+
sentiment: record.sentiment ?? null,
|
|
91
|
+
tags: Array.isArray(record.tags) ? record.tags : [],
|
|
92
|
+
sourceType: String(record.sourceType ?? ""),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function fullTestimonial(record) {
|
|
96
|
+
const compact = compactTestimonial(record);
|
|
97
|
+
return {
|
|
98
|
+
...compact,
|
|
99
|
+
reviewText: String(record.reviewText ?? ""),
|
|
100
|
+
highlight: record.highlight ?? null,
|
|
101
|
+
summary: record.summary ?? null,
|
|
102
|
+
language: record.language ?? null,
|
|
103
|
+
reviewerImageUrl: record.reviewerImageUrl ?? null,
|
|
104
|
+
sourceUrl: record.sourceUrl ?? null,
|
|
105
|
+
reviewDate: record.reviewDate ?? null,
|
|
106
|
+
createdAt: record.createdAt ?? null,
|
|
107
|
+
status: String(record.status ?? ""),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
export function testimonialNormalizer(record, full) {
|
|
111
|
+
if (full) {
|
|
112
|
+
return fullTestimonial(record);
|
|
113
|
+
}
|
|
114
|
+
return compactTestimonial(record);
|
|
115
|
+
}
|
|
79
116
|
export function applyFieldMask(data, fields) {
|
|
80
117
|
const result = {};
|
|
81
118
|
for (const field of fields) {
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|