@prosopo/procaptcha-common 2.9.18 → 2.9.23

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 (68) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +51 -0
  2. package/.turbo/turbo-build$colon$tsc.log +46 -0
  3. package/.turbo/turbo-build.log +54 -0
  4. package/CHANGELOG.md +55 -0
  5. package/dist/callbacks/defaultCallbacks.d.ts +4 -0
  6. package/dist/callbacks/defaultCallbacks.d.ts.map +1 -0
  7. package/dist/callbacks/defaultCallbacks.js.map +1 -0
  8. package/dist/callbacks/defaultEvents.d.ts +14 -0
  9. package/dist/callbacks/defaultEvents.d.ts.map +1 -0
  10. package/dist/callbacks/defaultEvents.js.map +1 -0
  11. package/dist/cjs/elements/form.cjs +8 -2
  12. package/dist/elements/form.d.ts +5 -0
  13. package/dist/elements/form.d.ts.map +1 -0
  14. package/dist/elements/form.js +8 -2
  15. package/dist/elements/form.js.map +1 -0
  16. package/dist/elements/window.d.ts +2 -0
  17. package/dist/elements/window.d.ts.map +1 -0
  18. package/dist/elements/window.js.map +1 -0
  19. package/dist/extensionLoader.d.ts +2 -0
  20. package/dist/extensionLoader.d.ts.map +1 -0
  21. package/dist/extensionLoader.js.map +1 -0
  22. package/dist/index.d.ts +9 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/providers.d.ts +4 -0
  26. package/dist/providers.d.ts.map +1 -0
  27. package/dist/providers.js.map +1 -0
  28. package/dist/reactComponents/Checkbox.d.ts +13 -0
  29. package/dist/reactComponents/Checkbox.d.ts.map +1 -0
  30. package/dist/reactComponents/Checkbox.js.map +1 -0
  31. package/dist/reactComponents/Reload.d.ts +8 -0
  32. package/dist/reactComponents/Reload.d.ts.map +1 -0
  33. package/dist/reactComponents/Reload.js.map +1 -0
  34. package/dist/state/builder.d.ts +9 -0
  35. package/dist/state/builder.d.ts.map +1 -0
  36. package/dist/state/builder.js.map +1 -0
  37. package/dist/tests/defaultCallbacks.test.d.ts +2 -0
  38. package/dist/tests/defaultCallbacks.test.d.ts.map +1 -0
  39. package/dist/tests/defaultCallbacks.test.js +219 -0
  40. package/dist/tests/defaultCallbacks.test.js.map +1 -0
  41. package/dist/tests/defaultEvents.test.d.ts +2 -0
  42. package/dist/tests/defaultEvents.test.d.ts.map +1 -0
  43. package/dist/tests/defaultEvents.test.js +54 -0
  44. package/dist/tests/defaultEvents.test.js.map +1 -0
  45. package/dist/tests/extensionLoader.test.d.ts +2 -0
  46. package/dist/tests/extensionLoader.test.d.ts.map +1 -0
  47. package/dist/tests/extensionLoader.test.js +21 -0
  48. package/dist/tests/extensionLoader.test.js.map +1 -0
  49. package/dist/tests/form.test.d.ts +2 -0
  50. package/dist/tests/form.test.d.ts.map +1 -0
  51. package/dist/tests/form.test.js +98 -0
  52. package/dist/tests/form.test.js.map +1 -0
  53. package/dist/tests/providers.test.d.ts +2 -0
  54. package/dist/tests/providers.test.d.ts.map +1 -0
  55. package/dist/tests/providers.test.js +111 -0
  56. package/dist/tests/providers.test.js.map +1 -0
  57. package/dist/tests/state-builder.test.d.ts +2 -0
  58. package/dist/tests/state-builder.test.d.ts.map +1 -0
  59. package/dist/tests/state-builder.test.js +193 -0
  60. package/dist/tests/state-builder.test.js.map +1 -0
  61. package/dist/tests/window.test.d.ts +2 -0
  62. package/dist/tests/window.test.d.ts.map +1 -0
  63. package/dist/tests/window.test.js +59 -0
  64. package/dist/tests/window.test.js.map +1 -0
  65. package/package.json +8 -7
  66. package/vite.cjs.config.ts +1 -1
  67. package/vite.esm.config.ts +1 -1
  68. package/vite.test.config.ts +1 -1
