@calmlens/sdk 0.17.1 → 0.18.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.
Files changed (60) hide show
  1. package/README.md +46 -37
  2. package/bin/calmlens.js +16016 -0
  3. package/bin/package.json +1 -0
  4. package/{esm/BrowserUpload-uZjVFGfP.d.ts → cjs/BrowserUpload-BT091eOB.d.ts} +2 -2
  5. package/cjs/{BrowserUpload-DZ0Vbmxi.js → BrowserUpload-CQwXEGFv.js} +1 -1
  6. package/cjs/{CalmLensAppClient-DBGmaDlG.js → CalmLensAppClient-CHQGu-Do.js} +2 -2
  7. package/cjs/{CalmLensConnection-K1TAD1Z-.js → CalmLensConnection-B8Bu2j3y.js} +2 -2
  8. package/cjs/{CalmLensServerClient-C-pxiz0C.js → CalmLensServerClient-C5o2A8MW.js} +3 -3
  9. package/cjs/{ModerationContextLimits-Dj1YAl3G.js → ModerationContextLimits-DelWfmiJ.js} +1 -1
  10. package/cjs/{ReactUpload-nZahpmyg.d.ts → ReactUpload-CAyCsyG6.d.ts} +1 -1
  11. package/cjs/{ReactUpload-DxtFMr06.js → ReactUpload-Cfg5JYUq.js} +1 -1
  12. package/cjs/{TestTriggers-DcArt0Nu-CvoaONUB.js → TestTriggers-DTc_iMJF-BjMPq4_3.js} +10 -9
  13. package/cjs/{UploadController-BBkN4Ni6.js → UploadController-BGO1eyzb.js} +2 -2
  14. package/cjs/app.js +2 -2
  15. package/cjs/elements.d.ts +2 -2
  16. package/cjs/elements.js +3 -3
  17. package/cjs/index.js +1 -1
  18. package/cjs/react-native.d.ts +2 -2
  19. package/cjs/react-native.js +3 -3
  20. package/cjs/react.d.ts +2 -2
  21. package/cjs/react.js +4 -4
  22. package/cjs/server.js +2 -2
  23. package/cjs/test-inputs.js +9 -9
  24. package/cjs/testing.d.ts +1 -1
  25. package/cjs/testing.js +8 -8
  26. package/cjs/{ui-KceuoVCM.js → ui-CC1GOoMg.js} +4 -4
  27. package/{esm/ui-CgZpgpNo.d.ts → cjs/ui-wIiMfqMB.d.ts} +3 -3
  28. package/cjs/ui.d.ts +1 -1
  29. package/cjs/ui.js +2 -2
  30. package/cjs/vue.d.ts +2 -2
  31. package/cjs/vue.js +3 -3
  32. package/{cjs/BrowserUpload-uZjVFGfP.d.ts → esm/BrowserUpload-BT091eOB.d.ts} +2 -2
  33. package/esm/{BrowserUpload-D7-zNmc0.js → BrowserUpload-D2xBWqhm.js} +1 -1
  34. package/esm/{CalmLensAppClient-FVMwrHlH.js → CalmLensAppClient-DuFas_dW.js} +2 -2
  35. package/esm/{CalmLensConnection-iyNQHA8L.js → CalmLensConnection-MxwwLXdl.js} +2 -2
  36. package/esm/{CalmLensServerClient-fQEYKLw4.js → CalmLensServerClient-D80_mKpW.js} +3 -3
  37. package/esm/{ModerationContextLimits-D1x_WAtP.js → ModerationContextLimits-BaX2QnU8.js} +1 -1
  38. package/esm/{ReactUpload-nZahpmyg.d.ts → ReactUpload-CAyCsyG6.d.ts} +1 -1
  39. package/esm/{ReactUpload-D6yBCkcw.js → ReactUpload-CL2XC8WS.js} +1 -1
  40. package/esm/{TestTriggers-DcArt0Nu-s0AQZuWE.js → TestTriggers-DTc_iMJF-HfB533Gx.js} +10 -9
  41. package/esm/{UploadController-txp5NuzH.js → UploadController-qjoYGCwx.js} +2 -2
  42. package/esm/app.js +2 -2
  43. package/esm/elements.d.ts +2 -2
  44. package/esm/elements.js +3 -3
  45. package/esm/index.js +1 -1
  46. package/esm/react-native.d.ts +2 -2
  47. package/esm/react-native.js +3 -3
  48. package/esm/react.d.ts +2 -2
  49. package/esm/react.js +4 -4
  50. package/esm/server.js +2 -2
  51. package/esm/test-inputs.js +1 -1
  52. package/esm/testing.d.ts +1 -1
  53. package/esm/testing.js +6 -6
  54. package/esm/{ui-Ca_SpJXf.js → ui-CCY3yXFn.js} +4 -4
  55. package/{cjs/ui-CgZpgpNo.d.ts → esm/ui-wIiMfqMB.d.ts} +3 -3
  56. package/esm/ui.d.ts +1 -1
  57. package/esm/ui.js +2 -2
  58. package/esm/vue.d.ts +2 -2
  59. package/esm/vue.js +3 -3
  60. package/package.json +9 -3
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -1,5 +1,5 @@
1
- import { F as UploadItem$1, I as UploadSnapshot$1, M as UploadController, N as UploadControllerOptions$1, O as CalmLensUpload$1, P as UploadFile, f as UploaderProps$1 } from "./ui-CgZpgpNo.js";
2
- import { t as UseCalmLensUploadResult$1 } from "./ReactUpload-nZahpmyg.js";
1
+ import { F as UploadItem$1, I as UploadSnapshot$1, M as UploadController, N as UploadControllerOptions$1, O as CalmLensUpload$1, P as UploadFile, f as UploaderProps$1 } from "./ui-wIiMfqMB.js";
2
+ import { t as UseCalmLensUploadResult$1 } from "./ReactUpload-CAyCsyG6.js";
3
3
  type UploadItem<F extends UploadFile = File> = UploadItem$1<F>;
