@prosopo/procaptcha-react 2.11.3 → 2.13.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 (117) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +15 -15
  2. package/.turbo/turbo-build$colon$tsc.log +22 -22
  3. package/.turbo/turbo-build.log +16 -15
  4. package/CHANGELOG.md +79 -0
  5. package/dist/cjs/components/button.cjs +98 -0
  6. package/dist/cjs/components/captchaComponent.cjs +225 -0
  7. package/dist/cjs/components/captchaWidget.cjs +210 -0
  8. package/dist/cjs/components/collector.cjs +49 -0
  9. package/dist/cjs/components/index.cjs +15 -6
  10. package/dist/cjs/components/modal.cjs +39 -0
  11. package/dist/cjs/components/procaptcha.cjs +23 -0
  12. package/dist/cjs/components/procaptchaWidget.cjs +166 -0
  13. package/dist/cjs/index.cjs +15 -6
  14. package/dist/cjs/util/index.cjs +6 -4
  15. package/dist/components/button.d.ts +9 -0
  16. package/dist/components/button.d.ts.map +1 -0
  17. package/dist/components/button.js +98 -0
  18. package/dist/components/button.js.map +1 -0
  19. package/dist/components/{CaptchaComponent.d.ts → captchaComponent.d.ts} +5 -3
  20. package/dist/components/captchaComponent.d.ts.map +1 -0
  21. package/dist/components/captchaComponent.js +225 -0
  22. package/dist/components/captchaComponent.js.map +1 -0
  23. package/dist/components/{CaptchaWidget.d.ts → captchaWidget.d.ts} +3 -2
  24. package/dist/components/captchaWidget.d.ts.map +1 -0
  25. package/dist/components/captchaWidget.js +210 -0
  26. package/dist/components/captchaWidget.js.map +1 -0
  27. package/dist/components/collector.d.ts +5 -4
  28. package/dist/components/collector.d.ts.map +1 -1
  29. package/dist/components/collector.js +46 -24
  30. package/dist/components/collector.js.map +1 -1
  31. package/dist/components/index.d.ts +7 -5
  32. package/dist/components/index.d.ts.map +1 -1
  33. package/dist/components/index.js +8 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/modal.d.ts +14 -0
  36. package/dist/components/modal.d.ts.map +1 -0
  37. package/dist/components/modal.js +39 -0
  38. package/dist/components/modal.js.map +1 -0
  39. package/dist/components/procaptcha.d.ts +7 -0
  40. package/dist/components/procaptcha.d.ts.map +1 -0
  41. package/dist/components/procaptcha.js +22 -0
  42. package/dist/components/procaptcha.js.map +1 -0
  43. package/dist/components/procaptchaWidget.d.ts +7 -0
  44. package/dist/components/procaptchaWidget.d.ts.map +1 -0
  45. package/dist/components/procaptchaWidget.js +166 -0
  46. package/dist/components/procaptchaWidget.js.map +1 -0
  47. package/dist/index.js +8 -4
  48. package/dist/tests/button.unit.test.d.ts.map +1 -1
  49. package/dist/tests/button.unit.test.js +99 -50
  50. package/dist/tests/button.unit.test.js.map +1 -1
  51. package/dist/tests/captchaComponent.unit.test.d.ts.map +1 -1
  52. package/dist/tests/captchaComponent.unit.test.js +35 -13
  53. package/dist/tests/captchaComponent.unit.test.js.map +1 -1
  54. package/dist/tests/captchaWidget.unit.test.d.ts.map +1 -1
  55. package/dist/tests/captchaWidget.unit.test.js +125 -12
  56. package/dist/tests/captchaWidget.unit.test.js.map +1 -1
  57. package/dist/tests/collector.unit.test.d.ts.map +1 -1
  58. package/dist/tests/collector.unit.test.js +43 -10
  59. package/dist/tests/collector.unit.test.js.map +1 -1
  60. package/dist/tests/harness.d.ts +2 -0
  61. package/dist/tests/harness.d.ts.map +1 -1
  62. package/dist/tests/harness.js +7 -0
  63. package/dist/tests/harness.js.map +1 -1
  64. package/dist/tests/modal.unit.test.d.ts.map +1 -1
  65. package/dist/tests/modal.unit.test.js +45 -16
  66. package/dist/tests/modal.unit.test.js.map +1 -1
  67. package/dist/tests/procaptcha.unit.test.d.ts.map +1 -1
  68. package/dist/tests/procaptcha.unit.test.js +37 -15
  69. package/dist/tests/procaptcha.unit.test.js.map +1 -1
  70. package/dist/tests/procaptchaReact.test-d.js +8 -6
  71. package/dist/tests/procaptchaReact.test-d.js.map +1 -1
  72. package/dist/tests/procaptchaWidget.unit.test.d.ts.map +1 -1
  73. package/dist/tests/procaptchaWidget.unit.test.js +121 -96
  74. package/dist/tests/procaptchaWidget.unit.test.js.map +1 -1
  75. package/dist/tests/render.d.ts +6 -7
  76. package/dist/tests/render.d.ts.map +1 -1
  77. package/dist/tests/render.js +23 -30
  78. package/dist/tests/render.js.map +1 -1
  79. package/dist/util/index.d.ts +8 -7
  80. package/dist/util/index.d.ts.map +1 -1
  81. package/dist/util/index.js +6 -4
  82. package/dist/util/index.js.map +1 -1
  83. package/package.json +9 -14
  84. package/vite.test.config.ts +1 -2
  85. package/dist/cjs/_virtual/_rolldown/runtime.cjs +0 -23
  86. package/dist/cjs/components/Button.cjs +0 -81
  87. package/dist/cjs/components/CaptchaComponent.cjs +0 -171
  88. package/dist/cjs/components/CaptchaWidget.cjs +0 -129
  89. package/dist/cjs/components/Modal.cjs +0 -35
  90. package/dist/cjs/components/Procaptcha.cjs +0 -7
  91. package/dist/cjs/components/ProcaptchaWidget.cjs +0 -168
  92. package/dist/components/Button.d.ts +0 -11
  93. package/dist/components/Button.d.ts.map +0 -1
  94. package/dist/components/Button.js +0 -81
  95. package/dist/components/Button.js.map +0 -1
  96. package/dist/components/CaptchaComponent.d.ts.map +0 -1
  97. package/dist/components/CaptchaComponent.js +0 -171
  98. package/dist/components/CaptchaComponent.js.map +0 -1
  99. package/dist/components/CaptchaWidget.d.ts.map +0 -1
  100. package/dist/components/CaptchaWidget.js +0 -129
  101. package/dist/components/CaptchaWidget.js.map +0 -1
  102. package/dist/components/Modal.d.ts +0 -13
  103. package/dist/components/Modal.d.ts.map +0 -1
  104. package/dist/components/Modal.js +0 -33
  105. package/dist/components/Modal.js.map +0 -1
  106. package/dist/components/Procaptcha.d.ts +0 -4
  107. package/dist/components/Procaptcha.d.ts.map +0 -1
  108. package/dist/components/Procaptcha.js +0 -7
  109. package/dist/components/Procaptcha.js.map +0 -1
  110. package/dist/components/ProcaptchaWidget.d.ts +0 -4
  111. package/dist/components/ProcaptchaWidget.d.ts.map +0 -1
  112. package/dist/components/ProcaptchaWidget.js +0 -168
  113. package/dist/components/ProcaptchaWidget.js.map +0 -1
  114. package/dist/tests/setup.d.ts +0 -5
  115. package/dist/tests/setup.d.ts.map +0 -1
  116. package/dist/tests/setup.js +0 -3
  117. package/dist/tests/setup.js.map +0 -1