@@ -0,0 +1,193 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { buildUpdateState, useProcaptcha } from "../state/builder.js";
3
+ describe("state/builder", () => {
4
+ describe("buildUpdateState", () => {
5
+ it("should mutate state and call onStateUpdate with partial state", () => {
6
+ const state = {
7
+ isHuman: false,
8
+ index: 0,
9
+ solutions: [],
10
+ captchaApi: undefined,
11
+ showModal: false,
12
+ challenge: undefined,
13
+ loading: false,
14
+ account: undefined,
15
+ dappAccount: undefined,
16
+ submission: undefined,
17
+ timeout: undefined,
18
+ successfullChallengeTimeout: undefined,
19
+ sendData: false,
20
+ attemptCount: 0,
21
+ error: undefined,
22
+ sessionId: undefined,
23
+ };
24
+ const onStateUpdate = vi.fn();
25
+ const updateState = buildUpdateState(state, onStateUpdate);
26
+ const partialState = { isHuman: true, attemptCount: 1 };
27
+ updateState(partialState);
28
+ expect(state.isHuman).toBe(true);
29
+ expect(state.attemptCount).toBe(1);
30
+ expect(onStateUpdate).toHaveBeenCalledWith(partialState);
31
+ });
32
+ it("should handle multiple property updates in order", () => {
33
+ const state = {
34
+ isHuman: false,
35
+ index: 0,
36
+ solutions: [],
37
+ captchaApi: undefined,
38
+ showModal: false,
39
+ challenge: undefined,
40
+ loading: false,
41
+ account: undefined,
42
+ dappAccount: undefined,
43
+ submission: undefined,
44
+ timeout: undefined,
45
+ successfullChallengeTimeout: undefined,
46
+ sendData: false,
47
+ attemptCount: 0,
48
+ error: undefined,
49
+ sessionId: undefined,
50
+ };
51
+ const onStateUpdate = vi.fn();
52
+ const updateState = buildUpdateState(state, onStateUpdate);
53
+ updateState({ loading: true, index: 5, showModal: true });
54
+ expect(state.loading).toBe(true);
55
+ expect(state.index).toBe(5);
56
+ expect(state.showModal).toBe(true);
57
+ });
58
+ it("should update error state correctly", () => {
59
+ const state = {
60
+ isHuman: false,
61
+ index: 0,
62
+ solutions: [],
63
+ captchaApi: undefined,
64
+ showModal: false,
65
+ challenge: undefined,
66
+ loading: false,
67
+ account: undefined,
68
+ dappAccount: undefined,
69
+ submission: undefined,
70
+ timeout: undefined,
71
+ successfullChallengeTimeout: undefined,
72
+ sendData: false,
73
+ attemptCount: 0,
74
+ error: undefined,
75
+ sessionId: undefined,
76
+ };
77
+ const onStateUpdate = vi.fn();
78
+ const updateState = buildUpdateState(state, onStateUpdate);
79
+ const errorObj = { message: "Test error", key: "test" };
80
+ updateState({ error: errorObj });
81
+ expect(state.error).toEqual(errorObj);
82
+ expect(onStateUpdate).toHaveBeenCalledWith({ error: errorObj });
83
+ });
84
+ });
85
+ describe("useProcaptcha", () => {
86
+ it("should initialize with default state values", () => {
87
+ const useState = vi.fn((defaultValue) => [defaultValue, vi.fn()]);
88
+ const useRef = vi.fn((defaultValue) => ({ current: defaultValue }));
89
+ const [state, updateFn] = useProcaptcha(useState, useRef);
90
+ expect(state.isHuman).toBe(false);
91
+ expect(state.index).toBe(0);
92
+ expect(state.solutions).toEqual([]);
93
+ expect(state.showModal).toBe(false);
94
+ expect(state.loading).toBe(false);
95
+ expect(state.sendData).toBe(false);
96
+ expect(state.attemptCount).toBe(0);
97
+ expect(state.account).toBeUndefined();
98
+ expect(state.captchaApi).toBeUndefined();
99
+ expect(state.challenge).toBeUndefined();
100
+ expect(state.error).toBeUndefined();
101
+ expect(typeof updateFn).toBe("function");
102
+ });
103
+ it("should call appropriate setters when updating state", () => {
104
+ const setters = {};
105
+ const useState = vi.fn((defaultValue) => {
106
+ const key = typeof defaultValue === "boolean"
107
+ ? `boolean-${defaultValue}`
108
+ : typeof defaultValue === "number"
109
+ ? `number-${defaultValue}`
110
+ : Array.isArray(defaultValue)
111
+ ? "array"
112
+ : "other";
113
+ if (!setters[key]) {
114
+ setters[key] = vi.fn();
115
+ }
116
+ return [defaultValue, setters[key]];
117
+ });
118
+ const useRef = vi.fn((defaultValue) => ({ current: defaultValue }));
119
+ const [state, updateFn] = useProcaptcha(useState, useRef);
120
+ updateFn({
121
+ isHuman: true,
122
+ index: 5,
123
+ loading: true,
124
+ attemptCount: 3,
125
+ });
126
+ expect(setters["boolean-false"]).toHaveBeenCalledWith(true);
127
+ expect(setters["number-0"]).toHaveBeenCalledWith(5);
128
+ expect(setters["number-0"]).toHaveBeenCalledWith(3);
129
+ });
130
+ it("should handle solutions array correctly with slice", () => {
131
+ const setSolutions = vi.fn();
132
+ let solutionsValue = [];
133
+ const useState = vi.fn((defaultValue) => {
134
+ if (Array.isArray(defaultValue)) {
135
+ return [
136
+ solutionsValue,
137
+ (newValue) => {
138
+ solutionsValue = newValue;
139
+ setSolutions(newValue);
140
+ },
141
+ ];
142
+ }
143
+ return [defaultValue, vi.fn()];
144
+ });
145
+ const useRef = vi.fn((defaultValue) => ({ current: defaultValue }));
146
+ const [state, updateFn] = useProcaptcha(useState, useRef);
147
+ const newSolutions = [[["test", 1, 2]]];
148
+ updateFn({ solutions: newSolutions });
149
+ expect(setSolutions).toHaveBeenCalled();
150
+ const callArg = setSolutions.mock.calls[0]?.[0];
151
+ expect(callArg).toBeDefined();
152
+ expect(callArg).not.toBe(newSolutions);
153
+ expect(callArg).toEqual(newSolutions);
154
+ });
155
+ it("should not call setters for undefined values in partial update", () => {
156
+ const setIsHuman = vi.fn();
157
+ const setIndex = vi.fn();
158
+ let isHumanSetter;
159
+ let indexSetter;
160
+ const useState = vi.fn((defaultValue) => {
161
+ if (defaultValue === false) {
162
+ isHumanSetter = setIsHuman;
163
+ return [false, setIsHuman];
164
+ }
165
+ if (defaultValue === 0) {
166
+ indexSetter = setIndex;
167
+ return [0, setIndex];
168
+ }
169
+ return [defaultValue, vi.fn()];
170
+ });
171
+ const useRef = vi.fn((defaultValue) => ({ current: defaultValue }));
172
+ const [state, updateFn] = useProcaptcha(useState, useRef);
173
+ updateFn({ isHuman: true });
174
+ expect(setIsHuman).toHaveBeenCalledWith(true);
175
+ expect(setIndex).not.toHaveBeenCalled();
176
+ });
177
+ it("should handle error state update", () => {
178
+ const setError = vi.fn();
179
+ const useState = vi.fn((defaultValue) => {
180
+ if (defaultValue === undefined && setError.mock.calls.length === 0) {
181
+ return [undefined, setError];
182
+ }
183
+ return [defaultValue, vi.fn()];
184
+ });
185
+ const useRef = vi.fn((defaultValue) => ({ current: defaultValue }));
186
+ const [state, updateFn] = useProcaptcha(useState, useRef);
187
+ const errorObj = { message: "Test error", key: "testKey" };
188
+ updateFn({ error: errorObj });
189
+ expect(setError).toHaveBeenCalledWith(errorObj);
190
+ });
191
+ });
192
+ });
193
+ //# sourceMappingURL=state-builder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-builder.test.js","sourceRoot":"","sources":["../../src/tests/state-builder.test.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACxE,MAAM,KAAK,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,2BAA2B,EAAE,SAAS;gBACtC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,SAAS;aACpB,CAAC;YAEF,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAE3D,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YACxD,WAAW,CAAC,YAAY,CAAC,CAAC;YAE1B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,2BAA2B,EAAE,SAAS;gBACtC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,SAAS;aACpB,CAAC;YAEF,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAE3D,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAoB;gBAC9B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,SAAS;gBACrB,SAAS,EAAE,KAAK;gBAChB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,SAAS;gBACrB,OAAO,EAAE,SAAS;gBAClB,2BAA2B,EAAE,SAAS;gBACtC,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,SAAS;aACpB,CAAC;YAEF,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACxD,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEjC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,aAAa,CAAC,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACtD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAGpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAe,EAAE,MAAa,CAAC,CAAC;YAExE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAE9D,MAAM,OAAO,GAAwB,EAAE,CAAC;YAExC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE;gBAEvC,MAAM,GAAG,GACR,OAAO,YAAY,KAAK,SAAS;oBAChC,CAAC,CAAC,WAAW,YAAY,EAAE;oBAC3B,CAAC,CAAC,OAAO,YAAY,KAAK,QAAQ;wBACjC,CAAC,CAAC,UAAU,YAAY,EAAE;wBAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;4BAC5B,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,OAAO,CAAC;gBAEd,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxB,CAAC;gBACD,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAGpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAe,EAAE,MAAa,CAAC,CAAC;YAExE,QAAQ,CAAC;gBACR,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,CAAC;aACf,CAAC,CAAC;YAIH,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE5D,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC7D,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAE7B,IAAI,cAAc,GAAU,EAAE,CAAC;YAE/B,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE;gBACvC,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACjC,OAAO;wBACN,cAAc;wBAEd,CAAC,QAAa,EAAE,EAAE;4BACjB,cAAc,GAAG,QAAQ,CAAC;4BAC1B,YAAY,CAAC,QAAQ,CAAC,CAAC;wBACxB,CAAC;qBACD,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAGpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAe,EAAE,MAAa,CAAC,CAAC;YAExE,MAAM,YAAY,GAAiC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YAEtC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAExC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACzE,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAGzB,IAAI,aAAkB,CAAC;YAEvB,IAAI,WAAgB,CAAC;YAErB,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE;gBACvC,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;oBAC5B,aAAa,GAAG,UAAU,CAAC;oBAC3B,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;oBACxB,WAAW,GAAG,QAAQ,CAAC;oBACvB,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACtB,CAAC;gBACD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAGpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAe,EAAE,MAAa,CAAC,CAAC;YAExE,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAE5B,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAEzB,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE;gBACvC,IAAI,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YAGpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAe,EAAE,MAAa,CAAC,CAAC;YAExE,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC3D,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE9B,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=window.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.test.d.ts","sourceRoot":"","sources":["../../src/tests/window.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import { afterEach, describe, expect, it } from "vitest";
2
+ import { getWindowCallback } from "../elements/window.js";
3
+ describe("elements/window", () => {
4
+ describe("getWindowCallback", () => {
5
+ const originalWindow = global.window;
6
+ afterEach(() => {
7
+ const keys = Object.keys(window);
8
+ for (const key of keys) {
9
+ if (key.startsWith("test")) {
10
+ delete window[key];
11
+ }
12
+ }
13
+ });
14
+ it("should retrieve a function from window object", () => {
15
+ const testFn = () => "test";
16
+ window.testCallback = testFn;
17
+ const result = getWindowCallback("testCallback");
18
+ expect(result).toBe(testFn);
19
+ });
20
+ it("should handle window. prefix in callback name", () => {
21
+ const testFn = () => "test";
22
+ window.testCallback = testFn;
23
+ const result = getWindowCallback("window.testCallback");
24
+ expect(result).toBe(testFn);
25
+ });
26
+ it("should throw error if callback is not a function", () => {
27
+ window.testCallback = "not a function";
28
+ expect(() => getWindowCallback("testCallback")).toThrow("Callback testCallback is not defined on the window object");
29
+ });
30
+ it("should throw error if callback does not exist", () => {
31
+ expect(() => getWindowCallback("nonExistentCallback")).toThrow("Callback nonExistentCallback is not defined on the window object");
32
+ });
33
+ it("should handle callback that is undefined", () => {
34
+ window.testCallback = undefined;
35
+ expect(() => getWindowCallback("testCallback")).toThrow("Callback testCallback is not defined on the window object");
36
+ });
37
+ it("should handle callback that is null", () => {
38
+ window.testCallback = null;
39
+ expect(() => getWindowCallback("testCallback")).toThrow("Callback testCallback is not defined on the window object");
40
+ });
41
+ it("should work with arrow functions", () => {
42
+ const arrowFn = (x) => x * 2;
43
+ window.testArrowCallback = arrowFn;
44
+ const result = getWindowCallback("testArrowCallback");
45
+ expect(result).toBe(arrowFn);
46
+ expect(result(5)).toBe(10);
47
+ });
48
+ it("should work with regular functions", () => {
49
+ function regularFn(x) {
50
+ return x * 2;
51
+ }
52
+ window.testRegularCallback = regularFn;
53
+ const result = getWindowCallback("testRegularCallback");
54
+ expect(result).toBe(regularFn);
55
+ expect(result(5)).toBe(10);
56
+ });
57
+ });
58
+ });
59
+ //# sourceMappingURL=window.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.test.js","sourceRoot":"","sources":["../../src/tests/window.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/procaptcha-common",
3
- "version": "2.9.18",
3
+ "version": "2.9.23",
4
4
  "author": "PROSOPO LIMITED <info@prosopo.io>",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -21,7 +21,8 @@
