@prosopo/procaptcha-bundle 4.2.5 → 4.4.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 (59) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +16 -15
  2. package/.turbo/turbo-build$colon$tsc.log +26 -26
  3. package/.turbo/turbo-build.log +16 -15
  4. package/CHANGELOG.md +85 -0
  5. package/dist/cjs/index.cjs +101 -21
  6. package/dist/cjs/util/captcha/captchaRenderer.cjs +20 -1
  7. package/dist/cjs/util/configCreator.cjs +4 -2
  8. package/dist/cjs/util/startMode.cjs +20 -0
  9. package/dist/cjs/util/widgetFactory.cjs +8 -5
  10. package/dist/index.d.ts +4 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +101 -22
  13. package/dist/index.js.map +1 -1
  14. package/dist/tests/bind.unit.test.d.ts +2 -0
  15. package/dist/tests/bind.unit.test.d.ts.map +1 -0
  16. package/dist/tests/bind.unit.test.js +166 -0
  17. package/dist/tests/bind.unit.test.js.map +1 -0
  18. package/dist/tests/detectorPrefetch.unit.test.js.map +1 -1
  19. package/dist/tests/procaptchaReady.unit.test.js +1 -0
  20. package/dist/tests/procaptchaReady.unit.test.js.map +1 -1
  21. package/dist/tests/reset.unit.test.js +6 -2
  22. package/dist/tests/reset.unit.test.js.map +1 -1
  23. package/dist/tests/start.unit.test.d.ts +2 -0
  24. package/dist/tests/start.unit.test.d.ts.map +1 -0
  25. package/dist/tests/start.unit.test.js +103 -0
  26. package/dist/tests/start.unit.test.js.map +1 -0
  27. package/dist/tests/util/startMode.test.d.ts +2 -0
  28. package/dist/tests/util/startMode.test.d.ts.map +1 -0
  29. package/dist/tests/util/startMode.test.js +48 -0
  30. package/dist/tests/util/startMode.test.js.map +1 -0
  31. package/dist/util/captcha/captchaRenderer.d.ts +1 -1
  32. package/dist/util/captcha/captchaRenderer.d.ts.map +1 -1
  33. package/dist/util/captcha/captchaRenderer.js +20 -1
  34. package/dist/util/captcha/captchaRenderer.js.map +1 -1
  35. package/dist/util/configCreator.d.ts +14 -2
  36. package/dist/util/configCreator.d.ts.map +1 -1
  37. package/dist/util/configCreator.js +5 -3
  38. package/dist/util/configCreator.js.map +1 -1
  39. package/dist/util/startMode.d.ts +5 -0
  40. package/dist/util/startMode.d.ts.map +1 -0
  41. package/dist/util/startMode.js +18 -0
  42. package/dist/util/startMode.js.map +1 -0
  43. package/dist/util/widgetFactory.d.ts +7 -2
  44. package/dist/util/widgetFactory.d.ts.map +1 -1
  45. package/dist/util/widgetFactory.js +8 -5
  46. package/dist/util/widgetFactory.js.map +1 -1
  47. package/package.json +12 -12
  48. package/src/index.ts +145 -28
  49. package/src/tests/bind.unit.test.ts +227 -0
  50. package/src/tests/detectorPrefetch.unit.test.ts +2 -2
  51. package/src/tests/procaptchaReady.unit.test.ts +1 -0
  52. package/src/tests/reset.unit.test.ts +9 -3
  53. package/src/tests/start.unit.test.ts +155 -0
  54. package/src/tests/util/startMode.test.ts +113 -0
  55. package/src/util/captcha/captchaRenderer.tsx +33 -13
  56. package/src/util/configCreator.ts +29 -11
  57. package/src/util/startMode.ts +53 -0
  58. package/src/util/widgetFactory.ts +10 -3
  59. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,103 @@
