@calmlens/sdk 0.14.0 → 0.15.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 CHANGED
@@ -631,7 +631,7 @@ The SDK does not validate responses against its types, so fields and values adde
631
631
 
632
632
  ## Testing
633
633
 
634
- `@calmlens/sdk/testing` exports `MockCalmLensServerClient`, an in-memory stand-in for `CalmLensServerClient`,, in-memory storage implementations, mock API key helpers, webhook delivery builders and `generateMediaTestCode`, for testing without network requests.
634
+ `@calmlens/sdk/testing` exports `MockCalmLensServerClient`, an in-memory stand-in for `CalmLensServerClient`,, in-memory storage implementations, mock API key helpers, webhook delivery builders and `generateMediaTestCode`, for testing without network requests. `generateMediaTestCode(signal, testInputKey)` returns the spoken or on-screen test phrase for your project's secret test input key, shown under **Assets → Try test inputs** in the portal; a phrase with another project's key is moderated normally.
635
635
 
636
636
  The `@calmlens/sdk`, `/server` and `/app` entry points do not load or export testing helpers, to keep production bundles small. Keep `/testing` imports in test files.
637
637
 
@@ -1,5 +1,5 @@
1
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
2
- const require_CalmLensUtils = require("./CalmLensUtils-DNdmYeX6.js");
1
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
2
+ const require_CalmLensUtils = require("./CalmLensUtils-Cv1Ylp9-.js");
3
3
  //#region src/client/CalmLensConnection.ts
4
4
  const DEFAULT_TIMEOUT_MS = 12e4;
5
5
  const DEFAULT_MAX_RETRIES = 2;
@@ -1,4 +1,4 @@
1
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
1
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
2
2
  const MAX_IMAGE_UPLOAD_BYTES = /* @__PURE__ */ (() => 20971520)();
3
3
  const MIN_MULTIPART_IMAGE_UPLOAD_BYTES = /* @__PURE__ */ (() => 10485760)();
