@prosopo/procaptcha-common 2.7.9 → 2.7.11

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 (44) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/callbacks/defaultCallbacks.js +149 -114
  3. package/dist/callbacks/defaultEvents.js +6 -4
  4. package/dist/elements/form.js +13 -8
  5. package/dist/elements/window.js +11 -7
  6. package/dist/extensionLoader.js +4 -4
  7. package/dist/index.js +21 -9
  8. package/dist/providers.js +33 -26
  9. package/dist/reactComponents/Checkbox.js +104 -56
  10. package/dist/reactComponents/Reload.js +79 -40
  11. package/dist/state/builder.js +82 -83
  12. package/package.json +18 -15
  13. package/vite.cjs.config.ts +2 -2
  14. package/vite.esm.config.ts +20 -0
  15. package/dist/callbacks/defaultCallbacks.d.ts +0 -4
  16. package/dist/callbacks/defaultCallbacks.d.ts.map +0 -1
  17. package/dist/callbacks/defaultCallbacks.js.map +0 -1
  18. package/dist/callbacks/defaultEvents.d.ts +0 -14
  19. package/dist/callbacks/defaultEvents.d.ts.map +0 -1
  20. package/dist/callbacks/defaultEvents.js.map +0 -1
  21. package/dist/elements/form.d.ts +0 -3
  22. package/dist/elements/form.d.ts.map +0 -1
  23. package/dist/elements/form.js.map +0 -1
  24. package/dist/elements/window.d.ts +0 -2
  25. package/dist/elements/window.d.ts.map +0 -1
  26. package/dist/elements/window.js.map +0 -1
  27. package/dist/extensionLoader.d.ts +0 -2
  28. package/dist/extensionLoader.d.ts.map +0 -1
  29. package/dist/extensionLoader.js.map +0 -1
  30. package/dist/index.d.ts +0 -9
  31. package/dist/index.d.ts.map +0 -1
  32. package/dist/index.js.map +0 -1
  33. package/dist/providers.d.ts +0 -4
  34. package/dist/providers.d.ts.map +0 -1
  35. package/dist/providers.js.map +0 -1
  36. package/dist/reactComponents/Checkbox.d.ts +0 -13
  37. package/dist/reactComponents/Checkbox.d.ts.map +0 -1
  38. package/dist/reactComponents/Checkbox.js.map +0 -1
  39. package/dist/reactComponents/Reload.d.ts +0 -8
  40. package/dist/reactComponents/Reload.d.ts.map +0 -1
  41. package/dist/reactComponents/Reload.js.map +0 -1
  42. package/dist/state/builder.d.ts +0 -9
  43. package/dist/state/builder.d.ts.map +0 -1
  44. package/dist/state/builder.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @prosopo/procaptcha-common
2
2
 
3
+ ## 2.7.11
4
+ ### Patch Changes
5
+
6
+ - eb71691: configure typecheck before bundle for vue packages
7
+ - eb71691: make typecheck script always recompile
8
+ - Updated dependencies [eb71691]
9
+ - Updated dependencies [eb71691]
10
+ - @prosopo/widget-skeleton@2.6.2
11
+ - @prosopo/load-balancer@2.6.16
12
+ - @prosopo/account@2.7.11
13
+ - @prosopo/common@3.1.1
14
+ - @prosopo/types@3.0.5
15
+ - @prosopo/util@3.0.4
16
+ - @prosopo/config@3.1.2
17
+
18
+ ## 2.7.10
19
+ ### Patch Changes
20
+
21
+ - 3573f0b: fix npm scripts bundle command
22
+ - 3573f0b: build using vite, typecheck using tsc
23
+ - efd8102: Add tests for unwrap error helper
24
+ - 3573f0b: standardise all vite based npm scripts for bundling
25
+ - Updated dependencies [52dbf21]
26
+ - Updated dependencies [93d5e50]
27
+ - Updated dependencies [3573f0b]
28
+ - Updated dependencies [3573f0b]
29
+ - Updated dependencies [efd8102]
30
+ - Updated dependencies [93d5e50]
31
+ - Updated dependencies [63519d7]
32
+ - Updated dependencies [f29fc7e]
33
+ - Updated dependencies [3573f0b]
34
+ - Updated dependencies [2d0dd8a]
35
+ - @prosopo/util@3.0.3
36
+ - @prosopo/widget-skeleton@2.6.1
37
+ - @prosopo/types@3.0.4
38
+ - @prosopo/load-balancer@2.6.15
39
+ - @prosopo/account@2.7.10
40
+ - @prosopo/common@3.1.0
41
+ - @prosopo/config@3.1.1
42
+
3
43
  ## 2.7.9