1
+ import { PROCAPTCHA_START_EVENT, StartModeEnum, } from "@prosopo/types";
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
3
+ const mocks = vi.hoisted(() => ({
4
+ prefetchDetector: vi.fn(),
5
+ createWidgets: vi.fn(),
6
+ }));
7
+ vi.mock("@prosopo/procaptcha-frictionless", () => ({
8
+ prefetchDetector: mocks.prefetchDetector,
9
+ }));
10
+ vi.mock("@prosopo/procaptcha-common", () => ({
11
+ getWindowCallback: vi.fn(),
12
+ pickIpMode: vi.fn(() => undefined),
13
+ }));
14
+ vi.mock("../util/widgetFactory.js", () => ({
15
+ WidgetFactory: vi.fn(function () {
16
+ return { createWidgets: mocks.createWidgets };
17
+ }),
18
+ }));
19
+ const { render, remove, start } = await import("../index.js");
20
+ const SITE_KEY = "5CcNvLUdiXFpzKDMjThGLSK9rhWHA1H4EF3zrgkpkjAdqmuP";
21
+ const makeWidget = () => ({
22
+ root: { unmount: vi.fn(), render: vi.fn() },
23
+ container: document.createElement("div"),
24
+ });
25
+ const flush = () => new Promise((resolve) => setTimeout(resolve, 0));
26
+ const renderWidget = async (options = {}) => {
27
+ mocks.createWidgets.mockResolvedValueOnce([makeWidget()]);
28
+ const element = document.createElement("div");
29
+ const id = await render(element, { siteKey: SITE_KEY, ...options });
30
+ if (!id)
31
+ throw new Error("expected render to return a widget id");
32
+ return { element, id };
33
+ };
34
+ let received;
35
+ const onStart = (event) => {
36
+ received.push(event.detail);
37
+ };
38
+ beforeEach(async () => {
39
+ vi.clearAllMocks();
40
+ await remove();
41
+ received = [];
42
+ document.addEventListener(PROCAPTCHA_START_EVENT, onStart);
43
+ });
44
+ afterEach(() => {
45
+ document.removeEventListener(PROCAPTCHA_START_EVENT, onStart);
46
+ });
47
+ describe("start", () => {
48
+ it("addresses one event to each widget when no id is given", async () => {
49
+ const first = await renderWidget();
50
+ const second = await renderWidget();
51
+ start();
52
+ expect(received.map((detail) => detail.element)).toEqual([
53
+ first.element,
54
+ second.element,
55
+ ]);
56
+ });
57
+ it("addresses the event to the widget whose id is given", async () => {
58
+ await renderWidget();
59
+ const second = await renderWidget();
60
+ start(second.id);
61
+ expect(received).toHaveLength(1);
62
+ expect(received[0]?.element).toBe(second.element);
63
+ });
64
+ it("reports an unknown id instead of dispatching", async () => {
65
+ const error = vi.spyOn(console, "error").mockImplementation(() => { });
66
+ await renderWidget();
67
+ start("procaptcha-widget-does-not-exist");
68
+ expect(received).toHaveLength(0);
69
+ expect(error).toHaveBeenCalledTimes(1);
70
+ error.mockRestore();
71
+ });
72
+ it("reports when there is nothing to start", () => {
73
+ const error = vi.spyOn(console, "error").mockImplementation(() => { });
74
+ start();
75
+ expect(received).toHaveLength(0);
76
+ expect(error).toHaveBeenCalledTimes(1);
77
+ error.mockRestore();
78
+ });
79
+ it("is exposed on window.procaptcha", () => {
80
+ expect(window.procaptcha.start).toBe(start);
81
+ });
82
+ });
83
+ describe("detector prefetch", () => {
84
+ it("runs on render in auto mode", async () => {
85
+ await renderWidget();
86
+ await flush();
87
+ expect(mocks.prefetchDetector).toHaveBeenCalledTimes(1);
88
+ });
89
+ it("is skipped in manual mode so nothing reaches the provider on load", async () => {
90
+ await renderWidget({ startMode: StartModeEnum.manual });
91
+ await flush();
92
+ expect(mocks.prefetchDetector).not.toHaveBeenCalled();
93
+ });
94
+ it("is skipped when the element asks for manual mode", async () => {
95
+ mocks.createWidgets.mockResolvedValueOnce([makeWidget()]);
96
+ const element = document.createElement("div");
97
+ element.setAttribute("data-start-mode", "manual");
98
+ await render(element, { siteKey: SITE_KEY });
99
+ await flush();
100
+ expect(mocks.prefetchDetector).not.toHaveBeenCalled();
101
+ });
102
+ });
103
+ //# sourceMappingURL=start.unit.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.unit.test.js","sourceRoot":"","sources":["../../src/tests/start.unit.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=startMode.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startMode.test.d.ts","sourceRoot":"","sources":["../../../src/tests/util/startMode.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { ProcaptchaConfigSchema, StartModeEnum, } from "@prosopo/types";
2
+ import { JSDOM } from "jsdom";
3
+ import { beforeEach, describe, expect, it, vi } from "vitest";
4
+ import { START_MODE_ATTRIBUTE, resolveStartMode, setStartMode, } from "../../util/startMode.js";
5
+ const SITE_KEY = "5site";
6
+ const makeConfig = () => ProcaptchaConfigSchema.parse({ account: { address: SITE_KEY } });
7
+ const makeElement = (attributes = {}) => {
8
+ const dom = new JSDOM("<!DOCTYPE html><html><body></body></html>");
9
+ const element = dom.window.document.createElement("div");
10
+ for (const [name, value] of Object.entries(attributes)) {
11
+ element.setAttribute(name, value);
12
+ }
13
+ return element;
14
+ };
15
+ const renderOptions = (overrides = {}) => ({ siteKey: SITE_KEY, ...overrides });
16
+ describe("resolveStartMode", () => {
17
+ beforeEach(() => {
18
+ vi.restoreAllMocks();
19
+ });
20
+ it("defaults to auto", () => {
21
+ expect(resolveStartMode(renderOptions(), makeElement())).toBe(StartModeEnum.auto);
22
+ expect(resolveStartMode(undefined, makeElement())).toBe(StartModeEnum.auto);
23
+ });
24
+ it("reads the start mode from the render options", () => {
25
+ expect(resolveStartMode(renderOptions({ startMode: StartModeEnum.manual }), makeElement())).toBe(StartModeEnum.manual);
26
+ });
27
+ it("reads the start mode from the data attribute", () => {
28
+ expect(resolveStartMode(renderOptions(), makeElement({ [START_MODE_ATTRIBUTE]: "manual" }))).toBe(StartModeEnum.manual);
29
+ });
30
+ it("prefers the render options over the attribute", () => {
31
+ expect(resolveStartMode(renderOptions({ startMode: StartModeEnum.auto }), makeElement({ [START_MODE_ATTRIBUTE]: "manual" }))).toBe(StartModeEnum.auto);
32
+ });
33
+ it("falls back to auto on an unknown value and says so", () => {
34
+ const error = vi.spyOn(console, "error").mockImplementation(() => { });
35
+ expect(resolveStartMode(renderOptions(), makeElement({ [START_MODE_ATTRIBUTE]: "later" }))).toBe(StartModeEnum.auto);
36
+ expect(error).toHaveBeenCalledTimes(1);
37
+ expect(error.mock.calls[0]?.[0]).toContain("later");
38
+ });
39
+ });
40
+ describe("setStartMode", () => {
41
+ it("writes the resolved mode onto the config", () => {
42
+ const config = makeConfig();
43
+ expect(config.startMode).toBe(StartModeEnum.auto);
44
+ setStartMode(renderOptions(), makeElement({ [START_MODE_ATTRIBUTE]: "manual" }), config);
45
+ expect(config.startMode).toBe(StartModeEnum.manual);
46
+ });
47
+ });
48
+ //# sourceMappingURL=startMode.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startMode.test.js","sourceRoot":"","sources":["../../../src/tests/util/startMode.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type EmotionCache } from "@emotion/cache";
2
2
  import type { Ti18n } from "@prosopo/locale";