@@ -1,43 +1,72 @@
1
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
1
  import { afterEach, beforeEach, describe, expect, test } from "vitest";
3
- import Modal from "../components/Modal.js";
2
+ import { mountModal } from "../components/modal.js";
4
3
  import { mount } from "./render.js";
5
4
  let mounted;
6
- const render = (show, children = _jsx("p", { children: "challenge" })) => {
7
- mounted.render(_jsx(Modal, { show: show, children: children }));
5
+ let modal;
6
+ const render = (show, children = "challenge") => {
7
+ if (!modal) {
8
+ modal = mountModal({ show });
9
+ if ("" !== children) {
10
+ const paragraph = document.createElement("p");
11
+ paragraph.textContent = children;
12
+ modal.content.appendChild(paragraph);
13
+ }
14
+ }
15
+ else {
16
+ modal.update({ show });
17
+ }
18
+ return modal;
8
19
  };
20
+ const OUTER_SELECTOR = '[data-cy="challenge-surface"]';
21
+ const PANEL_SELECTOR = '[data-cy="challenge-content"]';
9
22
  const outer = () => {
10
- const element = document.querySelector(".prosopo-modalOuter");
23
+ const element = document.querySelector(OUTER_SELECTOR);
11
24
  if (!element)
12
25
  throw new Error("expected the modal to be rendered");
13
26
  return element;
14
27
  };
15
28
  beforeEach(() => {
16
29
  mounted = mount();
30
+ modal = undefined;
17
31
  });
18
32
  afterEach(() => {
33
+ modal?.destroy();
19
34
  mounted.unmount();
20
35
  });
21
36
  describe("where the modal renders", () => {
22
37
  test("attaches itself to the document body, not to the widget", () => {
23
38
  render(true);
24
39
  expect(outer().parentElement).toBe(document.body);
25
- expect(mounted.container.querySelector(".prosopo-modalOuter")).toBeNull();
40
+ expect(mounted.container.querySelector(OUTER_SELECTOR)).toBeNull();
26
41
  });
27
42
  test("renders its children inside the inner panel", () => {
28
- render(true);
29
- const inner = outer().querySelector(".prosopo-modalInner");
30
- expect(inner?.textContent).toBe("challenge");
43
+ const inner = render(true).content;
44
+ expect(inner.textContent).toBe("challenge");
45
+ expect(outer().contains(inner)).toBe(true);
31
46
  });
32
47
  test("renders an empty panel when there is nothing to show", () => {
33
- render(true, null);
34
- expect(outer().querySelector(".prosopo-modalInner")?.textContent).toBe("");
48
+ expect(render(true, "").content.textContent).toBe("");
35
49
  });
36
50
  test("is removed from the body when the widget unmounts", () => {
37
51
  render(true);
38
- mounted.unmount();
39
- expect(document.querySelector(".prosopo-modalOuter")).toBeNull();
40
- mounted = mount();
52
+ modal?.destroy();
53
+ modal = undefined;
54
+ expect(document.querySelector(OUTER_SELECTOR)).toBeNull();
55
+ });
56
+ test("nothing about its markup survives to the next page load", () => {
57
+ const shapes = new Set(Array.from({ length: 10 }, () => {
58
+ const instance = mountModal({ show: true });
59
+ const panel = document.querySelector(PANEL_SELECTOR);
60
+ const shape = [
61
+ document.querySelector(OUTER_SELECTOR)?.className,
62
+ panel?.className,
63
+ instance.content.className,
64
+ panel?.innerHTML,
65
+ ].join("|");
66
+ instance.destroy();
67
+ return shape;
68
+ }));
69
+ expect(shapes.size).toBe(10);
41
70
  });
42
71
  });
43
72
  describe("showing and hiding", () => {
@@ -70,14 +99,14 @@ describe("stacking", () => {
70
99
  });
71
100
  test("does not lift the challenge by its own height on iOS", () => {
72
101
  render(true);
73
- const panel = outer().querySelector(".prosopo-challenge-content");
102
+ const panel = outer().querySelector(PANEL_SELECTOR);
74
103
  expect(panel?.className).not.toContain("ios-lift");
75
104
  expect(panel?.style.transform).toBe("");
76
105
  expect(document.getElementById("prosopo-challenge-surface-ios-lift")).toBeNull();
77
106
  });
78
107
  test("lets a challenge taller than the viewport scroll instead of clipping", () => {
79
108
  render(true);
80
- const panel = outer().querySelector(".prosopo-challenge-content");
109
+ const panel = outer().querySelector(PANEL_SELECTOR);
81
110
  expect(panel?.style.maxHeight).toBe("100%");
82
111
  expect(panel?.style.overflowY).toBe("auto");
83
112
  });
@@ -1 +1 @@
1
- {"version":3,"file":"modal.unit.test.js","sourceRoot":"","sources":["../../src/tests/modal.unit.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modal.unit.test.js","sourceRoot":"","sources":["../../src/tests/modal.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"procaptcha.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/procaptcha.unit.test.tsx"],"names":[],"mappings":""}
1
+ {"version":3,"file":"procaptcha.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/procaptcha.unit.test.ts"],"names":[],"mappings":""}
@@ -1,14 +1,22 @@
1
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
- import { act } from "react";
3
1
  import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
4
- import Procaptcha from "../components/Procaptcha.js";
2
+ import { mountProcaptcha } from "../components/procaptcha.js";
5
3
  import { config } from "./harness.js";
6
- import { mount } from "./render.js";
4
+ import { mount, settle } from "./render.js";
7
5
  const seen = [];
8
- vi.mock("../components/ProcaptchaWidget.js", () => ({
9
- default: (props) => {
6
+ const destroyed = vi.fn();
7
+ vi.mock("../components/procaptchaWidget.js", () => ({
8
+ mountProcaptchaImageWidget: (container, props) => {
10
9
  seen.push(props);
11
- return _jsx("div", { "data-cy": "widget-stub", children: "widget" });
10
+ const element = document.createElement("div");
11
+ element.setAttribute("data-cy", "widget-stub");
12
+ element.textContent = "widget";
13
+ container.appendChild(element);
14
+ return {
15
+ destroy: () => {
16
+ element.remove();
17
+ destroyed();
18
+ },
19
+ };
12
20
  },
13
21
  }));
14
22
  let mounted;
@@ -18,13 +26,9 @@ const props = (overrides = {}) => ({
18
26
  i18n: undefined,
19
27
  ...overrides,
20
28
  });
21
- const settle = async () => {
22
- await act(async () => {
23
- await Promise.resolve();
24
- });
25
- };
26
29
  beforeEach(() => {
27
30
  seen.length = 0;
31
+ vi.clearAllMocks();
28
32
  mounted = mount();
29
33
  });
30
34
  afterEach(() => {
@@ -32,26 +36,44 @@ afterEach(() => {
32
36
  });
33
37
  describe("the lazy boundary", () => {
34
38
  test("renders the widget once the chunk arrives", async () => {
35
- mounted.render(_jsx(Procaptcha, { ...props() }));
39
+ const handle = mountProcaptcha(mounted.container, props());
40
+ expect(mounted.container.querySelector('[data-cy="widget-stub"]')).toBeNull();
36
41
  await settle();
37
42
  expect(mounted.container.querySelector('[data-cy="widget-stub"]')).not.toBeNull();
43
+ handle.destroy();
38
44
  });
39
45
  test("hands the widget every prop it was given", async () => {
40
46
  const callbacks = { onHuman: vi.fn() };
41
47
  const given = props({ callbacks, autoStart: true });
42
- mounted.render(_jsx(Procaptcha, { ...given }));
48
+ const handle = mountProcaptcha(mounted.container, given);
43
49
  await settle();
44
50
  expect(seen[0]).toMatchObject({
45
51
  callbacks,
46
52
  autoStart: true,
47
53
  config: given.config,
48
54
  });
55
+ handle.destroy();
49
56
  });
50
57
  test("does not add props of its own", async () => {
51
58
  const given = props();
52
- mounted.render(_jsx(Procaptcha, { ...given }));
59
+ const handle = mountProcaptcha(mounted.container, given);
53
60
  await settle();
54
61
  expect(Object.keys(seen[0] ?? {}).sort()).toEqual(Object.keys(given).sort());
62
+ handle.destroy();
63
+ });
64
+ test("tears the widget down when destroyed after the chunk lands", async () => {
65
+ const handle = mountProcaptcha(mounted.container, props());
66
+ await settle();
67
+ handle.destroy();
68
+ expect(destroyed).toHaveBeenCalledTimes(1);
69
+ expect(mounted.container.querySelector('[data-cy="widget-stub"]')).toBeNull();
70
+ });
71
+ test("cancels the mount when destroyed before the chunk lands", async () => {
72
+ const handle = mountProcaptcha(mounted.container, props());
73
+ handle.destroy();
74
+ await settle();
75
+ expect(seen).toHaveLength(0);
76
+ expect(mounted.container.querySelector('[data-cy="widget-stub"]')).toBeNull();
55
77
  });
56
78
  });
57
79
  //# sourceMappingURL=procaptcha.unit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"procaptcha.unit.test.js","sourceRoot":"","sources":["../../src/tests/procaptcha.unit.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procaptcha.unit.test.js","sourceRoot":"","sources":["../../src/tests/procaptcha.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import { assertType, describe, expectTypeOf, test } from "vitest";
2
- import Procaptcha from "../components/Procaptcha.js";
2
+ import { mountProcaptcha } from "../components/procaptcha.js";
3
3
  import addDataAttr from "../util/index.js";
4
4
  describe("the package's public surface", () => {
5
- test("Procaptcha takes exactly the shared props type", () => {
6
- expectTypeOf(Procaptcha).parameter(0).toEqualTypeOf();
5
+ test("mountProcaptcha takes a host element and the shared props type", () => {
6
+ expectTypeOf(mountProcaptcha).parameter(0).toEqualTypeOf();
7
+ expectTypeOf(mountProcaptcha).parameter(1).toEqualTypeOf();
7
8
  });
8
- test("Procaptcha renders an element rather than a fragment or void", () => {
9
- expectTypeOf(Procaptcha).returns.toMatchTypeOf();
9
+ test("mounting hands back a handle that can tear the widget down", () => {
10
+ expectTypeOf(mountProcaptcha).returns.toEqualTypeOf();
11
+ expectTypeOf().toEqualTypeOf();
10
12
  });
11
13
  });
12
14
  describe("CaptchaWidget's props", () => {
@@ -25,7 +27,7 @@ describe("CaptchaWidget's props", () => {
25
27
  test("holds the solution as hash-plus-coordinates triples", () => {
26
28
  expectTypeOf().toEqualTypeOf();
27
29
  });
28
- test("cannot be rendered without a solution to display", () => {
30
+ test("cannot be mounted without a solution to display", () => {
29
31
  assertType({
30
32
  challenge: {},
31
33
  solution: [],
@@ -1 +1 @@
1
- {"version":3,"file":"procaptchaReact.test-d.js","sourceRoot":"","sources":["../../src/tests/procaptchaReact.test-d.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procaptchaReact.test-d.js","sourceRoot":"","sources":["../../src/tests/procaptchaReact.test-d.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"procaptchaWidget.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/procaptchaWidget.unit.test.tsx"],"names":[],"mappings":""}
1
+ {"version":3,"file":"procaptchaWidget.unit.test.d.ts","sourceRoot":"","sources":["../../src/tests/procaptchaWidget.unit.test.ts"],"names":[],"mappings":""}