@clize/clize 0.32.0 → 0.33.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 +19 -17
- package/dist/cli.js +484 -373
- package/dist/cli.js.map +1 -1
- package/dist/core/addresses.js +12 -11
- package/dist/core/addresses.js.map +1 -1
- package/dist/core/analytics.js +6 -5
- package/dist/core/analytics.js.map +1 -1
- package/dist/core/authz.js +6 -5
- package/dist/core/authz.js.map +1 -1
- package/dist/core/billing.js +83 -12
- package/dist/core/billing.js.map +1 -1
- package/dist/core/credentials.js +3 -1
- package/dist/core/credentials.js.map +1 -1
- package/dist/core/dns.js +3 -2
- package/dist/core/dns.js.map +1 -1
- package/dist/core/domain-health.js +74 -50
- package/dist/core/domain-health.js.map +1 -1
- package/dist/core/domains.js +74 -44
- package/dist/core/domains.js.map +1 -1
- package/dist/core/email-tx.js +8 -6
- package/dist/core/email-tx.js.map +1 -1
- package/dist/core/email.js +13 -12
- package/dist/core/email.js.map +1 -1
- package/dist/core/env-detect.js +7 -14
- package/dist/core/env-detect.js.map +1 -1
- package/dist/core/handle.js +33 -30
- package/dist/core/handle.js.map +1 -1
- package/dist/core/install.js +114 -56
- package/dist/core/install.js.map +1 -1
- package/dist/core/media.js +37 -36
- package/dist/core/media.js.map +1 -1
- package/dist/core/payments.js +5 -4
- package/dist/core/payments.js.map +1 -1
- package/dist/core/projects.js +38 -26
- package/dist/core/projects.js.map +1 -1
- package/dist/core/redirect.js +4 -3
- package/dist/core/redirect.js.map +1 -1
- package/dist/core/serve.js +2 -1
- package/dist/core/serve.js.map +1 -1
- package/dist/core/setup.js +11 -9
- package/dist/core/setup.js.map +1 -1
- package/dist/core/shop.js +17 -16
- package/dist/core/shop.js.map +1 -1
- package/dist/core/site.js +2 -1
- package/dist/core/site.js.map +1 -1
- package/dist/core/sites.js +41 -40
- package/dist/core/sites.js.map +1 -1
- package/dist/core/triage.js +39 -5
- package/dist/core/triage.js.map +1 -1
- package/dist/core/video.js +45 -43
- package/dist/core/video.js.map +1 -1
- package/dist/github.js +4 -3
- package/dist/github.js.map +1 -1
- package/dist/i18n/t.js +65 -0
- package/dist/i18n/t.js.map +1 -0
- package/dist/i18n/zh.js +1265 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/index.js +61 -40
- package/dist/index.js.map +1 -1
- package/dist/lib/cloudflare.js +8 -7
- package/dist/lib/cloudflare.js.map +1 -1
- package/dist/lib/crypto.js +2 -1
- package/dist/lib/crypto.js.map +1 -1
- package/dist/lib/vercel.js +2 -1
- package/dist/lib/vercel.js.map +1 -1
- package/dist/lib/zone.js +2 -1
- package/dist/lib/zone.js.map +1 -1
- package/dist/mcp-profiles.js +5 -1
- package/dist/mcp-profiles.js.map +1 -1
- package/dist/providers/deploy/cloudflare.js +3 -2
- package/dist/providers/deploy/cloudflare.js.map +1 -1
- package/dist/providers/email/cloudflare-inbound.js +4 -3
- package/dist/providers/email/cloudflare-inbound.js.map +1 -1
- package/dist/providers/email/cloudflare-outbound.js +2 -1
- package/dist/providers/email/cloudflare-outbound.js.map +1 -1
- package/dist/providers/email/resend.js +3 -2
- package/dist/providers/email/resend.js.map +1 -1
- package/dist/providers/email/ses.js +3 -2
- package/dist/providers/email/ses.js.map +1 -1
- package/dist/providers/index.js +3 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/media/google.js +10 -9
- package/dist/providers/media/google.js.map +1 -1
- package/dist/providers/media/kie.js +12 -11
- package/dist/providers/media/kie.js.map +1 -1
- package/dist/providers/media/kunavo.js +10 -9
- package/dist/providers/media/kunavo.js.map +1 -1
- package/dist/providers/media/openai.js +5 -4
- package/dist/providers/media/openai.js.map +1 -1
- package/dist/providers/media/suno.js +7 -6
- package/dist/providers/media/suno.js.map +1 -1
- package/dist/providers/registrar/routing.js +2 -1
- package/dist/providers/registrar/routing.js.map +1 -1
- package/dist/providers/registrar/vercel.js +2 -1
- package/dist/providers/registrar/vercel.js.map +1 -1
- package/dist/providers/seo/dataforseo.js +5 -4
- package/dist/providers/seo/dataforseo.js.map +1 -1
- package/dist/providers/seo/gsc.js +5 -4
- package/dist/providers/seo/gsc.js.map +1 -1
- package/dist/remote.js +25 -22
- package/dist/remote.js.map +1 -1
- package/dist/selfcheck.js +23 -22
- package/dist/selfcheck.js.map +1 -1
- package/dist/state/file-store.js +17 -16
- package/dist/state/file-store.js.map +1 -1
- package/package.json +4 -3
- package/skills/clize/SKILL.md +171 -143
- package/skills/clize-seo/SKILL.md +2 -2
- package/skills/clize-site-build/SKILL.md +97 -41
- package/skills/clize-site-debug/SKILL.md +73 -45
package/dist/core/sites.js
CHANGED
|
@@ -7,6 +7,7 @@ import path from "node:path";
|
|
|
7
7
|
import { resolveDeployProject } from "./projects.js";
|
|
8
8
|
import { nameserversOnVercel } from "../lib/zone.js";
|
|
9
9
|
import { isPlatformHost, probeDelegation, probeHealthy, } from "./domain-health.js";
|
|
10
|
+
import { t } from "../i18n/t.js";
|
|
10
11
|
const SITE_WORKER = "clize-handle-site";
|
|
11
12
|
const SITE_KV_TITLE = "clize-sites";
|
|
12
13
|
const SITE_R2_BUCKET = "clize-site-assets"; // 大资产(≥128KB/媒体/>25MiB)存这;KV 只留热小文件
|
|
@@ -26,8 +27,8 @@ export function isR2Asset(relPath, size) {
|
|
|
26
27
|
* 否则自动判定 —— 有 404.html → 多页站 → 返 404.html + 真 404 状态;没有 → 当 SPA → 回退 index.html(200)。 */
|
|
27
28
|
/** 店面购物车运行时(同源 `/_clize/cart.js` 提供):localStorage 购物车 + data-clize-* 按钮委托 → `/_clize/checkout`。
|
|
28
29
|
* agent 只需在页里放 `<button data-clize-add="sku">` / `data-clize-checkout` / `data-clize-count` 并引这支脚本。 */
|
|
29
|
-
const SHOP_CART_JS = `(function(){var K="__clize_cart";function L(){try{return JSON.parse(localStorage.getItem(K))||[]}catch(e){return[]}}function S(c){localStorage.setItem(K,JSON.stringify(c));R()}function add(s,q){if(!s)return;var c=L(),f=c.find(function(i){return i.sku===s});if(f)f.quantity+=q||1;else c.push({sku:s,quantity:q||1});S(c)}function cnt(){return L().reduce(function(n,i){return n+i.quantity},0)}function R(){if(typeof document==="undefined")return;document.querySelectorAll("[data-clize-count]").forEach(function(el){el.textContent=String(cnt())})}async function co(){var items=L();if(!items.length){alert("
|
|
30
|
-
export const SITE_WORKER_SRC = `
|
|
30
|
+
const SHOP_CART_JS = `(function(){var K="__clize_cart";function L(){try{return JSON.parse(localStorage.getItem(K))||[]}catch(e){return[]}}function S(c){localStorage.setItem(K,JSON.stringify(c));R()}function add(s,q){if(!s)return;var c=L(),f=c.find(function(i){return i.sku===s});if(f)f.quantity+=q||1;else c.push({sku:s,quantity:q||1});S(c)}function cnt(){return L().reduce(function(n,i){return n+i.quantity},0)}function R(){if(typeof document==="undefined")return;document.querySelectorAll("[data-clize-count]").forEach(function(el){el.textContent=String(cnt())})}async function co(){var items=L();if(!items.length){alert("Your cart is empty");return}try{var r=await fetch("/_clize/checkout",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({items:items})});var d=await r.json();if(d&&d.checkoutUrl){localStorage.removeItem(K);location.href=d.checkoutUrl}else alert((d&&d.error)||"Checkout failed")}catch(e){alert("Checkout failed")}}if(typeof document!=="undefined"){document.addEventListener("click",function(e){var t=e.target;if(!t||!t.closest)return;var a=t.closest("[data-clize-add]");if(a){e.preventDefault();add(a.getAttribute("data-clize-add"),parseInt(a.getAttribute("data-clize-qty")||"1",10))}var c=t.closest("[data-clize-checkout]");if(c){e.preventDefault();co()}});if(document.readyState!=="loading")R();else document.addEventListener("DOMContentLoaded",R)}window.clizeCart={add:add,checkout:co,count:cnt,clear:function(){localStorage.removeItem(K);R()}}})();`;
|
|
31
|
+
export const SITE_WORKER_SRC = /* i18n-ignore: embedded worker source, comments only */ `
|
|
31
32
|
// CF Web Analytics(统一属性 sites.clize.ai;后台按 hostname 拆分各托管站)。token 是公开值,直接内联。
|
|
32
33
|
var BEACON_TOKEN = "e8668558620746debcb72066f06f8ce2";
|
|
33
34
|
function beaconTag(){ return "<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='" + JSON.stringify({ token: BEACON_TOKEN }) + "'></script>"; }
|
|
@@ -216,7 +217,7 @@ export async function ensureSiteInfra(ctx) {
|
|
|
216
217
|
}));
|
|
217
218
|
form.append("worker.js", new Blob([SITE_WORKER_SRC], { type: "application/javascript+module" }), "worker.js");
|
|
218
219
|
await ctx.cf.request("PUT", `/accounts/${ctx.cf.accountId}/workers/scripts/${SITE_WORKER}`, form);
|
|
219
|
-
return { worker: SITE_WORKER, kvNamespaceId: kvId, r2Bucket: SITE_R2_BUCKET, message: "
|
|
220
|
+
return { worker: SITE_WORKER, kvNamespaceId: kvId, r2Bucket: SITE_R2_BUCKET, message: t("Site infrastructure ready (shared worker + KV + R2)") };
|
|
220
221
|
}
|
|
221
222
|
/** 按目录核购物车:只认目录里的 sku + 目录价(客户端传的价一律忽略),返回可信 line items。
|
|
222
223
|
* 抛错 = 该单不该成(未知 sku / 价非正);纯函数,便于测。 */
|
|
@@ -225,9 +226,9 @@ export function priceCart(catalog, items) {
|
|
|
225
226
|
return items.map((it) => {
|
|
226
227
|
const p = it.sku ? bySku.get(it.sku) : undefined;
|
|
227
228
|
if (!p)
|
|
228
|
-
throw new Error(
|
|
229
|
+
throw new Error(t `No such product: ${it.sku ?? t("(empty)")}`);
|
|
229
230
|
if (!(Number(p.price) > 0))
|
|
230
|
-
throw new Error(
|
|
231
|
+
throw new Error(t `Product ${p.sku} has an invalid price`);
|
|
231
232
|
return {
|
|
232
233
|
name: p.name,
|
|
233
234
|
amountUsd: Number(p.price),
|
|
@@ -243,20 +244,20 @@ export function validateCatalogText(text) {
|
|
|
243
244
|
c = JSON.parse(text);
|
|
244
245
|
}
|
|
245
246
|
catch {
|
|
246
|
-
throw new Error("_catalog.json
|
|
247
|
+
throw new Error(t("_catalog.json is not valid JSON"));
|
|
247
248
|
}
|
|
248
249
|
if (!c || !Array.isArray(c.products) || !c.products.length)
|
|
249
|
-
throw new Error("_catalog.json
|
|
250
|
+
throw new Error(t("_catalog.json needs a non-empty products array"));
|
|
250
251
|
const seen = new Set();
|
|
251
252
|
for (const p of c.products) {
|
|
252
253
|
if (!p?.sku || typeof p.sku !== "string")
|
|
253
|
-
throw new Error("
|
|
254
|
+
throw new Error(t("Every product needs a string sku"));
|
|
254
255
|
if (!p.name || typeof p.name !== "string")
|
|
255
|
-
throw new Error(
|
|
256
|
+
throw new Error(t `Product ${p.sku} is missing name`);
|
|
256
257
|
if (!(Number(p.price) > 0))
|
|
257
|
-
throw new Error(
|
|
258
|
+
throw new Error(t `Product ${p.sku} needs a positive price`);
|
|
258
259
|
if (seen.has(p.sku))
|
|
259
|
-
throw new Error(`_catalog.json
|
|
260
|
+
throw new Error(t `_catalog.json has duplicate sku: ${p.sku}`);
|
|
260
261
|
seen.add(p.sku);
|
|
261
262
|
}
|
|
262
263
|
}
|
|
@@ -279,7 +280,7 @@ export async function readCatalog(ctx, host) {
|
|
|
279
280
|
parsed = JSON.parse(raw);
|
|
280
281
|
}
|
|
281
282
|
catch {
|
|
282
|
-
throw new Error(
|
|
283
|
+
throw new Error(t `The _catalog.json of ${host} is not valid JSON`);
|
|
283
284
|
}
|
|
284
285
|
return parsed && Array.isArray(parsed.products) ? parsed : null;
|
|
285
286
|
}
|
|
@@ -393,12 +394,12 @@ export async function ensureZoneActiveForHandle(ctx, host) {
|
|
|
393
394
|
if (zone.status === "active")
|
|
394
395
|
return zone.id;
|
|
395
396
|
}
|
|
396
|
-
const nsHint = cfNs.length ? cfNs.join(", ") : "
|
|
397
|
+
const nsHint = cfNs.length ? cfNs.join(", ") : t("see the CF dashboard");
|
|
397
398
|
throw new Error(isVercel
|
|
398
|
-
?
|
|
399
|
-
|
|
400
|
-
:
|
|
401
|
-
|
|
399
|
+
? t `Switched the NS of ${apex} to Cloudflare (${nsHint}), but the zone is still pending — ` +
|
|
400
|
+
t("registry / DNS propagation takes a few minutes; rerun deploy later to go live (the site content is already in KV and will not be lost).")
|
|
401
|
+
: t `The CF zone of ${apex} is ${zone.status}: the NS does not point at Cloudflare.` +
|
|
402
|
+
t `Change the NS at the registrar to ${nsHint}, then rerun deploy once it takes effect.`);
|
|
402
403
|
}
|
|
403
404
|
/** 绑定 host → 共享站点 worker。已绑定=幂等忽略;其他错误抛出,不再静默吞掉(避免"假成功")。 */
|
|
404
405
|
async function bindHandleDomain(ctx, host, zoneId) {
|
|
@@ -414,7 +415,7 @@ async function bindHandleDomain(ctx, host, zoneId) {
|
|
|
414
415
|
const msg = e instanceof Error ? e.message : String(e);
|
|
415
416
|
if (/already|exist|duplicate|conflict/i.test(msg))
|
|
416
417
|
return; // 已绑定 = 幂等成功
|
|
417
|
-
throw new Error(
|
|
418
|
+
throw new Error(t `Binding ${host} to the site worker failed: ${msg}`);
|
|
418
419
|
}
|
|
419
420
|
}
|
|
420
421
|
/** 把一个域绑定到共享站点 worker(确保基建在)。claim 后让 handle 显示占位页 —— 此阶段绑不上不致命。 */
|
|
@@ -461,13 +462,13 @@ function walk(dir) {
|
|
|
461
462
|
/** 读目录 → DeployFile[](fs 侧;CLI / MCP 用,worker 不调)。 */
|
|
462
463
|
export function readDirFiles(dir) {
|
|
463
464
|
if (!fs.existsSync(dir) || !fs.statSync(dir).isDirectory())
|
|
464
|
-
throw new Error(`${dir}
|
|
465
|
+
throw new Error(t `${dir} is not a directory (folder deploy needs a directory)`);
|
|
465
466
|
const files = walk(dir);
|
|
466
467
|
if (!files.length) {
|
|
467
468
|
// 目录本身非空但内容全被 hygiene 规则排除时,别笼统报「空目录」,点明是自动排除。
|
|
468
469
|
if (fs.readdirSync(dir).length)
|
|
469
|
-
throw new Error(
|
|
470
|
-
throw new Error(`${dir}
|
|
470
|
+
throw new Error(t `No deployable files in ${dir} (clize.json / .env* / .git / node_modules / .DS_Store etc. are excluded automatically)`);
|
|
471
|
+
throw new Error(t `${dir} is an empty directory`);
|
|
471
472
|
}
|
|
472
473
|
return files.map((f) => ({
|
|
473
474
|
path: "/" + path.relative(dir, f).split(path.sep).join("/"),
|
|
@@ -479,12 +480,12 @@ export function readDirFiles(dir) {
|
|
|
479
480
|
* 客户端据此算 hash 送 plan;分层决策(哪走 KV 哪走 R2)由服务端做,客户端只照单执行。 */
|
|
480
481
|
export function readDirManifest(dir) {
|
|
481
482
|
if (!fs.existsSync(dir) || !fs.statSync(dir).isDirectory())
|
|
482
|
-
throw new Error(`${dir}
|
|
483
|
+
throw new Error(t `${dir} is not a directory (folder deploy needs a directory)`);
|
|
483
484
|
const files = walk(dir);
|
|
484
485
|
if (!files.length) {
|
|
485
486
|
if (fs.readdirSync(dir).length)
|
|
486
|
-
throw new Error(
|
|
487
|
-
throw new Error(`${dir}
|
|
487
|
+
throw new Error(t `No deployable files in ${dir} (clize.json / .env* / .git / node_modules / .DS_Store etc. are excluded automatically)`);
|
|
488
|
+
throw new Error(t `${dir} is an empty directory`);
|
|
488
489
|
}
|
|
489
490
|
return files.map((f) => ({
|
|
490
491
|
path: "/" + path.relative(dir, f).split(path.sep).join("/"),
|
|
@@ -496,20 +497,20 @@ export function readDirManifest(dir) {
|
|
|
496
497
|
/** deploy 输出里对「未知路径如何处理」的人话说明(P1 #4:让做 SEO 的人能预期 404 行为)。 */
|
|
497
498
|
function notFoundNote(mode, has404) {
|
|
498
499
|
if (mode === "spa")
|
|
499
|
-
return "
|
|
500
|
+
return t("; unknown paths fall back to the home page (SPA)");
|
|
500
501
|
if (mode === "404-page")
|
|
501
|
-
return has404 ? "
|
|
502
|
+
return has404 ? t("; unknown paths return 404.html (real 404)") : t("; unknown paths return a minimal 404 (no 404.html in this deploy)");
|
|
502
503
|
if (mode === "none")
|
|
503
|
-
return "
|
|
504
|
+
return t("; unknown paths return a minimal 404");
|
|
504
505
|
return has404
|
|
505
|
-
? "
|
|
506
|
-
: "
|
|
506
|
+
? t("; 404.html detected → unknown paths return a real 404 (SEO-friendly)")
|
|
507
|
+
: t("; unknown paths fall back to the home page (no 404.html; for a real 404 add a 404.html, or pass --not-found 404-page)");
|
|
507
508
|
}
|
|
508
509
|
/** 核心:把已读好的文件写进 KV(`host/relpath`)+ 绑定该域到共享 worker。无 fs,本地与云上共用。 */
|
|
509
510
|
export async function deployFilesToHandle(ctx, handle, files, opts = {}) {
|
|
510
511
|
const host = handle.toLowerCase();
|
|
511
512
|
if (!files.length)
|
|
512
|
-
throw new Error("
|
|
513
|
+
throw new Error(t("No files to deploy"));
|
|
513
514
|
// 店面目录:deploy 前校验 _catalog.json,坏目录别上线(否则要到 checkout 才 422)。
|
|
514
515
|
const catFile = files.find((f) => f.path.replace(/^\//, "").toLowerCase() === "_catalog.json");
|
|
515
516
|
if (catFile) {
|
|
@@ -518,7 +519,7 @@ export async function deployFilesToHandle(ctx, handle, files, opts = {}) {
|
|
|
518
519
|
text = new TextDecoder().decode(Uint8Array.from(atob(catFile.base64), (ch) => ch.charCodeAt(0)));
|
|
519
520
|
}
|
|
520
521
|
catch {
|
|
521
|
-
throw new Error("_catalog.json
|
|
522
|
+
throw new Error(t("Failed to decode _catalog.json"));
|
|
522
523
|
}
|
|
523
524
|
validateCatalogText(text);
|
|
524
525
|
}
|
|
@@ -605,15 +606,15 @@ export async function deployFilesToHandle(ctx, handle, files, opts = {}) {
|
|
|
605
606
|
reachability = await probeDelegation(host);
|
|
606
607
|
if (reachability.delegation !== "error" && !probeHealthy(reachability)) {
|
|
607
608
|
const why = reachability.delegation === "elsewhere"
|
|
608
|
-
?
|
|
609
|
+
? t `registry NS delegation points at ${reachability.nameservers.join(", ")} (not Cloudflare)`
|
|
609
610
|
: reachability.nxdomain
|
|
610
|
-
? "
|
|
611
|
+
? t("the registry returns NXDOMAIN for the domain (no delegation record)")
|
|
611
612
|
: reachability.delegation === "cloudflare"
|
|
612
|
-
? `NS
|
|
613
|
-
: "
|
|
613
|
+
? t `NS delegation is fine but ${host} resolves no records`
|
|
614
|
+
: t("no NS delegation found at the authoritative side");
|
|
614
615
|
warning =
|
|
615
|
-
`⚠️
|
|
616
|
-
|
|
616
|
+
t `⚠️ Files deployed, but ${host} is currently unreachable from the public internet: ${why}.` +
|
|
617
|
+
t `The content is in KV and will not be lost; if the domain was just added (NS propagating) wait and recheck, otherwise run \`clize domain check ${host}\` now for a layered diagnosis.`;
|
|
617
618
|
}
|
|
618
619
|
}
|
|
619
620
|
const has404 = files.some((f) => f.path.toLowerCase() === "/404.html");
|
|
@@ -624,13 +625,13 @@ export async function deployFilesToHandle(ctx, handle, files, opts = {}) {
|
|
|
624
625
|
// 真实所属项目 + 是否按域重路由 —— CLI 据 project 回写 clize.json(消除本地↔远端漂移)。
|
|
625
626
|
...(routed.project ? { project: routed.project } : {}),
|
|
626
627
|
...(routed.rerouted
|
|
627
|
-
? { rerouted:
|
|
628
|
+
? { rerouted: t `Deployed to the domain's real project "${routed.project}" (stale checkout "${routed.checkout}" ignored)` }
|
|
628
629
|
: {}),
|
|
629
|
-
notFound: mode || (has404 ? "404-page(
|
|
630
|
+
notFound: mode || (has404 ? t("404-page (auto)") : t("spa (auto)")),
|
|
630
631
|
// 公网可达性探测结论(权威 DoH 视角;delegation=cloudflare 且 resolves=true 为健康)。
|
|
631
632
|
...(reachability ? { reachability } : {}),
|
|
632
633
|
...(warning ? { warning } : {}),
|
|
633
|
-
message:
|
|
634
|
+
message: t `Live at https://${host} (${files.length} files; TLS automatic)${notFoundNote(mode, has404)}${warning ? t(" ⚠️ but public reachability is broken, see warning") : ""}`,
|
|
634
635
|
};
|
|
635
636
|
}
|
|
636
637
|
/** 把一个目录部署到 clize.app handle(本地:读 fs + 直接 CF)。 */
|
package/dist/core/sites.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/core/sites.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/core/sites.ts"],"names":[],"mappings":"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"}
|
package/dist/core/triage.js
CHANGED
|
@@ -30,7 +30,10 @@ export function extractSignals(headers) {
|
|
|
30
30
|
const FREE_MAIL = /@(gmail|googlemail|outlook|hotmail|live|yahoo|ymail|aol|icloud|proton|protonmail|zoho|gmx|mail)\.(com|me|net|org|co\.uk)$/i;
|
|
31
31
|
const OTP_SUBJECT = /\b(verif(y|ication)|confirm(ation)?|one[- ]time|otp|passcode|security code|login code|sign[- ]in code|magic link|activate)\b|验证码|校验码|验证你的|确认你的/i;
|
|
32
32
|
const OTP_CODE = /\b\d{4,8}\b/;
|
|
33
|
-
//
|
|
33
|
+
// R1:没人能回复的发件人(no-reply / 通知 / 退信机器人)永远不算「在等你回」。验证码判定在它之前,
|
|
34
|
+
// 所以 noreply 发来的验证码仍是 otp。用户 mark ham 更在前,人工裁定照旧压过一切。
|
|
35
|
+
const NOREPLY_SENDER = /^(no-?reply|noreply|do-?not-?reply|donotreply|notifications?|alerts?|mailer-daemon|postmaster|bounces?)([+.\-_][^@]*)?@/i;
|
|
36
|
+
// 冷推广 / 外包骚扰(线上入站样本的真实模式):围着「你的网站」打转,发件人多为免费邮箱或代理域。
|
|
34
37
|
const COLD_OUTREACH = [
|
|
35
38
|
/\b(regarding|about|concerning( to)?)\s+(your\s+)?[\w.-]+\.(com|app|io|ai|net|org)\b/i,
|
|
36
39
|
/\b(fixing|improve|improving|redesign|re-design|design|revamp)\b.*\b(website|site|web)\b/i,
|
|
@@ -41,13 +44,34 @@ const COLD_OUTREACH = [
|
|
|
41
44
|
/\bapp requirements?\b/i,
|
|
42
45
|
/\bquick (note|question|proposal)\b/i,
|
|
43
46
|
/\b(are you ready|do you want to|would you like to)\b.*\?/i,
|
|
47
|
+
// R3(2026-09 样本):搜索引擎收录推销、「提升你的 X」模板、投稿 / 外链交换、自封的客户经理、网站改版概念稿、DR 冷邮
|
|
48
|
+
/\b(search engines?|google'?s? (search )?index|showing up (in|on) google|get (found|listed|indexed) (on|in) google|(1st|first) page of google)\b/i,
|
|
49
|
+
/\b(unlock|streamline|elevate|boost|grow|scale|transform|supercharge) your (potential|processes|business|operations|brand|revenue|sales|traffic|online presence|growth)\b/i,
|
|
50
|
+
/\b(article ideas|guest post|sponsored (post|article|content)|link (exchange|insertion|building)|write for (you|your)|content collaboration|paid (post|placement))\b/i,
|
|
51
|
+
/\b(i'?ll be your|i will be your|your (new |dedicated )?(account manager|agent|point of contact|success manager))\b/i,
|
|
52
|
+
/\b(fresh look|new look|makeover|mock-?up|concept)\b.*\b(website|site|homepage)\b|\b(website|site|homepage)\b.*\b(fresh look|new look|makeover|mock-?up|concept)\b/i,
|
|
53
|
+
/\bDR for\b|\bdomain (rating|authority)\b|\bcold email\b/i,
|
|
44
54
|
];
|
|
45
|
-
|
|
55
|
+
// R2:主题里出现收件方自己的域名 + 模板动词(推销员把域名当变量塞进主题;真客户说「你们的产品」)。
|
|
56
|
+
// 只看主题、要求动词,避免误杀「Question about acme.com pricing」这类真客户来信。
|
|
57
|
+
const OWN_DOMAIN_VERBS = /\b(submit(ting)?|register(ing)?|index(ing)?|rank(ing)?|showing up|get found|fresh look|new look|makeover|redesign|mock-?up|concept|audit|proposal|quote for|services? for|not (showing|ranking|appearing))\b/i;
|
|
58
|
+
const PROMO_WORDS = /\b(\d+\s*% off|sale|discount|deal|offer ends|last (day|chance)|limited time|webinar|save (up to|\$)|free trial|buy now|coupon|black friday|cyber monday|early[- ]bird|register (now|today)|see you (in|at)|join us (in|at)|meet (us|the team) (in|at)|off your next order)\b|\$\s?\d+\s*off\b/i;
|
|
46
59
|
const SCAM_WORDS = /\b(recover your (lost )?funds|lottery|inheritance|wire transfer|bitcoin wallet|database for sale|million leads|urgent response|dear (beneficiary|winner))\b/i;
|
|
47
60
|
const NOTICE_SENDER = /^(no-?reply|noreply|notification[s]?|alerts?|billing|receipts?|invoice[s]?|support|security|account[s]?|team|hello|info)@/i;
|
|
48
|
-
const NOTICE_SUBJECT = /\b(receipt|invoice|payment (received|failed)|your (order|account|subscription|password|statement)|order (confirmation|shipped)|welcome to|has been (updated|changed|shipped|delivered)|security alert|new sign[- ]in|action required)\b/i;
|
|
61
|
+
const NOTICE_SUBJECT = /\b(receipt|invoice|payment (received|failed)|your (order|account|subscription|password|statement)|order (confirmation|shipped)|welcome to|has been (updated|changed|shipped|delivered)|security alert|new sign[- ]in|action required|expir(e|es|ed|ing|ation)|renew(al|s|ed)?|auto-?renew|domain (transfer|lock|expiration)|invoice (due|overdue)|payment reminder)\b/i;
|
|
49
62
|
const FAKE_REPLY = /^\s*re:\s*/i;
|
|
50
|
-
|
|
63
|
+
function escapeRegExp(s) {
|
|
64
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
65
|
+
}
|
|
66
|
+
/** R2:主题含收件方自家域名(整词)且含模板动词。 */
|
|
67
|
+
function ownDomainTemplate(subject, mailbox) {
|
|
68
|
+
const dom = (mailbox.split("@")[1] || "").toLowerCase();
|
|
69
|
+
if (!dom || !subject)
|
|
70
|
+
return false;
|
|
71
|
+
const mention = new RegExp(`(^|[^a-z0-9-])${escapeRegExp(dom)}(?![a-z0-9-])`, "i");
|
|
72
|
+
return mention.test(subject) && OWN_DOMAIN_VERBS.test(subject);
|
|
73
|
+
}
|
|
74
|
+
/** 分类。顺序 = 优先级:人工裁定 > self > 已知联系人 > 验证码 > noreply(永不在等)> 垃圾 > 推广 / 冷推广 > 通知 > 真人(兜底)。 */
|
|
51
75
|
export function classify(input) {
|
|
52
76
|
const from = (input.from || "").toLowerCase();
|
|
53
77
|
const fromAddr = (from.match(/<([^>]+)>/)?.[1] || from).trim();
|
|
@@ -68,9 +92,19 @@ export function classify(input) {
|
|
|
68
92
|
// 验证码 / 登录链接:主题含验证类词 + 正文有 4–8 位数字或"verify"链接语义
|
|
69
93
|
if (OTP_SUBJECT.test(subject) && (OTP_CODE.test(text) || /verif|confirm|activate|magic link/i.test(subject)))
|
|
70
94
|
return { class: "otp", by: "rule", reason: "otp:subject+code" };
|
|
95
|
+
const cold = COLD_OUTREACH.some((re) => re.test(subject)) ||
|
|
96
|
+
COLD_OUTREACH.some((re) => re.test(input.snippet || "")) ||
|
|
97
|
+
ownDomainTemplate(subject, input.mailbox);
|
|
98
|
+
// R1:noreply / 通知机器人 —— 没人在那头等回复。通知主题归 notice,促销 / 冷推广归 promo,其余 notice。
|
|
99
|
+
if (NOREPLY_SENDER.test(fromAddr)) {
|
|
100
|
+
if (NOTICE_SUBJECT.test(subject))
|
|
101
|
+
return { class: "notice", by: "rule", reason: "notice:noreply+system" };
|
|
102
|
+
if (cold || PROMO_WORDS.test(subject))
|
|
103
|
+
return { class: "promo", by: "rule", reason: "promo:noreply" };
|
|
104
|
+
return { class: "notice", by: "rule", reason: "notice:noreply" };
|
|
105
|
+
}
|
|
71
106
|
if (SCAM_WORDS.test(text) || (authFail && FREE_MAIL.test(fromAddr) && FAKE_REPLY.test(subject)))
|
|
72
107
|
return { class: "spam", by: "rule", reason: authFail ? "spam:auth-fail+pattern" : "spam:scam-words" };
|
|
73
|
-
const cold = COLD_OUTREACH.some((re) => re.test(subject)) || COLD_OUTREACH.some((re) => re.test(input.snippet || ""));
|
|
74
108
|
const fakeReply = FAKE_REPLY.test(subject) && !sig.inReplyTo && !sig.references;
|
|
75
109
|
if (cold)
|
|
76
110
|
return { class: "promo", by: "rule", reason: "promo:cold-outreach" };
|
package/dist/core/triage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/core/triage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/core/triage.ts"],"names":[],"mappings":"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"}
|