4
4
  const REJECTED_UPLOAD_MIME_TYPE_SET = /* @__PURE__ */ new Set([
@@ -390,7 +390,7 @@ const invalidConfig = (message) => new CalmLensError(SDK_ERROR_CODES.INVALID_CON
390
390
  //#endregion
391
391
  //#region src/client/CalmLensVersion.ts
392
392
  /** This SDK's version, from its package.json. */
393
- const SDK_VERSION = "0.14.0";
393
+ const SDK_VERSION = "0.15.0";
394
394
  const runtimeName = () => {
395
395
  const runtime = globalThis;
396
396
  if (isReactNativeRuntime()) return "react-native";
@@ -1,5 +1,5 @@
1
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
2
- const require_CalmLensUtils = require("./CalmLensUtils-DNdmYeX6.js");
1
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
2
+ const require_CalmLensUtils = require("./CalmLensUtils-Cv1Ylp9-.js");
3
3
  //#region ../shared/src/JsonUtils.ts
4
4
  const stringifyJsonCanonical = (value) => JSON.stringify(value, (_key, nestedValue) => {
5
5
  if (!nestedValue || typeof nestedValue !== "object" || Array.isArray(nestedValue)) return nestedValue;
package/cjs/app.js CHANGED
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
2
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
3
3
  require("./index.js");
4
- const require_CalmLensUtils = require("./CalmLensUtils-DNdmYeX6.js");
5
- const require_CalmLensConnection = require("./CalmLensConnection-Bth5fJyp.js");
4
+ const require_CalmLensUtils = require("./CalmLensUtils-Cv1Ylp9-.js");
5
+ const require_CalmLensConnection = require("./CalmLensConnection-DoemramF.js");
6
6
  //#region src/client/CalmLensAppClient.ts
7
7
  const inspectSymbol = Symbol.for("nodejs.util.inspect.custom");
8
8
  /**
package/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
2
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
3
3
  exports.CALMLENS_ERROR_CODES = require_CalmLensVersion.CALMLENS_ERROR_CODES;
4
4
  exports.CalmLensError = require_CalmLensVersion.CalmLensError;
5
5
  exports.SDK_VERSION = require_CalmLensVersion.SDK_VERSION;
package/cjs/server.js CHANGED
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
2
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
3
3
  require("./index.js");
4
- const require_CalmLensWebhooks = require("./CalmLensWebhooks-6thkvr_F.js");
5
- const require_CalmLensUtils = require("./CalmLensUtils-DNdmYeX6.js");
6
- const require_CalmLensConnection = require("./CalmLensConnection-Bth5fJyp.js");
4
+ const require_CalmLensWebhooks = require("./CalmLensWebhooks-qrL-Zdu3.js");
5
+ const require_CalmLensUtils = require("./CalmLensUtils-Cv1Ylp9-.js");
6
+ const require_CalmLensConnection = require("./CalmLensConnection-DoemramF.js");
7
7
  const getEnsureLensCacheKey = (options) => require_CalmLensWebhooks.stringifyJsonCanonical({
8
8
  identifier: options.identifier,
9
9
  name: options.name,
package/cjs/testing.d.ts CHANGED
@@ -5,7 +5,7 @@ type ClassificationTestSignal = ClassificationCategory | "sexual.involving-minor
5
5
  //#region ../shared/src/MediaTestTriggers.d.ts
6
6
  export declare const MEDIA_TEST_SIGNALS: readonly ["sexual", "violence", "self-harm", "harassment", "hate", "criminal-activity", "violence.graphic"];
7
7
  /** Read this aloud, or render it as large, high-contrast text in a video frame. */
8
- export declare function generateMediaTestCode(signal: ClassificationTestSignal, projectId: string): string;
8
+ export declare function generateMediaTestCode(signal: ClassificationTestSignal, testInputKey: string): string;
9
9
  //#endregion
10
10
  //#region src/testing/MockApiKey.d.ts
11
11
  export declare const MOCK_API_KEY_PREFIX = "sk_test_";
package/cjs/testing.js CHANGED
@@ -21,9 +21,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  enumerable: true
22
22
  }) : target, mod));
23
23
  //#endregion
24
- const require_CalmLensVersion = require("./CalmLensVersion-Bs0DreBV.js");
25
- const require_CalmLensWebhooks = require("./CalmLensWebhooks-6thkvr_F.js");
26
- const require_CalmLensUtils = require("./CalmLensUtils-DNdmYeX6.js");
24
+ const require_CalmLensVersion = require("./CalmLensVersion-CuxKdijk.js");
25
+ const require_CalmLensWebhooks = require("./CalmLensWebhooks-qrL-Zdu3.js");
26
+ const require_CalmLensUtils = require("./CalmLensUtils-Cv1Ylp9-.js");
27
27
  let zod = require("zod");
28
28
  zod = __toESM(zod);
29
29
  require("zod/v4");
@@ -379,10 +379,10 @@ const HEX_WORDS = [
379
379
  "foxtrot"
380
380
  ];
381
381
  /** Read this aloud, or render it as large, high-contrast text in a video frame. */
382
- function generateMediaTestCode(signal, projectId) {
382
+ function generateMediaTestCode(signal, testInputKey) {
383
383
  if (!MEDIA_TEST_SIGNALS.includes(signal)) throw new Error("Unsupported media test signal");
384
- const suffix = projectId.slice(-8).toLowerCase();
385
- if (!/^[a-f0-9]{8}$/.test(suffix)) throw new Error("Expected a project ID with an eight-character hexadecimal suffix");
384
+ const suffix = testInputKey.toLowerCase();
385
+ if (!/^[a-f0-9]{8}$/.test(suffix)) throw new Error("Expected an eight-character hexadecimal test input key");
386
386
  return `Calm Lens test ${[...suffix].map((character) => HEX_WORDS[Number.parseInt(character, 16)]).join(" ")} ${signal.replace(/[.-]/g, " ")} end test`;
387
387
  }
388
388
  //#endregion
@@ -1,5 +1,5 @@
1
- import { c as invalidArgument, o as CalmLensError, s as SDK_ERROR_CODES, u as API_ERROR_CODES } from "./CalmLensVersion-DPnL_Ebv.js";
2
- import { a as stringifyQuery, b as getRejectedUploadMimeTypeError, d as CalmLensTransport, g as validateAssetPayload, h as getAssetPayloadByteLength, i as randomUuid, m as assetToData, v as MAX_IMAGE_UPLOAD_BYTES, x as isRejectedUploadMimeType, y as MIN_MULTIPART_IMAGE_UPLOAD_BYTES } from "./CalmLensUtils-BQo79TA1.js";
1
+ import { c as invalidArgument, o as CalmLensError, s as SDK_ERROR_CODES, u as API_ERROR_CODES } from "./CalmLensVersion-N71PMJAz.js";
2
+ import { a as stringifyQuery, b as getRejectedUploadMimeTypeError, d as CalmLensTransport, g as validateAssetPayload, h as getAssetPayloadByteLength, i as randomUuid, m as assetToData, v as MAX_IMAGE_UPLOAD_BYTES, x as isRejectedUploadMimeType, y as MIN_MULTIPART_IMAGE_UPLOAD_BYTES } from "./CalmLensUtils-B3S--hBG.js";
3
3
  //#region src/client/CalmLensConnection.ts
4
4
  const DEFAULT_TIMEOUT_MS = 12e4;
5
5
  const DEFAULT_MAX_RETRIES = 2;
@@ -1,4 +1,4 @@
1
- import { c as invalidArgument, l as invalidConfig, n as getUserAgent, o as CalmLensError, r as isBrowserRuntime, s as SDK_ERROR_CODES, u as API_ERROR_CODES } from "./CalmLensVersion-DPnL_Ebv.js";
1
+ import { c as invalidArgument, l as invalidConfig, n as getUserAgent, o as CalmLensError, r as isBrowserRuntime, s as SDK_ERROR_CODES, u as API_ERROR_CODES } from "./CalmLensVersion-N71PMJAz.js";
2
2
  const MAX_IMAGE_UPLOAD_BYTES = /* @__PURE__ */ (() => 20971520)();
3
3
  const MIN_MULTIPART_IMAGE_UPLOAD_BYTES = /* @__PURE__ */ (() => 10485760)();
4
4
  const REJECTED_UPLOAD_MIME_TYPE_SET = /* @__PURE__ */ new Set([
@@ -390,7 +390,7 @@ const invalidConfig = (message) => new CalmLensError(SDK_ERROR_CODES.INVALID_CON
390
390
  //#endregion
391
391
  //#region src/client/CalmLensVersion.ts
392
392
  /** This SDK's version, from its package.json. */
393
- const SDK_VERSION = "0.14.0";
393
+ const SDK_VERSION = "0.15.0";
394
394
  const runtimeName = () => {
395
395
  const runtime = globalThis;
396
396
  if (isReactNativeRuntime()) return "react-native";
@@ -1,5 +1,5 @@
1
- import { c as invalidArgument, o as CalmLensError, s as SDK_ERROR_CODES } from "./CalmLensVersion-DPnL_Ebv.js";
2
- import { n as encodePathSegment } from "./CalmLensUtils-BQo79TA1.js";
1
+ import { c as invalidArgument, o as CalmLensError, s as SDK_ERROR_CODES } from "./CalmLensVersion-N71PMJAz.js";
2
+ import { n as encodePathSegment } from "./CalmLensUtils-B3S--hBG.js";
3
3
  //#region ../shared/src/JsonUtils.ts
4
4
  const stringifyJsonCanonical = (value) => JSON.stringify(value, (_key, nestedValue) => {
5
5
  if (!nestedValue || typeof nestedValue !== "object" || Array.isArray(nestedValue)) return nestedValue;
package/esm/app.js CHANGED
@@ -1,7 +1,7 @@
1
- import { a as CALMLENS_ERROR_CODES, c as invalidArgument, l as invalidConfig, o as CalmLensError, t as SDK_VERSION } from "./CalmLensVersion-DPnL_Ebv.js";
1
+ import { a as CALMLENS_ERROR_CODES, c as invalidArgument, l as invalidConfig, o as CalmLensError, t as SDK_VERSION } from "./CalmLensVersion-N71PMJAz.js";
2
2
  import "./index.js";
3
- import { c as validateAppClientOptions, n as encodePathSegment } from "./CalmLensUtils-BQo79TA1.js";
4
- import { o as prepareSubmitAssetOptions, r as expectUploadedAsset, s as resolveConnectionOptions, t as CalmLensConnection } from "./CalmLensConnection-DrCOL9h9.js";
3
+ import { c as validateAppClientOptions, n as encodePathSegment } from "./CalmLensUtils-B3S--hBG.js";
4
+ import { o as prepareSubmitAssetOptions, r as expectUploadedAsset, s as resolveConnectionOptions, t as CalmLensConnection } from "./CalmLensConnection-CQLoUoBd.js";
5
5
  //#region src/client/CalmLensAppClient.ts
6
6
  const inspectSymbol = Symbol.for("nodejs.util.inspect.custom");
7
7
  /**
package/esm/index.js CHANGED
@@ -1 +1 @@
1
- export { a as CALMLENS_ERROR_CODES, o as CalmLensError, t as SDK_VERSION } from "./CalmLensVersion-DPnL_Ebv.js";
1
+ export { a as CALMLENS_ERROR_CODES, o as CalmLensError, t as SDK_VERSION } from "./CalmLensVersion-N71PMJAz.js";
package/esm/server.js CHANGED
@@ -1,8 +1,8 @@
1
- import { a as CALMLENS_ERROR_CODES, c as invalidArgument, i as isReactNativeRuntime, l as invalidConfig, o as CalmLensError, r as isBrowserRuntime, s as SDK_ERROR_CODES, t as SDK_VERSION } from "./CalmLensVersion-DPnL_Ebv.js";
1
+ import { a as CALMLENS_ERROR_CODES, c as invalidArgument, i as isReactNativeRuntime, l as invalidConfig, o as CalmLensError, r as isBrowserRuntime, s as SDK_ERROR_CODES, t as SDK_VERSION } from "./CalmLensVersion-N71PMJAz.js";
2
2
  import "./index.js";
3
- import { a as parseWebhookEvent, i as WEBHOOK_TIMESTAMP_HEADER, l as stringifyJsonCanonical, n as WEBHOOK_SIGNATURE_HEADER, o as verifyWebhookSignature, r as WEBHOOK_SIGNATURE_TOLERANCE_SECONDS, s as signUploadTokenWithApiKey, t as WEBHOOK_DELIVERY_HEADER } from "./CalmLensWebhooks-CWlD-f_P.js";
4
- import { f as sleep, l as validateRequestOptions, n as encodePathSegment, o as toTextAssetOptions, r as pollForDecision, s as transformSelector, t as appendCdnSelector, u as validateServerClientOptions } from "./CalmLensUtils-BQo79TA1.js";
5
- import { a as newIdempotencyKey, i as invalidPayload, n as expectAsset, o as prepareSubmitAssetOptions, s as resolveConnectionOptions, t as CalmLensConnection } from "./CalmLensConnection-DrCOL9h9.js";
3
+ import { a as parseWebhookEvent, i as WEBHOOK_TIMESTAMP_HEADER, l as stringifyJsonCanonical, n as WEBHOOK_SIGNATURE_HEADER, o as verifyWebhookSignature, r as WEBHOOK_SIGNATURE_TOLERANCE_SECONDS, s as signUploadTokenWithApiKey, t as WEBHOOK_DELIVERY_HEADER } from "./CalmLensWebhooks-BxMSx1Vm.js";
4
+ import { f as sleep, l as validateRequestOptions, n as encodePathSegment, o as toTextAssetOptions, r as pollForDecision, s as transformSelector, t as appendCdnSelector, u as validateServerClientOptions } from "./CalmLensUtils-B3S--hBG.js";
5
+ import { a as newIdempotencyKey, i as invalidPayload, n as expectAsset, o as prepareSubmitAssetOptions, s as resolveConnectionOptions, t as CalmLensConnection } from "./CalmLensConnection-CQLoUoBd.js";
6
6
  const getEnsureLensCacheKey = (options) => stringifyJsonCanonical({
7
7
  identifier: options.identifier,
8
8
  name: options.name,
package/esm/testing.d.ts CHANGED
@@ -5,7 +5,7 @@ type ClassificationTestSignal = ClassificationCategory | "sexual.involving-minor
5
5
  //#region ../shared/src/MediaTestTriggers.d.ts
6
6
  export declare const MEDIA_TEST_SIGNALS: readonly ["sexual", "violence", "self-harm", "harassment", "hate", "criminal-activity", "violence.graphic"];
7
7
  /** Read this aloud, or render it as large, high-contrast text in a video frame. */
8
- export declare function generateMediaTestCode(signal: ClassificationTestSignal, projectId: string): string;
8
+ export declare function generateMediaTestCode(signal: ClassificationTestSignal, testInputKey: string): string;
9
9
  //#endregion
10
10
  //#region src/testing/MockApiKey.d.ts
11
11
  export declare const MOCK_API_KEY_PREFIX = "sk_test_";
package/esm/testing.js CHANGED
@@ -1,6 +1,6 @@
1
- import { c as invalidArgument, d as API_ERROR_DEFINITIONS, o as CalmLensError, s as SDK_ERROR_CODES, u as API_ERROR_CODES } from "./CalmLensVersion-DPnL_Ebv.js";
2
- import { c as hmacSha256Hex, i as WEBHOOK_TIMESTAMP_HEADER, l as stringifyJsonCanonical, n as WEBHOOK_SIGNATURE_HEADER, s as signUploadTokenWithApiKey, t as WEBHOOK_DELIVERY_HEADER } from "./CalmLensWebhooks-CWlD-f_P.js";
3
- import { b as getRejectedUploadMimeTypeError, f as sleep, g as validateAssetPayload, h as getAssetPayloadByteLength, m as assetToData, n as encodePathSegment, o as toTextAssetOptions, p as assetDataToUint8Array, r as pollForDecision, s as transformSelector, t as appendCdnSelector, u as validateServerClientOptions, x as isRejectedUploadMimeType } from "./CalmLensUtils-BQo79TA1.js";
1
+ import { c as invalidArgument, d as API_ERROR_DEFINITIONS, o as CalmLensError, s as SDK_ERROR_CODES, u as API_ERROR_CODES } from "./CalmLensVersion-N71PMJAz.js";
2
+ import { c as hmacSha256Hex, i as WEBHOOK_TIMESTAMP_HEADER, l as stringifyJsonCanonical, n as WEBHOOK_SIGNATURE_HEADER, s as signUploadTokenWithApiKey, t as WEBHOOK_DELIVERY_HEADER } from "./CalmLensWebhooks-BxMSx1Vm.js";
3
+ import { b as getRejectedUploadMimeTypeError, f as sleep, g as validateAssetPayload, h as getAssetPayloadByteLength, m as assetToData, n as encodePathSegment, o as toTextAssetOptions, p as assetDataToUint8Array, r as pollForDecision, s as transformSelector, t as appendCdnSelector, u as validateServerClientOptions, x as isRejectedUploadMimeType } from "./CalmLensUtils-B3S--hBG.js";
4
4
  import * as zod from "zod";
5
5
  import "zod/v4";
6
6
  //#region ../shared/src/ModerationCategoryDefinitions.ts
@@ -355,10 +355,10 @@ const HEX_WORDS = [
355
355
  "foxtrot"
356
356
  ];
357
357
  /** Read this aloud, or render it as large, high-contrast text in a video frame. */
358
- function generateMediaTestCode(signal, projectId) {
358
+ function generateMediaTestCode(signal, testInputKey) {
359
359
  if (!MEDIA_TEST_SIGNALS.includes(signal)) throw new Error("Unsupported media test signal");
360
- const suffix = projectId.slice(-8).toLowerCase();
361
- if (!/^[a-f0-9]{8}$/.test(suffix)) throw new Error("Expected a project ID with an eight-character hexadecimal suffix");
360
+ const suffix = testInputKey.toLowerCase();
361
+ if (!/^[a-f0-9]{8}$/.test(suffix)) throw new Error("Expected an eight-character hexadecimal test input key");
362
362
  return `Calm Lens test ${[...suffix].map((character) => HEX_WORDS[Number.parseInt(character, 16)]).join(" ")} ${signal.replace(/[.-]/g, " ")} end test`;
363
363
  }
364
364
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calmlens/sdk",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "Official CalmLens SDK for JavaScript and TypeScript: content moderation, asset storage and CDN delivery.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://calmlens.com/docs/sdk/javascript",