4
4
  type CalmLensUpload<F extends UploadFile = File> = CalmLensUpload$1<F>;
5
5
  type UploadSnapshot<F extends UploadFile = File> = UploadSnapshot$1<F>;
@@ -1,4 +1,4 @@
1
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
1
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
2
2
  // src/ui/BrowserUpload.ts
3
3
  /** Creates an upload queue for the browser components, such as one a form starts on submit. */
4
4
  const createUploadController = (options) => require_UploadController.createUploadController(options);
@@ -1,5 +1,5 @@
1
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
2
- const require_CalmLensConnection = require("./CalmLensConnection-K1TAD1Z-.js");
1
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
2
+ const require_CalmLensConnection = require("./CalmLensConnection-B8Bu2j3y.js");
3
3
  // src/client/CalmLensAppClient.ts
4
4
  const inspectSymbol = Symbol.for("nodejs.util.inspect.custom");
5
5
  /**
@@ -1,4 +1,4 @@
1
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
1
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
2
2
  // src/contract/AssetPayload.js
3
3
  const uint8ArrayInputToNumbers = (value) => {
4
4
  if (Array.isArray(value)) return value;
@@ -360,7 +360,7 @@ var CalmLensTransport = class {
360
360
  }
361
361
  };
362
362
  /**
363
- * Where `@calmlens/sdk/testing` puts its hooks in client options. Not part of the public API:
363
+ * Where `calmlens/testing` puts its hooks in client options. Not part of the public API:
364
364
  * the mock clients run the real clients against their in-memory API with these.
365
365
  */
366
366
  const MOCK_HOOKS = Symbol.for("@calmlens/sdk.mockHooks");
@@ -1,5 +1,5 @@
1
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
2
- const require_CalmLensConnection = require("./CalmLensConnection-K1TAD1Z-.js");
1
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
2
+ const require_CalmLensConnection = require("./CalmLensConnection-B8Bu2j3y.js");
3
3
  const require_CryptoUtils_B_x8lMIx = require("./CryptoUtils-B_x8lMIx-YBW1-bvL.js");
4
4
  // src/contract/JsonUtils.js
