siluzan-tso-cli 1.1.48-beta.10 → 1.1.48-beta.12
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 +1 -1
- package/dist/index.js +74 -3
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/scripts/install.ps1 +1 -1
- package/dist/skill/scripts/install.sh +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
|
|
|
51
51
|
siluzan-tso init --force # 强制覆盖已存在文件
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
> **注意**:当前为测试版(1.1.48-beta.
|
|
54
|
+
> **注意**:当前为测试版(1.1.48-beta.12),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
|
|
55
55
|
|
|
56
56
|
| 助手 | 建议 `--ai` |
|
|
57
57
|
| ----------------------- | ------------------------------------ |
|
package/dist/index.js
CHANGED
|
@@ -133066,24 +133066,94 @@ function genderLabel(gender) {
|
|
|
133066
133066
|
if (g === "female") return "female";
|
|
133067
133067
|
return str(gender) || "unknown";
|
|
133068
133068
|
}
|
|
133069
|
+
function enumKey(raw) {
|
|
133070
|
+
return raw.toLowerCase().replace(/[\s_\-./]+/g, "");
|
|
133071
|
+
}
|
|
133072
|
+
var RESULT_TYPE_ZH = {
|
|
133073
|
+
linkclick: "\u94FE\u63A5\u70B9\u51FB",
|
|
133074
|
+
landingpageview: "\u843D\u5730\u9875\u6D4F\u89C8",
|
|
133075
|
+
pageengagement: "\u516C\u5171\u4E3B\u9875\u4E92\u52A8",
|
|
133076
|
+
postengagement: "\u5E16\u5B50\u4E92\u52A8",
|
|
133077
|
+
videoview: "\u89C6\u9891\u64AD\u653E",
|
|
133078
|
+
purchase: "\u8D2D\u7269",
|
|
133079
|
+
addtocart: "\u52A0\u5165\u8D2D\u7269\u8F66",
|
|
133080
|
+
initiatecheckout: "\u53D1\u8D77\u7ED3\u8D26",
|
|
133081
|
+
completeregistration: "\u5B8C\u6210\u6CE8\u518C",
|
|
133082
|
+
viewcontent: "\u67E5\u770B\u5185\u5BB9",
|
|
133083
|
+
appinstall: "\u5E94\u7528\u5B89\u88C5",
|
|
133084
|
+
mobileappinstall: "\u5E94\u7528\u5B89\u88C5"
|
|
133085
|
+
};
|
|
133086
|
+
var OBJECTIVE_ZH = {
|
|
133087
|
+
outcomeawareness: "\u77E5\u540D\u5EA6",
|
|
133088
|
+
outcomeengagement: "\u4E92\u52A8",
|
|
133089
|
+
outcomeleads: "\u6F5C\u5728\u5BA2\u6237",
|
|
133090
|
+
outcomesales: "\u9500\u91CF",
|
|
133091
|
+
outcometraffic: "\u6D41\u91CF",
|
|
133092
|
+
outcomeapppromotion: "\u5E94\u7528\u63A8\u5E7F",
|
|
133093
|
+
brandawareness: "\u54C1\u724C\u77E5\u540D\u5EA6",
|
|
133094
|
+
reach: "\u8986\u76D6\u4EBA\u6570",
|
|
133095
|
+
traffic: "\u6D41\u91CF",
|
|
133096
|
+
linkclicks: "\u94FE\u63A5\u70B9\u51FB",
|
|
133097
|
+
engagement: "\u4E92\u52A8",
|
|
133098
|
+
postengagement: "\u5E16\u5B50\u4E92\u52A8",
|
|
133099
|
+
leadgeneration: "\u6F5C\u5728\u5BA2\u6237",
|
|
133100
|
+
conversions: "\u8F6C\u5316",
|
|
133101
|
+
appinstalls: "\u5E94\u7528\u5B89\u88C5",
|
|
133102
|
+
videoviews: "\u89C6\u9891\u64AD\u653E",
|
|
133103
|
+
messages: "\u6D88\u606F",
|
|
133104
|
+
catalogsales: "\u76EE\u5F55\u9500\u552E"
|
|
133105
|
+
};
|
|
133069
133106
|
function displayResultType(raw) {
|
|
133070
133107
|
const v = str(raw);
|
|
133071
133108
|
if (!v) return "";
|
|
133072
|
-
const key = v
|
|
133109
|
+
const key = enumKey(v);
|
|
133073
133110
|
if (key === "lead" || key === "leads" || key.includes("leadgrouped") || key.includes("instantform") || key === "onsiteconversionleadgrouped") {
|
|
133074
133111
|
return "\u6F5C\u5728\u5BA2\u6237\u4FE1\u606F\uFF08\u8868\u5355\uFF09\u91CF";
|
|
133075
133112
|
}
|
|
133076
|
-
return v;
|
|
133113
|
+
return RESULT_TYPE_ZH[key] ?? v;
|
|
133114
|
+
}
|
|
133115
|
+
function displayObjective(raw) {
|
|
133116
|
+
const v = str(raw);
|
|
133117
|
+
if (!v) return "";
|
|
133118
|
+
return OBJECTIVE_ZH[enumKey(v)] ?? v;
|
|
133077
133119
|
}
|
|
133078
133120
|
function displayAttribution(raw) {
|
|
133079
133121
|
const v = str(raw);
|
|
133080
133122
|
if (!v) return "";
|
|
133081
|
-
const key = v
|
|
133123
|
+
const key = enumKey(v);
|
|
133082
133124
|
if (key === "multiple" || key === "7dclick" || key === "7dclick1dview" || key.includes("7dclick") || key.includes("7dayclick")) {
|
|
133083
133125
|
return "\u70B9\u51FB\u540E 7 \u5929\u5185\u6216\u6D4F\u89C8\u540E 1 \u5929\u5185";
|
|
133084
133126
|
}
|
|
133127
|
+
if (key === "1dclick1dview" || key === "1dclickor1dview") {
|
|
133128
|
+
return "\u70B9\u51FB\u540E 1 \u5929\u5185\u6216\u6D4F\u89C8\u540E 1 \u5929\u5185";
|
|
133129
|
+
}
|
|
133130
|
+
if (key === "1dclick") return "\u70B9\u51FB\u540E 1 \u5929\u5185";
|
|
133131
|
+
if (key === "1dview") return "\u6D4F\u89C8\u540E 1 \u5929\u5185";
|
|
133132
|
+
if (key === "7dview") return "\u6D4F\u89C8\u540E 7 \u5929\u5185";
|
|
133133
|
+
if (key === "28dclick") return "\u70B9\u51FB\u540E 28 \u5929\u5185";
|
|
133085
133134
|
return v;
|
|
133086
133135
|
}
|
|
133136
|
+
function localizeMetricLabels(row) {
|
|
133137
|
+
if (!row) return;
|
|
133138
|
+
if (row.resultType != null) row.resultType = displayResultType(row.resultType);
|
|
133139
|
+
if (row.attributionSetting != null) {
|
|
133140
|
+
row.attributionSetting = displayAttribution(row.attributionSetting);
|
|
133141
|
+
}
|
|
133142
|
+
if (row.objective != null) row.objective = displayObjective(row.objective);
|
|
133143
|
+
}
|
|
133144
|
+
function localizeFacebookReportLabels(payload) {
|
|
133145
|
+
localizeMetricLabels(payload.meta);
|
|
133146
|
+
localizeMetricLabels(payload.kpis);
|
|
133147
|
+
const tables = payload.tables;
|
|
133148
|
+
if (!tables) return payload;
|
|
133149
|
+
for (const rows of Object.values(tables)) {
|
|
133150
|
+
if (!Array.isArray(rows)) continue;
|
|
133151
|
+
for (const row of rows) {
|
|
133152
|
+
localizeMetricLabels(asRecord14(row));
|
|
133153
|
+
}
|
|
133154
|
+
}
|
|
133155
|
+
return payload;
|
|
133156
|
+
}
|
|
133087
133157
|
function hasResults(row) {
|
|
133088
133158
|
const n = num3(row.results);
|
|
133089
133159
|
return n != null && n > 0;
|
|
@@ -133830,6 +133900,7 @@ async function runFacebookAnalysisRender(opts) {
|
|
|
133830
133900
|
if (opts.snapshotDir?.trim()) {
|
|
133831
133901
|
data = await mergeFacebookSnapshotIntoReport(data, path34.resolve(opts.snapshotDir));
|
|
133832
133902
|
}
|
|
133903
|
+
localizeFacebookReportLabels(data);
|
|
133833
133904
|
const contentCheck = validateMetaPeriodReportContent(data);
|
|
133834
133905
|
if (!contentCheck.ok) {
|
|
133835
133906
|
console.error(`
|
package/dist/skill/_meta.json
CHANGED
|
@@ -9,7 +9,7 @@ $ErrorActionPreference = 'Stop'
|
|
|
9
9
|
# -- Package info (injected at build time) ------------------------------------
|
|
10
10
|
$PKG_NAME = 'siluzan-tso-cli'
|
|
11
11
|
# PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
|
|
12
|
-
$PKG_VERSION = '1.1.48-beta.
|
|
12
|
+
$PKG_VERSION = '1.1.48-beta.12'
|
|
13
13
|
$CLI_BIN = 'siluzan-tso'
|
|
14
14
|
$SKILL_LABEL = 'Siluzan TSO'
|
|
15
15
|
$INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
|
|
@@ -9,7 +9,7 @@ set -euo pipefail
|
|
|
9
9
|
# -- Package info (injected at build time) ------------------------------------
|
|
10
10
|
readonly PKG_NAME="siluzan-tso-cli"
|
|
11
11
|
# PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
|
|
12
|
-
readonly PKG_VERSION="1.1.48-beta.
|
|
12
|
+
readonly PKG_VERSION="1.1.48-beta.12"
|
|
13
13
|
readonly CLI_BIN="siluzan-tso"
|
|
14
14
|
readonly SKILL_LABEL="Siluzan TSO"
|
|
15
15
|
readonly INSTALL_CMD="npm install -g siluzan-tso-cli@beta"
|