@descope/web-components-ui 1.0.336 → 1.0.337
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.
package/dist/cjs/index.cjs.js
CHANGED
@@ -13007,6 +13007,53 @@ class RawRecaptcha extends BaseClass {
|
|
13007
13007
|
return this.enterprise ? window.grecaptcha?.enterprise : window.grecaptcha;
|
13008
13008
|
}
|
13009
13009
|
|
13010
|
+
#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId) {
|
13011
|
+
if (!this.isConnected) {
|
13012
|
+
return;
|
13013
|
+
}
|
13014
|
+
|
13015
|
+
grecaptchaInstance.ready(() => {
|
13016
|
+
// clone the node and append it to the body so that it can be used by the grepcaptcha script
|
13017
|
+
const cloneNode = currentNode
|
13018
|
+
.querySelector('textarea[name^="g-recaptcha-response"]')
|
13019
|
+
?.cloneNode();
|
13020
|
+
if (cloneNode) {
|
13021
|
+
cloneNode.style.display = 'none';
|
13022
|
+
document.body.appendChild(cloneNode);
|
13023
|
+
}
|
13024
|
+
|
13025
|
+
// cleaning up the recaptcha element we added to the body
|
13026
|
+
const removeCloneNode = () => {
|
13027
|
+
cloneNode.remove();
|
13028
|
+
};
|
13029
|
+
|
13030
|
+
if (!this.siteKey) {
|
13031
|
+
return;
|
13032
|
+
}
|
13033
|
+
// we should pass recaptchaWidgetId, but this does not allow us to run execute multiple times
|
13034
|
+
// also calling grecaptchaInstance.reset() does not work
|
13035
|
+
const exec = grecaptchaInstance?.execute(recaptchaWidgetId, { action: this.action });
|
13036
|
+
exec.then((token, e) => {
|
13037
|
+
if (e) {
|
13038
|
+
// eslint-disable-next-line no-console
|
13039
|
+
console.warn('could not execute recaptcha', e);
|
13040
|
+
} else {
|
13041
|
+
this.updateComponentsContext({
|
13042
|
+
risktoken: token,
|
13043
|
+
riskaction: this.action,
|
13044
|
+
});
|
13045
|
+
// if the component is still connected, we should try to get a new token before the token expires (2 minutes)
|
13046
|
+
if (this.isConnected) {
|
13047
|
+
setTimeout(() => {
|
13048
|
+
this.#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId);
|
13049
|
+
}, 110000);
|
13050
|
+
}
|
13051
|
+
}
|
13052
|
+
removeCloneNode();
|
13053
|
+
});
|
13054
|
+
});
|
13055
|
+
}
|
13056
|
+
|
13010
13057
|
#createOnLoadScript() {
|
13011
13058
|
window.onRecaptchaLoadCallback = () => {
|
13012
13059
|
const currentNode = this.recaptchaEle;
|
@@ -13023,48 +13070,12 @@ class RawRecaptcha extends BaseClass {
|
|
13023
13070
|
}
|
13024
13071
|
|
13025
13072
|
setTimeout(() => {
|
13026
|
-
// returns recaptchaWidgetId
|
13027
13073
|
const recaptchaWidgetId = grecaptchaInstance.render(currentNode, {
|
13028
13074
|
sitekey: this.siteKey,
|
13029
13075
|
badge: 'inline',
|
13030
13076
|
size: 'invisible',
|
13031
13077
|
});
|
13032
|
-
|
13033
|
-
grecaptchaInstance.ready(() => {
|
13034
|
-
// clone the node and append it to the body so that it can be used by the grepcaptcha script
|
13035
|
-
const cloneNode = currentNode
|
13036
|
-
.querySelector('textarea[name^="g-recaptcha-response"]')
|
13037
|
-
?.cloneNode();
|
13038
|
-
if (cloneNode) {
|
13039
|
-
cloneNode.style.display = 'none';
|
13040
|
-
document.body.appendChild(cloneNode);
|
13041
|
-
}
|
13042
|
-
|
13043
|
-
// cleaning up the recaptcha element we added to the body
|
13044
|
-
const removeCloneNode = () => {
|
13045
|
-
cloneNode.remove();
|
13046
|
-
};
|
13047
|
-
|
13048
|
-
if (this.siteKey) {
|
13049
|
-
// we should pass recaptchaWidgetId, but this does not allow us to run execute multiple times
|
13050
|
-
// also calling grecaptchaInstance.reset() does not work
|
13051
|
-
const exec = grecaptchaInstance?.execute(recaptchaWidgetId, { action: this.action });
|
13052
|
-
exec
|
13053
|
-
.then((token) => {
|
13054
|
-
this.updateComponentsContext({
|
13055
|
-
risktoken: token,
|
13056
|
-
riskaction: this.action,
|
13057
|
-
});
|
13058
|
-
|
13059
|
-
removeCloneNode();
|
13060
|
-
})
|
13061
|
-
.catch((e) => {
|
13062
|
-
removeCloneNode();
|
13063
|
-
// eslint-disable-next-line no-console
|
13064
|
-
console.warn('could not execute recaptcha', e);
|
13065
|
-
});
|
13066
|
-
}
|
13067
|
-
});
|
13078
|
+
this.#getNewToken(grecaptchaInstance, currentNode, recaptchaWidgetId);
|
13068
13079
|
}, 0);
|
13069
13080
|
};
|
13070
13081
|
}
|