21
21
  "source": "./src/index.ts",
22
22
  "scripts": {
23
23
  "clean": "del-cli --verbose dist tsconfig.tsbuildinfo",
24
- "build": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.esm.config.ts --mode $NODE_ENV",
24
+ "build": "npm run build:cross-env -- --mode ${NODE_ENV:-development}",
25
+ "build:cross-env": "vite build --config vite.esm.config.ts",
25
26
  "build:tsc": "tsc --build --verbose",
26
27
  "build:cjs": "NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV",
27
28
  "typecheck": "tsc --project tsconfig.types.json",
@@ -33,14 +34,14 @@
33
34
  "dependencies": {
34
35
  "@emotion/react": "11.11.1",
35
36
  "@emotion/styled": "11.11.0",
36
- "@prosopo/account": "2.7.42",
37
- "@prosopo/load-balancer": "2.8.12",
38
- "@prosopo/types": "3.6.3",
39
- "@prosopo/widget-skeleton": "2.7.11",
37
+ "@prosopo/account": "2.8.0",
38
+ "@prosopo/load-balancer": "2.8.17",
39
+ "@prosopo/types": "3.8.0",
40
+ "@prosopo/widget-skeleton": "2.7.13",
40
41
  "react": "18.3.1"
41
42
  },
42
43
  "devDependencies": {
43
- "@prosopo/config": "3.1.25",
44
+ "@prosopo/config": "3.3.0",
44
45
  "@types/jsdom": "21.1.7",
45
46
  "@types/node": "22.10.2",
46
47
  "@types/react": "18.3.1",
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- // Copyright 2021-2025 Prosopo (UK) Ltd.
2
+ // Copyright 2021-2026 Prosopo (UK) Ltd.
3
3
  //
4
4
  // Licensed under the Apache License, Version 2.0 (the "License");
5
5
  // you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- // Copyright 2021-2025 Prosopo (UK) Ltd.
1
+ // Copyright 2021-2026 Prosopo (UK) Ltd.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -1,4 +1,4 @@
1
- // Copyright 2021-2025 Prosopo (UK) Ltd.
1
+ // Copyright 2021-2026 Prosopo (UK) Ltd.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.