4
44
  ### Patch Changes
5
45
 
@@ -1,123 +1,158 @@
1
- import { ApiParams, } from "@prosopo/types";
2
- import { getParentForm, removeProcaptchaResponse } from "../elements/form.js";
1
+ import { ApiParams } from "@prosopo/types";
2
+ import { removeProcaptchaResponse, getParentForm } from "../elements/form.js";
3
3
  import { getWindowCallback } from "../elements/window.js";
4
- export const getDefaultCallbacks = (element) => ({
5
- onHuman: (token) => handleOnHuman(token, element),
6
- onChallengeExpired: () => {
7
- removeProcaptchaResponse();
8
- console.log("Challenge expired");
9
- },
10
- onExtensionNotFound: () => {
11
- console.error("Extension not found");
12
- },
13
- onExpired: () => {
14
- removeProcaptchaResponse();
15
- },
16
- onError: (error) => {
17
- removeProcaptchaResponse();
18
- console.error(error);
19
- },
20
- onClose: () => {
21
- console.log("Challenge closed");
22
- },
23
- onOpen: () => {
24
- console.log("Challenge opened");
25
- },
26
- onFailed: () => {
27
- alert("Captcha challenge failed. Please try again");
28
- console.log("Challenge failed");
29
- },
30
- onReset: () => {
31
- removeProcaptchaResponse();
32
- console.log("Captcha widget reset");
33
- },
34
- onReload: () => {
35
- console.log("Challenge reloaded");
36
- },
4
+ const getDefaultCallbacks = (element) => ({
5
+ onHuman: (token) => handleOnHuman(token, element),
6
+ onChallengeExpired: () => {
7
+ removeProcaptchaResponse();
8
+ console.log("Challenge expired");
9
+ },
10
+ onExtensionNotFound: () => {
11
+ console.error("Extension not found");
12
+ },
13
+ onExpired: () => {
14
+ removeProcaptchaResponse();
15
+ },
16
+ onError: (error) => {
17
+ removeProcaptchaResponse();
18
+ console.error(error);
19
+ },
20
+ onClose: () => {
21
+ console.log("Challenge closed");
22
+ },
23
+ onOpen: () => {
24
+ console.log("Challenge opened");
25
+ },
26
+ onFailed: () => {
27
+ alert("Captcha challenge failed. Please try again");
28
+ console.log("Challenge failed");
29
+ },
30
+ onReset: () => {
31
+ removeProcaptchaResponse();
32
+ console.log("Captcha widget reset");
33
+ },
34
+ onReload: () => {
35
+ console.log("Challenge reloaded");
36
+ }
37
37
  });
38
38
  const getUserCallback = (callback, element, callbackFnOrName) => {
39
- const callbackFnName = element.getAttribute(`data-${callback}`);
40
- if (callbackFnName) {
41
- const callbackFn = getWindowCallback(callbackFnName);
42
- if (callbackFn) {
43
- return callbackFn;
44
- }
45
- }
46
- if (typeof callbackFnOrName === "function") {
47
- return callbackFnOrName;
48
- }
49
- if (typeof callbackFnOrName === "string") {
50
- return getWindowCallback(callbackFnOrName);
39
+ const callbackFnName = element.getAttribute(`data-${callback}`);
40
+ if (callbackFnName) {
41
+ const callbackFn = getWindowCallback(callbackFnName);
42
+ if (callbackFn) {
43
+ return callbackFn;
51
44
  }
45
+ }
46
+ if (typeof callbackFnOrName === "function") {
47
+ return callbackFnOrName;
48
+ }
49
+ if (typeof callbackFnOrName === "string") {
50
+ return getWindowCallback(callbackFnOrName);
51
+ }
52
52
  };
53
- export function setUserCallbacks(renderOptions, callbacks, element) {
54
- const humanCallback = getUserCallback("callback", element, renderOptions?.callback);
55
- if (humanCallback) {
56
- callbacks.onHuman = (token) => {
57
- handleOnHuman(token, element);
58
- humanCallback(token);
59
- };
60
- }
61
- const chalExpiredCallback = getUserCallback("chalexpired-callback", element, renderOptions?.["chalexpired-callback"]);
62
- if (chalExpiredCallback) {
63
- callbacks.onChallengeExpired = () => {
64
- removeProcaptchaResponse();
65
- chalExpiredCallback();
66
- };
67
- }
68
- const expiredCallback = getUserCallback("expired-callback", element, renderOptions?.["expired-callback"]);
69
- if (expiredCallback) {
70
- callbacks.onExpired = () => {
71
- removeProcaptchaResponse();
72
- expiredCallback();
73
- };
74
- }
75
- const errorCallback = getUserCallback("error-callback", element, renderOptions?.["error-callback"]);
76
- if (errorCallback) {
77
- callbacks.onError = (error) => {
78
- removeProcaptchaResponse();
79
- errorCallback(error);
80
- };
81
- }
82
- const closeCallback = getUserCallback("close-callback", element, renderOptions?.["close-callback"]);
83
- if (closeCallback) {
84
- callbacks.onClose = () => {
85
- closeCallback();
86
- };
87
- }
88
- const openCallback = getUserCallback("open-callback", element, renderOptions?.["open-callback"]);
89
- if (openCallback) {
90
- callbacks.onOpen = () => {
91
- openCallback();
92
- };
93
- }
94
- const failedCallback = getUserCallback("failed-callback", element, renderOptions?.["failed-callback"]);
95
- if (failedCallback) {
96
- callbacks.onFailed = () => {
97
- failedCallback();
98
- };
99
- }
100
- const resetCallback = getUserCallback("reset-callback", element, renderOptions?.["reset-callback"]);
101
- if (resetCallback) {
102
- callbacks.onReset = () => {
103
- removeProcaptchaResponse();
104
- resetCallback();
105
- };
106
- }
53
+ function setUserCallbacks(renderOptions, callbacks, element) {
54
+ const humanCallback = getUserCallback(
55
+ "callback",
56
+ element,
57
+ renderOptions?.callback
58
+ );
59
+ if (humanCallback) {
60
+ callbacks.onHuman = (token) => {
61
+ handleOnHuman(token, element);
62
+ humanCallback(token);
63
+ };
64
+ }
65
+ const chalExpiredCallback = getUserCallback(
66
+ "chalexpired-callback",
67
+ element,
68
+ renderOptions?.["chalexpired-callback"]
69
+ );
70
+ if (chalExpiredCallback) {
71
+ callbacks.onChallengeExpired = () => {
72
+ removeProcaptchaResponse();
73
+ chalExpiredCallback();
74
+ };
75
+ }
76
+ const expiredCallback = getUserCallback(
77
+ "expired-callback",
78
+ element,
79
+ renderOptions?.["expired-callback"]
80
+ );
81
+ if (expiredCallback) {
82
+ callbacks.onExpired = () => {
83
+ removeProcaptchaResponse();
84
+ expiredCallback();
85
+ };
86
+ }
87
+ const errorCallback = getUserCallback(
88
+ "error-callback",
89
+ element,
90
+ renderOptions?.["error-callback"]
91
+ );
92
+ if (errorCallback) {
93
+ callbacks.onError = (error) => {
94
+ removeProcaptchaResponse();
95
+ errorCallback(error);
96
+ };
97
+ }
98
+ const closeCallback = getUserCallback(
99
+ "close-callback",
100
+ element,
101
+ renderOptions?.["close-callback"]
102
+ );
103
+ if (closeCallback) {
104
+ callbacks.onClose = () => {
105
+ closeCallback();
106
+ };
107
+ }
108
+ const openCallback = getUserCallback(
109
+ "open-callback",
110
+ element,
111
+ renderOptions?.["open-callback"]
112
+ );
113
+ if (openCallback) {
114
+ callbacks.onOpen = () => {
115
+ openCallback();
116
+ };
117
+ }
118
+ const failedCallback = getUserCallback(
119
+ "failed-callback",
120
+ element,
121
+ renderOptions?.["failed-callback"]
122
+ );
123
+ if (failedCallback) {
124
+ callbacks.onFailed = () => {
125
+ failedCallback();
126
+ };
127
+ }
128
+ const resetCallback = getUserCallback(
129
+ "reset-callback",
130
+ element,
131
+ renderOptions?.["reset-callback"]
132
+ );
133
+ if (resetCallback) {
134
+ callbacks.onReset = () => {
135
+ removeProcaptchaResponse();
136
+ resetCallback();
137
+ };
138
+ }
107
139
  }
108
140
  const handleOnHuman = (token, element) => {
109
- removeProcaptchaResponse();
110
- if (element) {
111
- const form = getParentForm(element);
112
- if (!form) {
113
- console.error("Parent form not found for the element:", element);
114
- return;
115
- }
116
- const input = document.createElement("input");
117
- input.type = "hidden";
118
- input.name = ApiParams.procaptchaResponse;
119
- input.value = token;
120
- form.appendChild(input);
141
+ removeProcaptchaResponse();
142
+ if (element) {
143
+ const form = getParentForm(element);
144
+ if (!form) {
145
+ console.error("Parent form not found for the element:", element);
146
+ return;
121
147
  }
148
+ const input = document.createElement("input");
149
+ input.type = "hidden";
150
+ input.name = ApiParams.procaptchaResponse;
151
+ input.value = token;
152
+ form.appendChild(input);
153
+ }
154
+ };
155
+ export {
156
+ getDefaultCallbacks,
157
+ setUserCallbacks
122
158
  };
123
- //# sourceMappingURL=defaultCallbacks.js.map
@@ -1,6 +1,8 @@
1
1
  import { getDefaultCallbacks } from "./defaultCallbacks.js";
2
- export const getDefaultEvents = (callbacks) => ({
3
- ...getDefaultCallbacks(undefined),
4
- ...callbacks,
2
+ const getDefaultEvents = (callbacks) => ({
3
+ ...getDefaultCallbacks(void 0),
4
+ ...callbacks
5
5
  });
6
- //# sourceMappingURL=defaultEvents.js.map
6
+ export {
7
+ getDefaultEvents
8
+ };
@@ -1,11 +1,16 @@
1
1
  import { ApiParams } from "@prosopo/types";
2
- export function getParentForm(widgetElement) {
3
- const rootWidgetNode = widgetElement.getRootNode();
4
- const topWidgetElement = rootWidgetNode instanceof ShadowRoot ? rootWidgetNode.host : widgetElement;
5
- return topWidgetElement.closest("form");
2
+ function getParentForm(widgetElement) {
3
+ const rootWidgetNode = widgetElement.getRootNode();
4
+ const topWidgetElement = rootWidgetNode instanceof ShadowRoot ? rootWidgetNode.host : widgetElement;
5
+ return topWidgetElement.closest("form");
6
6
  }
7
- export const removeProcaptchaResponse = () => {
8
- const element = Array.from(document.getElementsByName(ApiParams.procaptchaResponse));
9
- element.map((el) => el.remove());
7
+ const removeProcaptchaResponse = () => {
8
+ const element = Array.from(
9
+ document.getElementsByName(ApiParams.procaptchaResponse)
10
+ );
11
+ element.map((el) => el.remove());
12
+ };
13
+ export {
14
+ getParentForm,
15
+ removeProcaptchaResponse
10
16
  };
11
- //# sourceMappingURL=form.js.map
@@ -1,8 +1,12 @@
1
- export const getWindowCallback = (callbackName) => {
2
- const fn = window[callbackName.replace("window.", "")];
3
- if (typeof fn !== "function") {
4
- throw new Error(`Callback ${callbackName} is not defined on the window object`);
5
- }
6
- return fn;
1
+ const getWindowCallback = (callbackName) => {
2
+ const fn = window[callbackName.replace("window.", "")];
3
+ if (typeof fn !== "function") {
4
+ throw new Error(
5
+ `Callback ${callbackName} is not defined on the window object`
6
+ );
7
+ }
8
+ return fn;
9
+ };
10
+ export {
11
+ getWindowCallback
7
12
  };
8
- //# sourceMappingURL=window.js.map
@@ -1,4 +1,4 @@
1
- export const ExtensionLoader = async (web2) => web2
2
- ? (await import("@prosopo/account/extension/ExtensionWeb2")).default
3
- : (await import("@prosopo/account/extension/ExtensionWeb3")).default;
4
- //# sourceMappingURL=extensionLoader.js.map
1
+ const ExtensionLoader = async (web2) => web2 ? (await import("@prosopo/account/extension/ExtensionWeb2")).default : (await import("@prosopo/account/extension/ExtensionWeb3")).default;
2
+ export {
3
+ ExtensionLoader
4
+ };
package/dist/index.js CHANGED
@@ -1,9 +1,21 @@
1
- export * from "./providers.js";
2
- export * from "./state/builder.js";
3
- export * from "./callbacks/defaultCallbacks.js";
4
- export * from "./callbacks/defaultEvents.js";
5
- export * from "./extensionLoader.js";
6
- export * from "./elements/window.js";
7
- export * from "./reactComponents/Reload.js";
8
- export * from "./reactComponents/Checkbox.js";
9
- //# sourceMappingURL=index.js.map
1
+ import { getRandomActiveProvider, providerRetry } from "./providers.js";
2
+ import { buildUpdateState, useProcaptcha } from "./state/builder.js";
3
+ import { getDefaultCallbacks, setUserCallbacks } from "./callbacks/defaultCallbacks.js";
4
+ import { getDefaultEvents } from "./callbacks/defaultEvents.js";
5
+ import { ExtensionLoader } from "./extensionLoader.js";
6
+ import { getWindowCallback } from "./elements/window.js";
7
+ import { ReloadButton } from "./reactComponents/Reload.js";
8
+ import { Checkbox } from "./reactComponents/Checkbox.js";
9
+ export {
10
+ Checkbox,
11
+ ExtensionLoader,
12
+ ReloadButton,
13
+ buildUpdateState,
14
+ getDefaultCallbacks,
15
+ getDefaultEvents,
16
+ getRandomActiveProvider,
17
+ getWindowCallback,
18
+ providerRetry,
19
+ setUserCallbacks,
20
+ useProcaptcha
21
+ };
package/dist/providers.js CHANGED
@@ -1,33 +1,40 @@
1
1
  import { loadBalancer } from "@prosopo/load-balancer";
2
2
  import { at } from "@prosopo/util";
3
3
  let providers = [];
4
- export const getRandomActiveProvider = async (config) => {
5
- const randomIntBetween = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
6
- if (providers.length === 0) {
7
- providers = await loadBalancer(config.defaultEnvironment);
4
+ const getRandomActiveProvider = async (config) => {
5
+ const randomIntBetween = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
6
+ if (providers.length === 0) {
7
+ providers = await loadBalancer(config.defaultEnvironment);
8
+ }
9
+ const randomProvderObj = at(
10
+ providers,
11
+ randomIntBetween(0, providers.length - 1)
12
+ );
13
+ return {
14
+ providerAccount: randomProvderObj.address,
15
+ provider: {
16
+ url: randomProvderObj.url,
17
+ datasetId: randomProvderObj.datasetId
8
18
  }
9
- const randomProvderObj = at(providers, randomIntBetween(0, providers.length - 1));
10
- return {
11
- providerAccount: randomProvderObj.address,
12
- provider: {
13
- url: randomProvderObj.url,
14
- datasetId: randomProvderObj.datasetId,
15
- },
16
- };
19
+ };
17
20
  };
18
- export const providerRetry = async (currentFn, retryFn, stateReset, attemptCount, retryMax) => {
19
- try {
20
- await currentFn();
21
- }
22
- catch (err) {
23
- if (attemptCount >= retryMax) {
24
- console.error(err);
25
- console.error(`Max retries (${attemptCount} of ${retryMax}) reached, aborting`);
26
- return stateReset();
27
- }
28
- console.error(err);
29
- stateReset();
30
- await retryFn();
21
+ const providerRetry = async (currentFn, retryFn, stateReset, attemptCount, retryMax) => {
22
+ try {
23
+ await currentFn();
24
+ } catch (err) {
25
+ if (attemptCount >= retryMax) {
26
+ console.error(err);
27
+ console.error(
28
+ `Max retries (${attemptCount} of ${retryMax}) reached, aborting`
29
+ );
30
+ return stateReset();
31
31
  }
32
+ console.error(err);
33
+ stateReset();
34
+ await retryFn();
35
+ }
36
+ };
37
+ export {
38
+ getRandomActiveProvider,
39
+ providerRetry
32
40
  };
33
- //# sourceMappingURL=providers.js.map