5
5
  const stringifyJsonCanonical = (value) => JSON.stringify(value, (_key, nestedValue) => {
@@ -27,7 +27,7 @@ const signUploadToken = async (claims, apiKey) => {
27
27
  // src/client/CalmLensUploadTokens.ts
28
28
  /**
29
29
  * Signs a single-use upload token with `apiKey`, locally. `CalmLensServerClient` and
30
- * `MockCalmLensServerClient` share it so both check options the same way. `@calmlens/sdk/testing`
30
+ * `MockCalmLensServerClient` share it so both check options the same way. `calmlens/testing`
31
31
  * exports it as `signUploadToken`, whose fixed `now` (milliseconds since the epoch) and `nonce`
32
32
  * give the same token every time, for comparing with known tokens in tests.
33
33
  */
@@ -1063,7 +1063,7 @@ const pollForDecision = async (retrieve, { timeoutMs = DEFAULT_DECISION_TIMEOUT_
1063
1063
  };
1064
1064
  // src/client/CalmLensVersion.ts
1065
1065
  /** This SDK's version, from its package.json. */
1066
- const SDK_VERSION = "0.17.1";
1066
+ const SDK_VERSION = "0.18.0";
1067
1067
  const runtimeName = () => {
1068
1068
  const runtime = globalThis;
1069
1069
  if (isReactNativeRuntime()) return "react-native";
@@ -1,4 +1,4 @@
1
- import { I as UploadSnapshot, M as UploadController, N as UploadControllerOptions, P as UploadFile } from "./ui-CgZpgpNo.js";
1
+ import { I as UploadSnapshot, M as UploadController, N as UploadControllerOptions, P as UploadFile } from "./ui-wIiMfqMB.js";
2
2
  interface UseCalmLensUploadResult<F extends UploadFile = UploadFile> extends UploadSnapshot<F> {
3
3
  controller: UploadController<F>;
4
4
  addFiles: UploadController<F>["addFiles"];
@@ -1,4 +1,4 @@
1
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
1
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
2
2
  let react = require("react");
3
3
  // src/ui/ReactUpload.ts
4
4
  /** Re-renders with a controller's snapshot. */
@@ -2,14 +2,7 @@ const require_Jurisdiction_FusEXb4U = require("./Jurisdiction-FusEXb4U-zVs21tDv.
2
2
  const require_CryptoUtils_B_x8lMIx = require("./CryptoUtils-B_x8lMIx-YBW1-bvL.js");
3
3
  let zod = require("zod");
4
4
  zod = require_Jurisdiction_FusEXb4U.__toESM(zod, 1);
5
- // src/contract/TestRegionalActions-DfPCKG4S.js
6
- /**
7
- * Marks English text in shared, backend and data modules that the portal shows, so the app's
8
- * message catalog (packages/app/vite/messageCatalog.ts) extracts it and the portal can translate it
9
- * where it renders (`useTranslateText()` from `#i18n`). Returns the text unchanged: the API, events,
10
- * emails and logs keep English. Only a string literal argument is extracted.
11
- */
12
- const msg = (text) => text;
5
+ // src/contract/ModerationCategories-CHFRoeWV.js
13
6
  const CLASSIFICATION_CATEGORIES = [
14
7
  "sexual",
15
8
  "violence",
@@ -20,6 +13,14 @@ const CLASSIFICATION_CATEGORIES = [
20
13
  "personal-information",
21
14
  "profanity"
22
15
  ];
16
+ // src/contract/TestRegionalActions-ShLrTN7y.js
17
+ /**
18
+ * Marks English text in shared, backend and data modules that the portal shows, so the app's
19
+ * message catalog (packages/app/vite/messageCatalog.ts) extracts it and the portal can translate it
20
+ * where it renders (`useTranslateText()` from `#i18n`). Returns the text unchanged: the API, events,
21
+ * emails and logs keep English. Only a string literal argument is extracted.
22
+ */
23
+ const msg = (text) => text;
23
24
  const MODERATION_QUALIFIER_INFO = {
24
25
  "sexual-pornographic-media": {
25
26
  category: "sexual",
@@ -1018,7 +1019,7 @@ const TEST_REGIONAL_ACTIONS_SCHEMA = zod.array(zod.object({
1018
1019
  "block"
1019
1020
  ])
1020
1021
  }).strict()).max(7).refine((entries) => new Set(entries.map((entry) => entry.region)).size === entries.length, "Choose each region once");
1021
- // src/contract/TestTriggers-DcArt0Nu.js
1022
+ // src/contract/TestTriggers-DTc_iMJF.js
1022
1023
  /** A project's test input key: 32 hexadecimal characters only its members can see. */
1023
1024
  const TEST_INPUT_KEY_PATTERN = /^[a-f0-9]{32}$/;
1024
1025
  const TEXT_CODE_SIGNALS = [
@@ -1,5 +1,5 @@
1
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
2
- const require_CalmLensAppClient = require("./CalmLensAppClient-DBGmaDlG.js");
1
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
2
+ const require_CalmLensAppClient = require("./CalmLensAppClient-CHQGu-Do.js");
3
3
  // src/contract/PlaceholderHashDecode.js
4
4
  /**
5
5
  * Decodes a ThumbHash to an RGBA image. RGB is not be premultiplied by A.
package/cjs/app.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
2
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
3
3
  require("./index.js");
4
- const require_CalmLensAppClient = require("./CalmLensAppClient-DBGmaDlG.js");
4
+ const require_CalmLensAppClient = require("./CalmLensAppClient-CHQGu-Do.js");
5
5
  exports.CALMLENS_ERROR_CODES = require_ModerationContextLimits.CALMLENS_ERROR_CODES;
6
6
  exports.CalmLensAppClient = require_CalmLensAppClient.CalmLensAppClient;
7
7
  exports.CalmLensError = require_ModerationContextLimits.CalmLensError;
package/cjs/elements.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-CgZpgpNo.js";
2
- import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-uZjVFGfP.js";
1
+ import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-wIiMfqMB.js";
2
+ import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-BT091eOB.js";
3
3
  /** The `detail` of each event the elements dispatch. */
4
4
  export interface CalmLensElementEvents {
5
5
  "calmlens-uploaded": CalmLensUpload;
package/cjs/elements.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ui = require("./ui-KceuoVCM.js");
3
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
4
- const require_BrowserUpload = require("./BrowserUpload-DZ0Vbmxi.js");
2
+ const require_ui = require("./ui-CC1GOoMg.js");
3
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
4
+ const require_BrowserUpload = require("./BrowserUpload-CQwXEGFv.js");
5
5
  // src/elements.ts
6
6
  const el = (tag, attributes = {}, children = []) => {
7
7
  const node = document.createElement(tag);
package/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
2
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
3
3
  exports.CALMLENS_ERROR_CODES = require_ModerationContextLimits.CALMLENS_ERROR_CODES;
4
4
  exports.CalmLensError = require_ModerationContextLimits.CalmLensError;
5
5
  exports.DEFAULT_CDN_BASE_URL = require_ModerationContextLimits.DEFAULT_CDN_BASE_URL;
@@ -1,5 +1,5 @@
1
- import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, F as UploadItem, G as MediaState, H as MediaOptions, I as UploadSnapshot, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, N as UploadControllerOptions, O as CalmLensUpload, P as UploadFile, R as createUploadController, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, f as UploaderProps, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-CgZpgpNo.js";
2
- import { n as useCalmLensUpload, t as UseCalmLensUploadResult } from "./ReactUpload-nZahpmyg.js";
1
+ import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, F as UploadItem, G as MediaState, H as MediaOptions, I as UploadSnapshot, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, N as UploadControllerOptions, O as CalmLensUpload, P as UploadFile, R as createUploadController, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, f as UploaderProps, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-wIiMfqMB.js";
2
+ import { n as useCalmLensUpload, t as UseCalmLensUploadResult } from "./ReactUpload-CAyCsyG6.js";
3
3
  import { ReactNode } from "react";
4
4
  import { StyleProp, ViewStyle } from "react-native";
5
5
  /** What the uploader asks your picker for. */
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ui = require("./ui-KceuoVCM.js");
3
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
2
+ const require_ui = require("./ui-CC1GOoMg.js");
3
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
4
4
  const require_FileIcons = require("./FileIcons-Ob003MdS.js");
5
- const require_ReactUpload = require("./ReactUpload-DxtFMr06.js");
5
+ const require_ReactUpload = require("./ReactUpload-Cfg5JYUq.js");
6
6
  let react = require("react");
7
7
  let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let react_native = require("react-native");
package/cjs/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-CgZpgpNo.js";
2
- import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, o as UseCalmLensUploadResult, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-uZjVFGfP.js";
1
+ import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-wIiMfqMB.js";
2
+ import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, o as UseCalmLensUploadResult, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-BT091eOB.js";
3
3
  import { CSSProperties, HTMLAttributes } from "react";
4
4
  /**
5
5
  * Uploads files through an upload preset and re-renders as each one uploads and is checked. Use
package/cjs/react.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_ui = require("./ui-KceuoVCM.js");
4
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
5
- const require_ReactUpload = require("./ReactUpload-DxtFMr06.js");
6
- const require_BrowserUpload = require("./BrowserUpload-DZ0Vbmxi.js");
3
+ const require_ui = require("./ui-CC1GOoMg.js");
4
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
5
+ const require_ReactUpload = require("./ReactUpload-Cfg5JYUq.js");
6
+ const require_BrowserUpload = require("./BrowserUpload-CQwXEGFv.js");
7
7
  let react = require("react");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  // src/react.tsx
package/cjs/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
2
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
3
3
  require("./index.js");
4
- const require_CalmLensServerClient = require("./CalmLensServerClient-C-pxiz0C.js");
4
+ const require_CalmLensServerClient = require("./CalmLensServerClient-C5o2A8MW.js");
5
5
  exports.CALMLENS_ERROR_CODES = require_ModerationContextLimits.CALMLENS_ERROR_CODES;
6
6
  exports.CalmLensError = require_ModerationContextLimits.CalmLensError;
7
7
  exports.CalmLensServerClient = require_CalmLensServerClient.CalmLensServerClient;
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_TestTriggers_DcArt0Nu = require("./TestTriggers-DcArt0Nu-CvoaONUB.js");
3
- exports.TEST_INPUT_KEY_PATTERN = require_TestTriggers_DcArt0Nu.TEST_INPUT_KEY_PATTERN;
4
- exports.TEST_INPUT_PRESETS = require_TestTriggers_DcArt0Nu.TEST_INPUT_PRESETS;
5
- exports.detectTestImage = require_TestTriggers_DcArt0Nu.detectTestImage;
6
- exports.detectTestTrigger = require_TestTriggers_DcArt0Nu.detectTestTrigger;
7
- exports.generateTestTextCode = require_TestTriggers_DcArt0Nu.generateTestTextCode;
8
- exports.getImageTestCategories = require_TestTriggers_DcArt0Nu.getImageTestCategories;
9
- exports.paintTestImage = require_TestTriggers_DcArt0Nu.paintTestImage;
10
- exports.testInputForSignal = require_TestTriggers_DcArt0Nu.testInputForSignal;
2
+ const require_TestTriggers_DTc_iMJF = require("./TestTriggers-DTc_iMJF-BjMPq4_3.js");
3
+ exports.TEST_INPUT_KEY_PATTERN = require_TestTriggers_DTc_iMJF.TEST_INPUT_KEY_PATTERN;
4
+ exports.TEST_INPUT_PRESETS = require_TestTriggers_DTc_iMJF.TEST_INPUT_PRESETS;
5
+ exports.detectTestImage = require_TestTriggers_DTc_iMJF.detectTestImage;
6
+ exports.detectTestTrigger = require_TestTriggers_DTc_iMJF.detectTestTrigger;
7
+ exports.generateTestTextCode = require_TestTriggers_DTc_iMJF.generateTestTextCode;
8
+ exports.getImageTestCategories = require_TestTriggers_DTc_iMJF.getImageTestCategories;
9
+ exports.paintTestImage = require_TestTriggers_DTc_iMJF.paintTestImage;
10
+ exports.testInputForSignal = require_TestTriggers_DTc_iMJF.testInputForSignal;
package/cjs/testing.d.ts CHANGED
@@ -6,7 +6,7 @@ import { t as ClassificationTestSignal } from "./TestTriggers-By07LR31-CmK0yTyR.
6
6
  import "zod";
7
7
  /**
8
8
  * Signs a single-use upload token with `apiKey`, locally. `CalmLensServerClient` and
9
- * `MockCalmLensServerClient` share it so both check options the same way. `@calmlens/sdk/testing`
9
+ * `MockCalmLensServerClient` share it so both check options the same way. `calmlens/testing`
10
10
  * exports it as `signUploadToken`, whose fixed `now` (milliseconds since the epoch) and `nonce`
11
11
  * give the same token every time, for comparing with known tokens in tests.
12
12
  */
package/cjs/testing.js CHANGED
@@ -1,16 +1,16 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_Jurisdiction_FusEXb4U = require("./Jurisdiction-FusEXb4U-zVs21tDv.js");
3
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
4
- const require_CalmLensServerClient = require("./CalmLensServerClient-C-pxiz0C.js");
5
- const require_CalmLensConnection = require("./CalmLensConnection-K1TAD1Z-.js");
3
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
4
+ const require_CalmLensServerClient = require("./CalmLensServerClient-C5o2A8MW.js");
5
+ const require_CalmLensConnection = require("./CalmLensConnection-B8Bu2j3y.js");
6
6
  const require_CryptoUtils_B_x8lMIx = require("./CryptoUtils-B_x8lMIx-YBW1-bvL.js");
7
- const require_CalmLensAppClient = require("./CalmLensAppClient-DBGmaDlG.js");
8
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
9
- const require_TestTriggers_DcArt0Nu = require("./TestTriggers-DcArt0Nu-CvoaONUB.js");
7
+ const require_CalmLensAppClient = require("./CalmLensAppClient-CHQGu-Do.js");
8
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
9
+ const require_TestTriggers_DTc_iMJF = require("./TestTriggers-DTc_iMJF-BjMPq4_3.js");
10
10
  let zod = require("zod");
11
11
  zod = require_Jurisdiction_FusEXb4U.__toESM(zod, 1);
12
12
  // src/contract/MediaTestTriggers.js
13
- const MEDIA_TEST_SIGNALS = [...require_TestTriggers_DcArt0Nu.CLASSIFICATION_CATEGORIES, "violence.graphic"];
13
+ const MEDIA_TEST_SIGNALS = [...require_TestTriggers_DTc_iMJF.CLASSIFICATION_CATEGORIES, "violence.graphic"];
14
14
  const HEX_WORDS = [
15
15
  "zero",
16
16
  "one",
@@ -32,7 +32,7 @@ const HEX_WORDS = [
32
32
  /** Read this aloud, or render it as large, high-contrast text in a video frame. */
33
33
  async function generateMediaTestCode(signal, testInputKey) {
34
34
  if (!MEDIA_TEST_SIGNALS.includes(signal)) throw new RangeError("Unsupported media test signal");
35
- return `Calm Lens test ${[...await require_TestTriggers_DcArt0Nu.getTestInputTag("media", signal, testInputKey)].map((character) => HEX_WORDS[Number.parseInt(character, 16)]).join(" ")} ${signal.replace(/[.-]/g, " ")} end test`;
35
+ return `Calm Lens test ${[...await require_TestTriggers_DTc_iMJF.getTestInputTag("media", signal, testInputKey)].map((character) => HEX_WORDS[Number.parseInt(character, 16)]).join(" ")} ${signal.replace(/[.-]/g, " ")} end test`;
36
36
  }
37
37
  // src/contract/Ids-aHyP9ZcF.js
38
38
  var __defProp = Object.defineProperty;
@@ -1,6 +1,6 @@
1
1
  const require_Jurisdiction_FusEXb4U = require("./Jurisdiction-FusEXb4U-zVs21tDv.js");
2
- const require_ModerationContextLimits = require("./ModerationContextLimits-Dj1YAl3G.js");
3
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
2
+ const require_ModerationContextLimits = require("./ModerationContextLimits-DelWfmiJ.js");
3
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
4
4
  const require_FileIcons = require("./FileIcons-Ob003MdS.js");
5
5
  // src/ui/Icons.ts
6
6
  /** Path data for the components' 24×24 stroke icons, so every framework draws the same ones. */
@@ -298,9 +298,9 @@ const resolveTheme = (overrides = {}) => {
298
298
  };
299
299
  // src/ui/Styles.ts
300
300
  /**
301
- * The components' stylesheet, also shipped as `@calmlens/sdk/styles.css`. The React components
301
+ * The components' stylesheet, also shipped as `calmlens/styles.css`. The React components
302
302
  * render it themselves (React hoists it into the head, on the server too); with Vue, Svelte or
303
- * the web components, import or link `@calmlens/sdk/styles.css` once. Nothing is added to the page
303
+ * the web components, import or link `calmlens/styles.css` once. Nothing is added to the page
304
304
  * at runtime. Theme it with the `--calmlens-*` custom properties, or leave it out and style the
305
305
  * `calmlens-*` classes yourself.
306
306
  */
@@ -256,7 +256,7 @@ interface UploadControllerOptions<F extends UploadFile = UploadFile> {
256
256
  baseUrl?: string;
257
257
  /**
258
258
  * Creates the client for each upload. Defaults to `CalmLensAppClient`; tests can return a
259
- * `MockCalmLensAppClient` from `@calmlens/sdk/testing` instead.
259
+ * `MockCalmLensAppClient` from `calmlens/testing` instead.
260
260
  */
261
261
  createClient?: (options: CalmLensAppClientOptions) => UploadClient;
262
262
  /**
@@ -477,9 +477,9 @@ declare const ICON_ATTRIBUTES: {
477
477
  */
478
478
  declare const createProgressFetch: (onProgress: (sentBytes: number, totalBytes: number) => void) => ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>);
479
479
  /**
480
- * The components' stylesheet, also shipped as `@calmlens/sdk/styles.css`. The React components
480
+ * The components' stylesheet, also shipped as `calmlens/styles.css`. The React components
481
481
  * render it themselves (React hoists it into the head, on the server too); with Vue, Svelte or
482
- * the web components, import or link `@calmlens/sdk/styles.css` once. Nothing is added to the page
482
+ * the web components, import or link `calmlens/styles.css` once. Nothing is added to the page
483
483
  * at runtime. Theme it with the `--calmlens-*` custom properties, or leave it out and style the
484
484
  * `calmlens-*` classes yourself.
485
485
  */
package/cjs/ui.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, F as UploadItem, G as MediaState, H as MediaOptions, I as UploadSnapshot, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, N as UploadControllerOptions, O as CalmLensUpload, P as UploadFile, R as createUploadController, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, f as UploaderProps, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-CgZpgpNo.js";
1
+ import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, F as UploadItem, G as MediaState, H as MediaOptions, I as UploadSnapshot, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, N as UploadControllerOptions, O as CalmLensUpload, P as UploadFile, R as createUploadController, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, f as UploaderProps, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-wIiMfqMB.js";
2
2
  export { CALMLENS_STYLES, CALMLENS_THEME, type CalmLensMessages, type CalmLensTheme, type CalmLensUpload, type CustomUploadContext, type CustomUploadResult, DEFAULT_MESSAGES, ICONS, ICON_ATTRIBUTES, type IconName, type MediaAsset, type MediaDisplayOptions, type MediaImageSource, type MediaOptions, type MediaProps, type MediaSettings, type MediaSource, type MediaState, type UploadClient, UploadController, type UploadControllerOptions, type UploadFile, type UploadItem, type UploadItemView, type UploadSnapshot, type UploadStage, type UploaderDisplayOptions, type UploaderProps, type UploaderView, createProgressFetch, createUploadController, describeUploadItem, describeUploader, formatBytes, formatMessage, getDropzoneHint, getMediaAspectRatio, getMediaLoadKey, getMediaState, getMediaUnavailableMessage, getUploadItemMessage, getUploadItemOutcome, isFileAccepted, pickMediaSource, resolveMediaProps, resolveMessages, resolveTheme };
package/cjs/ui.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ui = require("./ui-KceuoVCM.js");
3
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
2
+ const require_ui = require("./ui-CC1GOoMg.js");
3
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
4
4
  exports.CALMLENS_STYLES = require_ui.CALMLENS_STYLES;
5
5
  exports.CALMLENS_THEME = require_ui.CALMLENS_THEME;
6
6
  exports.DEFAULT_MESSAGES = require_ui.DEFAULT_MESSAGES;
package/cjs/vue.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Dt as ViewerClaims, k as CdnTransform, m as AssetModerationStatus, w as CalmLensAppClientOptions } from "./CalmLensTypes-9Vt16pc7.js";
2
2
  import "./index-CI4BzN4W.js";
3
- import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-CgZpgpNo.js";
4
- import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-uZjVFGfP.js";
3
+ import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-wIiMfqMB.js";
4
+ import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-BT091eOB.js";
5
5
  import { MaybeRefOrGetter, PropType, ShallowRef } from "vue";
6
6
  export interface UseCalmLensUploadResult<F extends UploadFile = File> {
7
7
  snapshot: Readonly<ShallowRef<UploadSnapshot<F>>>;
package/cjs/vue.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ui = require("./ui-KceuoVCM.js");
3
- const require_UploadController = require("./UploadController-BBkN4Ni6.js");
4
- const require_BrowserUpload = require("./BrowserUpload-DZ0Vbmxi.js");
2
+ const require_ui = require("./ui-CC1GOoMg.js");
3
+ const require_UploadController = require("./UploadController-BGO1eyzb.js");
4
+ const require_BrowserUpload = require("./BrowserUpload-CQwXEGFv.js");
5
5
  let vue = require("vue");
6
6
  // src/vue.ts
7
7
  const icon = (name) => (0, vue.h)("svg", require_ui.ICON_ATTRIBUTES, [(0, vue.h)("path", { d: require_ui.ICONS[name] })]);
@@ -1,5 +1,5 @@
1
- import { F as UploadItem$1, I as UploadSnapshot$1, M as UploadController, N as UploadControllerOptions$1, O as CalmLensUpload$1, P as UploadFile, f as UploaderProps$1 } from "./ui-CgZpgpNo.js";
2
- import { t as UseCalmLensUploadResult$1 } from "./ReactUpload-nZahpmyg.js";
1
+ import { F as UploadItem$1, I as UploadSnapshot$1, M as UploadController, N as UploadControllerOptions$1, O as CalmLensUpload$1, P as UploadFile, f as UploaderProps$1 } from "./ui-wIiMfqMB.js";
2
+ import { t as UseCalmLensUploadResult$1 } from "./ReactUpload-CAyCsyG6.js";
3
3
  type UploadItem<F extends UploadFile = File> = UploadItem$1<F>;
4
4
  type CalmLensUpload<F extends UploadFile = File> = CalmLensUpload$1<F>;
5
5
  type UploadSnapshot<F extends UploadFile = File> = UploadSnapshot$1<F>;
@@ -1,4 +1,4 @@
1
- import { n as createUploadController$1 } from "./UploadController-txp5NuzH.js";
1
+ import { n as createUploadController$1 } from "./UploadController-qjoYGCwx.js";
2
2
  // src/ui/BrowserUpload.ts
3
3
  /** Creates an upload queue for the browser components, such as one a form starts on submit. */
4
4
  const createUploadController = (options) => createUploadController$1(options);
@@ -1,5 +1,5 @@
1
- import { A as invalidArgument, _ as validateAppClientOptions, j as invalidConfig, l as encodePathSegment } from "./ModerationContextLimits-D1x_WAtP.js";
2
- import { c as prepareSubmitAssetOptions, i as expectUploadedAsset, l as resolveConnectionOptions, t as CalmLensConnection } from "./CalmLensConnection-iyNQHA8L.js";
1
+ import { A as invalidArgument, _ as validateAppClientOptions, j as invalidConfig, l as encodePathSegment } from "./ModerationContextLimits-BaX2QnU8.js";
2
+ import { c as prepareSubmitAssetOptions, i as expectUploadedAsset, l as resolveConnectionOptions, t as CalmLensConnection } from "./CalmLensConnection-MxwwLXdl.js";
3
3
  // src/client/CalmLensAppClient.ts
4
4
  const inspectSymbol = Symbol.for("nodejs.util.inspect.custom");
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { A as invalidArgument, C as MAX_IMAGE_UPLOAD_BYTES, E as isRejectedUploadMimeType, M as API_ERROR_CODES, O as CalmLensError, T as getRejectedUploadMimeTypeError, a as getUserAgent, f as randomUuid, k as SDK_ERROR_CODES, m as stringifyQuery, o as isBrowserRuntime, r as selectModerationContextItems, w as MIN_MULTIPART_IMAGE_UPLOAD_BYTES } from "./ModerationContextLimits-D1x_WAtP.js";
1
+ import { A as invalidArgument, C as MAX_IMAGE_UPLOAD_BYTES, E as isRejectedUploadMimeType, M as API_ERROR_CODES, O as CalmLensError, T as getRejectedUploadMimeTypeError, a as getUserAgent, f as randomUuid, k as SDK_ERROR_CODES, m as stringifyQuery, o as isBrowserRuntime, r as selectModerationContextItems, w as MIN_MULTIPART_IMAGE_UPLOAD_BYTES } from "./ModerationContextLimits-BaX2QnU8.js";
2
2
  // src/contract/AssetPayload.js
3
3
  const uint8ArrayInputToNumbers = (value) => {
4
4
  if (Array.isArray(value)) return value;
@@ -360,7 +360,7 @@ var CalmLensTransport = class {
360
360
  }
361
361
  };
362
362
  /**
363
- * Where `@calmlens/sdk/testing` puts its hooks in client options. Not part of the public API:
363
+ * Where `calmlens/testing` puts its hooks in client options. Not part of the public API:
364
364
  * the mock clients run the real clients against their in-memory API with these.
365
365
  */
366
366
  const MOCK_HOOKS = Symbol.for("@calmlens/sdk.mockHooks");
@@ -1,5 +1,5 @@
1
- import { A as invalidArgument, O as CalmLensError, b as validateServerClientOptions, c as DEFAULT_CDN_BASE_URL, d as pollForDecision, g as transformSelector, h as toTextAssetOptions, j as invalidConfig, k as SDK_ERROR_CODES, l as encodePathSegment, o as isBrowserRuntime, s as isReactNativeRuntime, u as getAssetUrl, v as validateBatchAssetsOptions, x as validateSignedUrlOptions, y as validateRequestOptions } from "./ModerationContextLimits-D1x_WAtP.js";
2
- import { a as getMockHooks, c as prepareSubmitAssetOptions, l as resolveConnectionOptions, o as invalidPayload, r as expectAsset, s as newIdempotencyKey, t as CalmLensConnection } from "./CalmLensConnection-iyNQHA8L.js";
1
+ import { A as invalidArgument, O as CalmLensError, b as validateServerClientOptions, c as DEFAULT_CDN_BASE_URL, d as pollForDecision, g as transformSelector, h as toTextAssetOptions, j as invalidConfig, k as SDK_ERROR_CODES, l as encodePathSegment, o as isBrowserRuntime, s as isReactNativeRuntime, u as getAssetUrl, v as validateBatchAssetsOptions, x as validateSignedUrlOptions, y as validateRequestOptions } from "./ModerationContextLimits-BaX2QnU8.js";
2
+ import { a as getMockHooks, c as prepareSubmitAssetOptions, l as resolveConnectionOptions, o as invalidPayload, r as expectAsset, s as newIdempotencyKey, t as CalmLensConnection } from "./CalmLensConnection-MxwwLXdl.js";
3
3
  import { n as sha256Hex, r as timingSafeEqual, t as hmacSha256Hex } from "./CryptoUtils-B_x8lMIx-DhuWGzqn.js";
4
4
  // src/contract/JsonUtils.js
5
5
  const stringifyJsonCanonical = (value) => JSON.stringify(value, (_key, nestedValue) => {
@@ -27,7 +27,7 @@ const signUploadToken = async (claims, apiKey) => {
27
27
  // src/client/CalmLensUploadTokens.ts
28
28
  /**
29
29
  * Signs a single-use upload token with `apiKey`, locally. `CalmLensServerClient` and
30
- * `MockCalmLensServerClient` share it so both check options the same way. `@calmlens/sdk/testing`
30
+ * `MockCalmLensServerClient` share it so both check options the same way. `calmlens/testing`
31
31
  * exports it as `signUploadToken`, whose fixed `now` (milliseconds since the epoch) and `nonce`
32
32
  * give the same token every time, for comparing with known tokens in tests.
33
33
  */
@@ -1063,7 +1063,7 @@ const pollForDecision = async (retrieve, { timeoutMs = DEFAULT_DECISION_TIMEOUT_
1063
1063
  };
1064
1064
  // src/client/CalmLensVersion.ts
1065
1065
  /** This SDK's version, from its package.json. */
1066
- const SDK_VERSION = "0.17.1";
1066
+ const SDK_VERSION = "0.18.0";
1067
1067
  const runtimeName = () => {
1068
1068
  const runtime = globalThis;
1069
1069
  if (isReactNativeRuntime()) return "react-native";
@@ -1,4 +1,4 @@
1
- import { I as UploadSnapshot, M as UploadController, N as UploadControllerOptions, P as UploadFile } from "./ui-CgZpgpNo.js";
1
+ import { I as UploadSnapshot, M as UploadController, N as UploadControllerOptions, P as UploadFile } from "./ui-wIiMfqMB.js";
2
2
  interface UseCalmLensUploadResult<F extends UploadFile = UploadFile> extends UploadSnapshot<F> {
3
3
  controller: UploadController<F>;
4
4
  addFiles: UploadController<F>["addFiles"];
@@ -1,4 +1,4 @@
1
- import { n as createUploadController } from "./UploadController-txp5NuzH.js";
1
+ import { n as createUploadController } from "./UploadController-qjoYGCwx.js";
2
2
  import { useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
3
3
  // src/ui/ReactUpload.ts
4
4
  /** Re-renders with a controller's snapshot. */
@@ -1,14 +1,7 @@
1
1
  import { n as JURISDICTION_SCHEMA } from "./Jurisdiction-FusEXb4U-1ov6m5yE.js";
2
2
  import { r as timingSafeEqual, t as hmacSha256Hex } from "./CryptoUtils-B_x8lMIx-DhuWGzqn.js";
3
3
  import * as z from "zod";
4
- // src/contract/TestRegionalActions-DfPCKG4S.js
5
- /**
6
- * Marks English text in shared, backend and data modules that the portal shows, so the app's
7
- * message catalog (packages/app/vite/messageCatalog.ts) extracts it and the portal can translate it
8
- * where it renders (`useTranslateText()` from `#i18n`). Returns the text unchanged: the API, events,
9
- * emails and logs keep English. Only a string literal argument is extracted.
10
- */
11
- const msg = (text) => text;
4
+ // src/contract/ModerationCategories-CHFRoeWV.js
12
5
  const CLASSIFICATION_CATEGORIES = [
13
6
  "sexual",
14
7
  "violence",
@@ -19,6 +12,14 @@ const CLASSIFICATION_CATEGORIES = [
19
12
  "personal-information",
20
13
  "profanity"
21
14
  ];
15
+ // src/contract/TestRegionalActions-ShLrTN7y.js
16
+ /**
17
+ * Marks English text in shared, backend and data modules that the portal shows, so the app's
18
+ * message catalog (packages/app/vite/messageCatalog.ts) extracts it and the portal can translate it
19
+ * where it renders (`useTranslateText()` from `#i18n`). Returns the text unchanged: the API, events,
20
+ * emails and logs keep English. Only a string literal argument is extracted.
21
+ */
22
+ const msg = (text) => text;
22
23
  const MODERATION_QUALIFIER_INFO = {
23
24
  "sexual-pornographic-media": {
24
25
  category: "sexual",
@@ -1017,7 +1018,7 @@ const TEST_REGIONAL_ACTIONS_SCHEMA = z.array(z.object({
1017
1018
  "block"
1018
1019
  ])
1019
1020
  }).strict()).max(7).refine((entries) => new Set(entries.map((entry) => entry.region)).size === entries.length, "Choose each region once");
1020
- // src/contract/TestTriggers-DcArt0Nu.js
1021
+ // src/contract/TestTriggers-DTc_iMJF.js
1021
1022
  /** A project's test input key: 32 hexadecimal characters only its members can see. */
1022
1023
  const TEST_INPUT_KEY_PATTERN = /^[a-f0-9]{32}$/;
1023
1024
  const TEXT_CODE_SIGNALS = [
@@ -1,5 +1,5 @@
1
- import { O as CalmLensError, k as SDK_ERROR_CODES } from "./ModerationContextLimits-D1x_WAtP.js";
2
- import { t as CalmLensAppClient } from "./CalmLensAppClient-FVMwrHlH.js";
1
+ import { O as CalmLensError, k as SDK_ERROR_CODES } from "./ModerationContextLimits-BaX2QnU8.js";
2
+ import { t as CalmLensAppClient } from "./CalmLensAppClient-DuFas_dW.js";
3
3
  // src/contract/PlaceholderHashDecode.js
4
4
  /**
5
5
  * Decodes a ThumbHash to an RGBA image. RGB is not be premultiplied by A.
package/esm/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { D as CALMLENS_ERROR_CODES, O as CalmLensError, c as DEFAULT_CDN_BASE_URL, i as SDK_VERSION, n as MODERATION_CONTEXT_USED_ITEMS, r as selectModerationContextItems, t as MODERATION_CONTEXT_USED_CHARACTERS, u as getAssetUrl } from "./ModerationContextLimits-D1x_WAtP.js";
1
+ import { D as CALMLENS_ERROR_CODES, O as CalmLensError, c as DEFAULT_CDN_BASE_URL, i as SDK_VERSION, n as MODERATION_CONTEXT_USED_ITEMS, r as selectModerationContextItems, t as MODERATION_CONTEXT_USED_CHARACTERS, u as getAssetUrl } from "./ModerationContextLimits-BaX2QnU8.js";
2
2
  import "./index.js";
3
- import { t as CalmLensAppClient } from "./CalmLensAppClient-FVMwrHlH.js";
3
+ import { t as CalmLensAppClient } from "./CalmLensAppClient-DuFas_dW.js";
4
4
  export { CALMLENS_ERROR_CODES, CalmLensAppClient, CalmLensError, DEFAULT_CDN_BASE_URL, MODERATION_CONTEXT_USED_CHARACTERS, MODERATION_CONTEXT_USED_ITEMS, SDK_VERSION, getAssetUrl, selectModerationContextItems };
package/esm/elements.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-CgZpgpNo.js";
2
- import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-uZjVFGfP.js";
1
+ import { A as CustomUploadResult, B as MediaAsset, C as getDropzoneHint, D as resolveMessages, E as getUploadItemOutcome, G as MediaState, H as MediaOptions, J as resolveMediaProps, K as getMediaState, L as UploadStage, M as UploadController, P as UploadFile, S as formatMessage, T as getUploadItemMessage, U as MediaSettings, V as MediaImageSource, W as MediaSource, _ as UploadItemView, a as createProgressFetch, b as describeUploader, c as IconName, d as UploaderDisplayOptions, g as DEFAULT_MESSAGES, h as CalmLensMessages, i as CALMLENS_STYLES, j as UploadClient, k as CustomUploadContext, l as MediaDisplayOptions, m as getMediaLoadKey, n as CalmLensTheme, o as ICONS, p as getMediaAspectRatio, q as pickMediaSource, r as resolveTheme, s as ICON_ATTRIBUTES, t as CALMLENS_THEME, u as MediaProps, v as UploaderView, w as getMediaUnavailableMessage, x as formatBytes, y as describeUploadItem, z as isFileAccepted } from "./ui-wIiMfqMB.js";
2
+ import { a as UploaderProps, i as UploadSnapshot, n as UploadControllerOptions, r as UploadItem, s as createUploadController, t as CalmLensUpload } from "./BrowserUpload-BT091eOB.js";
3
3
  /** The `detail` of each event the elements dispatch. */
4
4
  export interface CalmLensElementEvents {
5
5
  "calmlens-uploaded": CalmLensUpload;
package/esm/elements.js CHANGED
@@ -1,6 +1,6 @@
1
- import { _ as getMediaState, a as getMediaAspectRatio, b as ICONS, c as describeUploadItem, d as formatMessage, f as getDropzoneHint, g as resolveMessages, h as getUploadItemOutcome, i as resolveTheme, l as describeUploader, m as getUploadItemMessage, o as getMediaLoadKey, p as getMediaUnavailableMessage, r as CALMLENS_THEME, s as DEFAULT_MESSAGES, t as CALMLENS_STYLES, u as formatBytes, v as pickMediaSource, x as ICON_ATTRIBUTES, y as resolveMediaProps } from "./ui-Ca_SpJXf.js";
2
- import { i as createProgressFetch, n as createUploadController$1, r as isFileAccepted, t as UploadController } from "./UploadController-txp5NuzH.js";
3
- import { t as createUploadController } from "./BrowserUpload-D7-zNmc0.js";
1
+ import { _ as getMediaState, a as getMediaAspectRatio, b as ICONS, c as describeUploadItem, d as formatMessage, f as getDropzoneHint, g as resolveMessages, h as getUploadItemOutcome, i as resolveTheme, l as describeUploader, m as getUploadItemMessage, o as getMediaLoadKey, p as getMediaUnavailableMessage, r as CALMLENS_THEME, s as DEFAULT_MESSAGES, t as CALMLENS_STYLES, u as formatBytes, v as pickMediaSource, x as ICON_ATTRIBUTES, y as resolveMediaProps } from "./ui-CCY3yXFn.js";
2
+ import { i as createProgressFetch, n as createUploadController$1, r as isFileAccepted, t as UploadController } from "./UploadController-qjoYGCwx.js";
3
+ import { t as createUploadController } from "./BrowserUpload-D2xBWqhm.js";
4
4
  // src/elements.ts
5
5
  const el = (tag, attributes = {}, children = []) => {
6
6
  const node = document.createElement(tag);
package/esm/index.js CHANGED
@@ -1 +1 @@
1
- export { D as CALMLENS_ERROR_CODES, O as CalmLensError, c as DEFAULT_CDN_BASE_URL, t as MODERATION_CONTEXT_USED_CHARACTERS, n as MODERATION_CONTEXT_USED_ITEMS, i as SDK_VERSION, u as getAssetUrl, r as selectModerationContextItems } from "./ModerationContextLimits-D1x_WAtP.js";
1
+ export { D as CALMLENS_ERROR_CODES, O as CalmLensError, c as DEFAULT_CDN_BASE_URL, t as MODERATION_CONTEXT_USED_CHARACTERS, n as MODERATION_CONTEXT_USED_ITEMS, i as SDK_VERSION, u as getAssetUrl, r as selectModerationContextItems } from "./ModerationContextLimits-BaX2QnU8.js";