3
- import type { Callbacks, ProcaptchaClientConfigOutput, ProcaptchaRenderOptions } from "@prosopo/types";
3
+ import { type Callbacks, type ProcaptchaClientConfigOutput, type ProcaptchaRenderOptions } from "@prosopo/types";
4
4
  import type { ReactNode } from "react";
5
5
  import { type Root } from "react-dom/client";
6
6
  interface RenderSettings {
@@ -1 +1 @@
1
- {"version":3,"file":"captchaRenderer.d.ts","sourceRoot":"","sources":["../../../src/util/captcha/captchaRenderer.tsx"],"names":[],"mappings":"AAcA,OAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACX,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,kBAAkB,CAAC;AAOzD,UAAU,cAAc;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACxB;AAED,cAAM,eAAe;IACb,aAAa,CACnB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,WAAW,EAC5B,aAAa,CAAC,EAAE,OAAO,GACrB,IAAI;IAyCP,SAAS,CAAC,uBAAuB,CAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,4BAA4B,EACpC,aAAa,EAAE,uBAAuB,GACpC,IAAI;IAMP,SAAS,CAAC,gBAAgB,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,WAAW,GACpB,YAAY;IAQf,SAAS,CAAC,eAAe,CACxB,SAAS,EAAE,WAAW,EACtB,gBAAgB,EAAE,MAAM,GACtB,IAAI;IAMP,SAAS,CAAC,sBAAsB,CAC/B,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,SAAS,GACzB,IAAI;CAKP;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"captchaRenderer.d.ts","sourceRoot":"","sources":["../../../src/util/captcha/captchaRenderer.tsx"],"names":[],"mappings":"AAcA,OAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACN,KAAK,SAAS,EAGd,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,kBAAkB,CAAC;AAoBzD,UAAU,cAAc;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACxB;AAED,cAAM,eAAe;IACb,aAAa,CACnB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,OAAO,EAClB,eAAe,EAAE,WAAW,EAC5B,aAAa,CAAC,EAAE,OAAO,GACrB,IAAI;IA6CP,SAAS,CAAC,uBAAuB,CAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,4BAA4B,EACpC,aAAa,EAAE,uBAAuB,GACpC,IAAI;IAOP,SAAS,CAAC,gBAAgB,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,WAAW,GACpB,YAAY;IAQf,SAAS,CAAC,eAAe,CACxB,SAAS,EAAE,WAAW,EACtB,gBAAgB,EAAE,MAAM,GACtB,IAAI;IAMP,SAAS,CAAC,sBAAsB,CAC/B,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,SAAS,GACzB,IAAI;CAKP;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1,17 +1,35 @@
1
1
  import "../../_virtual/_rolldown/runtime.js";
2
+ import { setStartMode } from "../startMode.js";
2
3
  import { setLanguage } from "../language.js";
3
4
  import { setClientSessionId } from "../clientSession.js";
4
5
  import { createConfig } from "../configCreator.js";
5
6
  import { setValidChallengeLength } from "../timeout.js";
6
7
  import { BundleCaptcha } from "./components/bundleCaptcha.js";
8
+ import { Placement } from "@prosopo/types";
7
9
  import createCache from "@emotion/cache";
8
10
  import { CacheProvider } from "@emotion/react";
9
11
  import { createRoot } from "react-dom/client";
10
12
  import { jsx } from "react/jsx-runtime";
11
13
  //#region src/util/captcha/captchaRenderer.tsx
14
+ var resolveRequestedPlacement = (element, renderOptions) => {
15
+ const requested = renderOptions.placement ?? element.getAttribute("data-placement");
16
+ if (!requested) return void 0;
17
+ const parsed = Placement.safeParse(requested);
18
+ return parsed.success ? parsed.data : void 0;
19
+ };
12
20
  var CaptchaRenderer = class {
13
21
  renderCaptcha(settings, container, renderOptions, callbacks, isWeb2, i18n, invisible, widgetContainer, sourceElement) {
14
- const config = createConfig(renderOptions.siteKey, renderOptions.theme, renderOptions.language, isWeb2, invisible, renderOptions.userAccountAddress, renderOptions.ipv4, renderOptions.ipv6);
22
+ const config = createConfig({
23
+ siteKey: renderOptions.siteKey,
24
+ theme: renderOptions.theme,
25
+ language: renderOptions.language,
26
+ web2: isWeb2,
27
+ invisible,
28
+ placement: resolveRequestedPlacement(sourceElement || container, renderOptions),
29
+ userAccountAddress: renderOptions.userAccountAddress,
30
+ ipv4: renderOptions.ipv4,
31
+ ipv6: renderOptions.ipv6
32
+ });
15
33
  this.readAndValidateSettings(sourceElement || container, config, renderOptions);
16
34
  const reactRoot = this.createReactRoot(container, settings.identifierPrefix);
17
35
  const emotionCache = this.makeEmotionCache(settings.emotionCacheKey, container);
@@ -28,6 +46,7 @@ var CaptchaRenderer = class {
28
46
  setValidChallengeLength(renderOptions, element, config);
29
47
  setLanguage(renderOptions, element, config);
30
48
  setClientSessionId(renderOptions, element, config);
49
+ setStartMode(renderOptions, element, config);
31
50
  }
32
51
  makeEmotionCache(cacheKey, container) {
33
52
  return createCache({
@@ -1 +1 @@
1
- {"version":3,"file":"captchaRenderer.js","sourceRoot":"","sources":["../../../src/util/captcha/captchaRenderer.tsx"],"names":[],"mappings":";AAcA,OAAO,WAAkC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQ9D,MAAM,eAAe;IACb,aAAa,CACnB,QAAwB,EACxB,SAAsB,EACtB,aAAsC,EACtC,SAAoB,EACpB,MAAe,EACf,IAAW,EACX,SAAkB,EAClB,eAA4B,EAC5B,aAAuB;QAEvB,MAAM,MAAM,GAAG,YAAY,CAC1B,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,KAAK,EACnB,aAAa,CAAC,QAAQ,EACtB,MAAM,EACN,SAAS,EACT,aAAa,CAAC,kBAAkB,EAChC,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,IAAI,CAClB,CAAC;QACF,IAAI,CAAC,uBAAuB,CAC3B,aAAa,IAAI,SAAS,EAC1B,MAAM,EACN,aAAa,CACb,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACrC,SAAS,EACT,QAAQ,CAAC,gBAAgB,CACzB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CACzC,QAAQ,CAAC,eAAe,EACxB,SAAS,CACT,CAAC;QAEF,MAAM,gBAAgB,GAAG,CACxB,KAAC,aAAa,IACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,eAAe,GACzB,CACF,CAAC;QAEF,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAEvE,OAAO,SAAS,CAAC;IAClB,CAAC;IAES,uBAAuB,CAChC,OAAgB,EAChB,MAAoC,EACpC,aAAsC;QAEtC,uBAAuB,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxD,WAAW,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,kBAAkB,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAES,gBAAgB,CACzB,QAAgB,EAChB,SAAsB;QAEtB,OAAO,WAAW,CAAC;YAClB,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,SAAS;SACpB,CAAC,CAAC;IACJ,CAAC;IAES,eAAe,CACxB,SAAsB,EACtB,gBAAwB;QAExB,OAAO,UAAU,CAAC,SAAS,EAAE;YAC5B,gBAAgB,EAAE,gBAAgB;SAClC,CAAC,CAAC;IACJ,CAAC;IAES,sBAAsB,CAC/B,SAAe,EACf,YAA0B,EAC1B,gBAA2B;QAE3B,SAAS,CAAC,MAAM,CACf,KAAC,aAAa,IAAC,KAAK,EAAE,YAAY,YAAG,gBAAgB,GAAiB,CACtE,CAAC;IACH,CAAC;CACD;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"captchaRenderer.js","sourceRoot":"","sources":["../../../src/util/captcha/captchaRenderer.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,17 @@
1
1
  import type { Languages } from "@prosopo/locale";
2
- import { type ProcaptchaClientConfigOutput } from "@prosopo/types";
3
- declare function createConfig(siteKey?: string, theme?: "light" | "dark", language?: (typeof Languages)[keyof typeof Languages], web2?: boolean, invisible?: boolean, userAccountAddress?: string, ipv4?: boolean, ipv6?: boolean): ProcaptchaClientConfigOutput;
2
+ import { type PlacementType, type ProcaptchaClientConfigOutput } from "@prosopo/types";
3
+ interface CreateConfigOptions {
4
+ siteKey?: string;
5
+ theme?: "light" | "dark";
6
+ language?: (typeof Languages)[keyof typeof Languages];
7
+ web2?: boolean;
8
+ invisible?: boolean;
9
+ placement?: PlacementType;
10
+ userAccountAddress?: string;
11
+ ipv4?: boolean;
12
+ ipv6?: boolean;
13
+ }
14
+ declare function createConfig(options?: CreateConfigOptions): ProcaptchaClientConfigOutput;
4
15
  export { createConfig };
16
+ export type { CreateConfigOptions };
5
17
  //# sourceMappingURL=configCreator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configCreator.d.ts","sourceRoot":"","sources":["../../src/util/configCreator.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAEN,KAAK,4BAA4B,EAEjC,MAAM,gBAAgB,CAAC;AAExB,iBAAS,YAAY,CACpB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,GAAE,OAAO,GAAG,MAAgB,EACjC,QAAQ,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,EACrD,IAAI,UAAO,EACX,SAAS,UAAQ,EACjB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,IAAI,UAAQ,EACZ,IAAI,UAAQ,GACV,4BAA4B,CAsB9B;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"configCreator.d.ts","sourceRoot":"","sources":["../../src/util/configCreator.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,4BAA4B,EAGjC,MAAM,gBAAgB,CAAC;AAExB,UAAU,mBAAmB;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,iBAAS,YAAY,CACpB,OAAO,GAAE,mBAAwB,GAC/B,4BAA4B,CAgC9B;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
- import { EnvironmentTypesSchema, ProcaptchaConfigSchema } from "@prosopo/types";
1
+ import { EnvironmentTypesSchema, ProcaptchaConfigSchema, resolvePlacement } from "@prosopo/types";
2
2
  //#region src/util/configCreator.ts
3
- function createConfig(siteKey, theme = "light", language, web2 = true, invisible = false, userAccountAddress, ipv4 = false, ipv6 = false) {
4
- if (!siteKey) siteKey = process.env.PROSOPO_SITE_KEY || "";
3
+ function createConfig(options = {}) {
4
+ const { theme = "light", language, web2 = true, invisible = false, placement, userAccountAddress, ipv4 = false, ipv6 = false } = options;
5
+ const siteKey = options.siteKey || process.env.PROSOPO_SITE_KEY || "";
5
6
  return ProcaptchaConfigSchema.parse({
6
7
  defaultEnvironment: process.env.PROSOPO_DEFAULT_ENVIRONMENT ? EnvironmentTypesSchema.parse(process.env.PROSOPO_DEFAULT_ENVIRONMENT) : EnvironmentTypesSchema.enum.development,
7
8
  userAccountAddress: userAccountAddress || "",
@@ -10,6 +11,7 @@ function createConfig(siteKey, theme = "light", language, web2 = true, invisible
10
11
  mongoAtlasUri: process.env.PROSOPO_MONGO_EVENTS_URI || "",
11
12
  web2,
12
13
  mode: invisible ? "invisible" : "visible",
14
+ placement: resolvePlacement(placement, invisible),
13
15
  theme,
14
16
  language,
15
17
  ipv4,
@@ -1 +1 @@
1
- {"version":3,"file":"configCreator.js","sourceRoot":"","sources":["../../src/util/configCreator.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,sBAAsB,EAEtB,sBAAsB,GACtB,MAAM,gBAAgB,CAAC;AAExB,SAAS,YAAY,CACpB,OAAgB,EAChB,QAA0B,OAAO,EACjC,QAAqD,EACrD,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,kBAA2B,EAC3B,IAAI,GAAG,KAAK,EACZ,IAAI,GAAG,KAAK;IAEZ,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,sBAAsB,CAAC,KAAK,CAAC;QACnC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YAC1D,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACvE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW;QAC1C,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;QAC5C,OAAO,EAAE;YACR,OAAO,EAAE,OAAO;SAChB;QACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QAC/C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QACzD,IAAI;QACJ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACzC,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"configCreator.js","sourceRoot":"","sources":["../../src/util/configCreator.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,sBAAsB,EAGtB,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,gBAAgB,CAAC;AAcxB,SAAS,YAAY,CACpB,UAA+B,EAAE;IAEjC,MAAM,EACL,KAAK,GAAG,OAAO,EACf,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,kBAAkB,EAClB,IAAI,GAAG,KAAK,EACZ,IAAI,GAAG,KAAK,GACZ,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAEtE,OAAO,sBAAsB,CAAC,KAAK,CAAC;QACnC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YAC1D,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACvE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW;QAC1C,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;QAC5C,OAAO,EAAE;YACR,OAAO,EAAE,OAAO;SAChB;QACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;QAC/C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QACzD,IAAI;QACJ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACzC,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;QACjD,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ProcaptchaClientConfigOutput, type ProcaptchaRenderOptions, type StartMode } from "@prosopo/types";
2
+ export declare const START_MODE_ATTRIBUTE = "data-start-mode";
3
+ export declare const resolveStartMode: (renderOptions: ProcaptchaRenderOptions | undefined, element: Element) => StartMode;
4
+ export declare const setStartMode: (renderOptions: ProcaptchaRenderOptions | undefined, element: Element, config: ProcaptchaClientConfigOutput) => void;
5
+ //# sourceMappingURL=startMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startMode.d.ts","sourceRoot":"","sources":["../../src/util/startMode.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EAGd,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,eAAO,MAAM,gBAAgB,kBACb,uBAAuB,GAAG,SAAS,WACzC,OAAO,KACd,SAiBF,CAAC;AAEF,eAAO,MAAM,YAAY,kBACT,uBAAuB,GAAG,SAAS,WACzC,OAAO,UACR,4BAA4B,KAClC,IAEF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { StartModeEnum, StartModeSchema } from "@prosopo/types";
2
+ //#region src/util/startMode.ts
3
+ var START_MODE_ATTRIBUTE = "data-start-mode";
4
+ var resolveStartMode = (renderOptions, element) => {
5
+ const requested = renderOptions?.startMode || element.getAttribute("data-start-mode");
6
+ if (!requested) return StartModeEnum.auto;
7
+ const parsed = StartModeSchema.safeParse(requested);
8
+ if (!parsed.success) {
9
+ console.error(`Ignoring unknown start mode "${requested}"; expected one of ${StartModeSchema.options.join(", ")}`);
10
+ return StartModeEnum.auto;
11
+ }
12
+ return parsed.data;
13
+ };
14
+ var setStartMode = (renderOptions, element, config) => {
15
+ config.startMode = resolveStartMode(renderOptions, element);
16
+ };
17
+ //#endregion
18
+ export { START_MODE_ATTRIBUTE, resolveStartMode, setStartMode };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startMode.js","sourceRoot":"","sources":["../../src/util/startMode.ts"],"names":[],"mappings":"AAcA,OAAO,EAIN,aAAa,EACb,eAAe,GACf,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,aAAkD,EAClD,OAAgB,EACJ,EAAE;IACd,MAAM,SAAS,GACd,aAAa,EAAE,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAExE,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,aAAa,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CACZ,gCAAgC,SAAS,sBAAsB,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACnG,CAAC;QACF,OAAO,aAAa,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC3B,aAAkD,EAClD,OAAgB,EAChB,MAAoC,EAC7B,EAAE;IACT,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC,CAAC"}
@@ -3,16 +3,21 @@ import type { Callbacks, ProcaptchaRenderOptions } from "@prosopo/types";
3
3
  import type { Root } from "react-dom/client";
4
4
  import type { CaptchaRenderer } from "./captcha/captchaRenderer.js";
5
5
  import type { WidgetThemeResolver } from "./widgetThemeResolver.js";
6
+ interface CreatedWidget {
7
+ root: Root;
8
+ container: HTMLElement;
9
+ }
6
10
  declare class WidgetFactory {
7
11
  private readonly widgetThemeResolver;
8
12
  private captchaRenderer;
9
13
  private _i18n;
10
14
  constructor(widgetThemeResolver: WidgetThemeResolver);
11
15
  get i18n(): Ti18n;
12
- createWidgets(containers: Element[], renderOptions: ProcaptchaRenderOptions, isWeb2?: boolean, invisible?: boolean): Promise<Root[]>;
13
- createWidget(container: Element, renderOptions: ProcaptchaRenderOptions, callbacks: Callbacks, isWeb2?: boolean, invisible?: boolean): Promise<Root>;
16
+ createWidgets(containers: Element[], renderOptions: ProcaptchaRenderOptions, isWeb2?: boolean, invisible?: boolean): Promise<CreatedWidget[]>;
17
+ createWidget(container: Element, renderOptions: ProcaptchaRenderOptions, callbacks: Callbacks, isWeb2?: boolean, invisible?: boolean): Promise<CreatedWidget>;
14
18
  protected getCaptchaRenderer(language?: string): Promise<CaptchaRenderer>;
15
19
  protected createCaptchaRenderer(): Promise<CaptchaRenderer>;
16
20
  }
17
21
  export { WidgetFactory };
22
+ export type { CreatedWidget };
18
23
  //# sourceMappingURL=widgetFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"widgetFactory.d.ts","sourceRoot":"","sources":["../../src/util/widgetFactory.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAMzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,cAAM,aAAa;IAKjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJrC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,KAAK,CAAsB;gBAGjB,mBAAmB,EAAE,mBAAmB;IAG1D,IAAI,IAAI,IAAI,KAAK,CAKhB;IAEY,aAAa,CACzB,UAAU,EAAE,OAAO,EAAE,EACrB,aAAa,EAAE,uBAAuB,EACtC,MAAM,UAAO,EACb,SAAS,UAAQ,GACf,OAAO,CAAC,IAAI,EAAE,CAAC;IAgBL,YAAY,CACxB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,SAAS,EACpB,MAAM,UAAO,EACb,SAAS,UAAQ,GACf,OAAO,CAAC,IAAI,CAAC;cA2DA,kBAAkB,CACjC,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC;cAiBX,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC;CAMjE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"widgetFactory.d.ts","sourceRoot":"","sources":["../../src/util/widgetFactory.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAMzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE,UAAU,aAAa;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,WAAW,CAAC;CACvB;AAED,cAAM,aAAa;IAKjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJrC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,KAAK,CAAsB;gBAGjB,mBAAmB,EAAE,mBAAmB;IAG1D,IAAI,IAAI,IAAI,KAAK,CAKhB;IAEY,aAAa,CACzB,UAAU,EAAE,OAAO,EAAE,EACrB,aAAa,EAAE,uBAAuB,EACtC,MAAM,UAAO,EACb,SAAS,UAAQ,GACf,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBd,YAAY,CACxB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,SAAS,EACpB,MAAM,UAAO,EACb,SAAS,UAAQ,GACf,OAAO,CAAC,aAAa,CAAC;cA2DT,kBAAkB,CACjC,QAAQ,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC;cAiBX,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC;CAMjE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -36,11 +36,14 @@ var WidgetFactory = class {
36
36
  widgetContainer = widgetResult.webComponent;
37
37
  }
38
38
  const language = resolveLanguage(renderOptions, container);
39
- return (await this.getCaptchaRenderer(language)).renderCaptcha({
40
- identifierPrefix: "procaptcha-",
41
- emotionCacheKey: "procaptcha",
42
- webComponentTag: "prosopo-procaptcha"
43
- }, widgetInteractiveArea, renderOptions, callbacks, isWeb2, this.i18n, invisible, widgetContainer, container);
39
+ return {
40
+ root: (await this.getCaptchaRenderer(language)).renderCaptcha({
41
+ identifierPrefix: "procaptcha-",
42
+ emotionCacheKey: "procaptcha",
43
+ webComponentTag: "prosopo-procaptcha"
44
+ }, widgetInteractiveArea, renderOptions, callbacks, isWeb2, this.i18n, invisible, widgetContainer, container),
45
+ container: widgetContainer
46
+ };
44
47
  }
45
48
  async getCaptchaRenderer(language) {
46
49
  if (this._i18n === null) this._i18n = await loadI18next(false, language);
@@ -1 +1 @@
1
- {"version":3,"file":"widgetFactory.js","sourceRoot":"","sources":["../../src/util/widgetFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgetFactory.js","sourceRoot":"","sources":["../../src/util/widgetFactory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha-bundle",
3
- "version": "4.2.5",
3
+ "version": "4.4.0",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -39,13 +39,13 @@
39
39
  },
40
40
  "browserslist": ["> 0.5%, last 2 versions, not dead"],
41
41
  "dependencies": {
42
- "@prosopo/dotenv": "3.0.53",
43
- "@prosopo/locale": "3.4.0",
44
- "@prosopo/procaptcha-common": "2.12.5",
45
- "@prosopo/procaptcha-frictionless": "2.13.23",
46
- "@prosopo/types": "5.5.3",
47
- "@prosopo/util": "3.3.7",
48
- "@prosopo/widget-skeleton": "2.8.6",
42
+ "@prosopo/dotenv": "3.0.55",
43
+ "@prosopo/locale": "3.4.1",
44
+ "@prosopo/procaptcha-common": "2.13.0",
45
+ "@prosopo/procaptcha-frictionless": "2.15.0",
46
+ "@prosopo/types": "5.7.0",
47
+ "@prosopo/util": "3.3.9",
48
+ "@prosopo/widget-skeleton": "2.8.7",
49
49
  "dotenv": "16.4.5",
50
50
  "fast-glob": "3.3.3",
51
51
  "jsdom": "25.0.0",
@@ -68,12 +68,12 @@
68
68
  "registry": "https://registry.npmjs.org"
69
69
  },
70
70
  "devDependencies": {
71
- "@prosopo/config": "3.3.12",
72
- "@types/jsdom": "21.1.7",
71
+ "@prosopo/config": "3.3.14",
72
+ "@types/jsdom": "30.0.0",
73
73
  "@types/node": "22.10.2",
74
74
  "@types/react": "19.2.18",
75
75
  "@types/react-dom": "19.2.5",
76
- "@vitest/coverage-v8": "4.1.10",
76
+ "@vitest/coverage-v8": "4.1.11",
77
77
  "concurrently": "9.0.1",
78
78
  "del-cli": "6.0.0",
79
79
  "npm-run-all": "4.1.5",
@@ -81,7 +81,7 @@
81
81
  "tsx": "4.20.3",
82
82
  "typescript": "5.6.2",
83
83
  "vite": "8.1.5",
84
- "vitest": "4.1.10"
84
+ "vitest": "4.1.11"
85
85
  },
86
86
  "overrides": {
87
87
  "@types/react": "19.2.18"