@ttt-productions/moderation-core 0.2.1 → 0.3.1

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.
@@ -54,7 +54,7 @@ export async function perspectiveCheck(text, options) {
54
54
  const f = options.fetchImpl ?? fetch;
55
55
  if (!apiKey) {
56
56
  logger?.warn?.("[moderation-core] Perspective API key not provided; skipping Layer 2");
57
- return { safe: true };
57
+ return { safe: true, perspectiveStatus: "skipped_no_key" };
58
58
  }
59
59
  try {
60
60
  const response = await f(`https://commentanalyzer.googleapis.com/v1alpha1/comments:analyze?key=${apiKey}`, {
@@ -76,7 +76,7 @@ export async function perspectiveCheck(text, options) {
76
76
  if (!response.ok) {
77
77
  const errorText = await response.text();
78
78
  logger?.error?.(`Perspective API error: ${response.status} - ${errorText}`);
79
- return { safe: true };
79
+ return { safe: true, perspectiveStatus: "error" };
80
80
  }
81
81
  const data = (await response.json());
82
82
  const get = (k) => data.attributeScores?.[k]?.summaryScore?.value ?? 0;
@@ -89,22 +89,22 @@ export async function perspectiveCheck(text, options) {
89
89
  threat: get("THREAT"),
90
90
  };
91
91
  if (scores.severeToxicity > thresholds.severeToxicity) {
92
- return { safe: false, reason: "Content contains severe toxicity", scores, layer: "perspective" };
92
+ return { safe: false, reason: "Content contains severe toxicity", scores, layer: "perspective", perspectiveStatus: "ran" };
93
93
  }
94
94
  if (scores.identityAttack > thresholds.identityAttack) {
95
- return { safe: false, reason: "Content contains hate speech or identity-based attacks", scores, layer: "perspective" };
95
+ return { safe: false, reason: "Content contains hate speech or identity-based attacks", scores, layer: "perspective", perspectiveStatus: "ran" };
96
96
  }
97
97
  if (scores.threat > thresholds.threat) {
98
- return { safe: false, reason: "Content contains threats", scores, layer: "perspective" };
98
+ return { safe: false, reason: "Content contains threats", scores, layer: "perspective", perspectiveStatus: "ran" };
99
99
  }
100
100
  if (scores.toxicity > thresholds.toxicity) {
101
- return { safe: false, reason: "Content is too toxic", scores, layer: "perspective" };
101
+ return { safe: false, reason: "Content is too toxic", scores, layer: "perspective", perspectiveStatus: "ran" };
102
102
  }
103
- return { safe: true, scores };
103
+ return { safe: true, scores, perspectiveStatus: "ran" };
104
104
  }
105
105
  catch (error) {
106
106
  logger?.error?.("[moderation-core] Perspective API request failed:", error);
107
- return { safe: true };
107
+ return { safe: true, perspectiveStatus: "error" };
108
108
  }
109
109
  }
110
110
  /**
@@ -137,6 +137,6 @@ export async function moderateText(text, options) {
137
137
  });
138
138
  if (!perspectiveResult.safe)
139
139
  return perspectiveResult;
140
- return { safe: true, scores: perspectiveResult.scores };
140
+ return { safe: true, scores: perspectiveResult.scores, perspectiveStatus: perspectiveResult.perspectiveStatus };
141
141
  }
142
142
  //# sourceMappingURL=text-moderation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-moderation.js","sourceRoot":"","sources":["../../src/server/text-moderation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-moderation.js","sourceRoot":"","sources":["../../src/server/text-moderation.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -24,6 +24,17 @@ export interface TextModerationResult {
24
24
  flaggedWords?: string[];
25
25
  scores?: PerspectiveScores;
26
26
  layer?: "word_filter" | "perspective";
27
+ /**
28
+ * Status of the Perspective (Layer 2) check, so the caller can apply its own
29
+ * availability policy. Absent when Perspective wasn't reached (empty/too-short
30
+ * text, or a word-filter rejection). The package always fails OPEN itself
31
+ * (`safe: true`) when Perspective is unavailable — the caller decides whether
32
+ * a missing key or an API error should instead block or alert.
33
+ * - `'ran'` — Perspective was called and returned scores.
34
+ * - `'skipped_no_key'` — no API key was provided (Layer 2 did not run).
35
+ * - `'error'` — Perspective returned non-OK or threw.
36
+ */
37
+ perspectiveStatus?: "ran" | "skipped_no_key" | "error";
27
38
  }
28
39
  export interface PerspectiveThresholds {
29
40
  toxicity: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,eAAe,GACf,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACvD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,eAAe,GACf,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC;IACtC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,KAAK,GAAG,gBAAgB,GAAG,OAAO,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACvD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttt-productions/moderation-core",
3
- "version": "0.2.1",
3
+ "version": "0.3.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ttt-productions/ttt-packages.git",