infinity-forge
Version:
226 lines • 12.2 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Turnstile = Turnstile;
exports.useTurnstile = useTurnstile;
var jsx_runtime_1 = require("react/jsx-runtime");
var react_1 = require("react");
var globalNamespace = (typeof globalThis !== "undefined" ? globalThis : window);
var turnstileState = typeof globalNamespace.turnstile !== "undefined" ? "ready" : "unloaded";
var ensureTurnstile;
var turnstileLoad;
var turnstileLoadPromise = new Promise(function (resolve, reject) {
turnstileLoad = { resolve: resolve, reject: reject };
if (turnstileState === "ready")
resolve(undefined);
});
{
var TURNSTILE_LOAD_FUNCTION_1 = "cf__reactTurnstileOnLoad";
var TURNSTILE_SRC_1 = "https://challenges.cloudflare.com/turnstile/v0/api.js";
ensureTurnstile = function () {
if (turnstileState === "unloaded") {
turnstileState = "loading";
globalNamespace[TURNSTILE_LOAD_FUNCTION_1] = function () {
turnstileLoad.resolve();
turnstileState = "ready";
delete globalNamespace[TURNSTILE_LOAD_FUNCTION_1];
};
var url = "".concat(TURNSTILE_SRC_1, "?onload=").concat(TURNSTILE_LOAD_FUNCTION_1, "&render=explicit");
var script = document.createElement("script");
script.src = url;
script.async = true;
script.addEventListener("error", function () {
turnstileLoad.reject("Failed to load Turnstile.");
delete globalNamespace[TURNSTILE_LOAD_FUNCTION_1];
});
document.head.appendChild(script);
}
return turnstileLoadPromise;
};
}
function Turnstile(_a) {
var _this = this;
var id = _a.id, className = _a.className, customStyle = _a.style, sitekey = _a.sitekey, action = _a.action, cData = _a.cData, theme = _a.theme, language = _a.language, tabIndex = _a.tabIndex, responseField = _a.responseField, responseFieldName = _a.responseFieldName, size = _a.size, fixedSize = _a.fixedSize, retry = _a.retry, retryInterval = _a.retryInterval, refreshExpired = _a.refreshExpired, appearance = _a.appearance, execution = _a.execution, userRef = _a.userRef, onVerify = _a.onVerify, onSuccess = _a.onSuccess, onLoad = _a.onLoad, onError = _a.onError, onExpire = _a.onExpire, onTimeout = _a.onTimeout, onAfterInteractive = _a.onAfterInteractive, onBeforeInteractive = _a.onBeforeInteractive, onUnsupported = _a.onUnsupported;
var ownRef = (0, react_1.useRef)(null);
var inplaceState = (0, react_1.useState)({
onVerify: onVerify,
onSuccess: onSuccess,
onLoad: onLoad,
onError: onError,
onExpire: onExpire,
onTimeout: onTimeout,
onAfterInteractive: onAfterInteractive,
onBeforeInteractive: onBeforeInteractive,
onUnsupported: onUnsupported,
})[0];
var ref = userRef !== null && userRef !== void 0 ? userRef : ownRef;
var style = fixedSize
? __assign({ width: size === "compact" ? "130px" : size === "flexible" ? "100%" : "300px", height: size === "compact" ? "120px" : "65px" }, customStyle) : customStyle;
(0, react_1.useEffect)(function () {
if (!ref.current)
return;
var cancelled = false;
var widgetId = "";
(function () { return __awaiter(_this, void 0, void 0, function () {
var e_1, boundTurnstileObject, turnstileOptions;
var _a, _b;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
if (!(turnstileState !== "ready")) return [3 /*break*/, 4];
_c.label = 1;
case 1:
_c.trys.push([1, 3, , 4]);
return [4 /*yield*/, ensureTurnstile()];
case 2:
_c.sent();
return [3 /*break*/, 4];
case 3:
e_1 = _c.sent();
(_a = inplaceState.onError) === null || _a === void 0 ? void 0 : _a.call(inplaceState, e_1);
return [2 /*return*/];
case 4:
if (cancelled || !ref.current)
return [2 /*return*/];
turnstileOptions = {
sitekey: sitekey,
action: action,
cData: cData,
theme: theme,
language: language,
tabindex: tabIndex,
"response-field": responseField,
"response-field-name": responseFieldName,
size: size,
retry: retry,
"retry-interval": retryInterval,
"refresh-expired": refreshExpired,
appearance: appearance,
execution: execution,
callback: function (token, preClearanceObtained) {
var _a, _b;
(_a = inplaceState.onVerify) === null || _a === void 0 ? void 0 : _a.call(inplaceState, token, boundTurnstileObject);
(_b = inplaceState.onSuccess) === null || _b === void 0 ? void 0 : _b.call(inplaceState, token, preClearanceObtained, boundTurnstileObject);
},
"error-callback": function (error) { var _a; return (_a = inplaceState.onError) === null || _a === void 0 ? void 0 : _a.call(inplaceState, error, boundTurnstileObject); },
"expired-callback": function (token) { var _a; return (_a = inplaceState.onExpire) === null || _a === void 0 ? void 0 : _a.call(inplaceState, token, boundTurnstileObject); },
"timeout-callback": function () { var _a; return (_a = inplaceState.onTimeout) === null || _a === void 0 ? void 0 : _a.call(inplaceState, boundTurnstileObject); },
"after-interactive-callback": function () { var _a; return (_a = inplaceState.onAfterInteractive) === null || _a === void 0 ? void 0 : _a.call(inplaceState, boundTurnstileObject); },
"before-interactive-callback": function () { var _a; return (_a = inplaceState.onBeforeInteractive) === null || _a === void 0 ? void 0 : _a.call(inplaceState, boundTurnstileObject); },
"unsupported-callback": function () { var _a; return (_a = inplaceState.onUnsupported) === null || _a === void 0 ? void 0 : _a.call(inplaceState, boundTurnstileObject); },
};
widgetId = window.turnstile.render(ref.current, turnstileOptions);
boundTurnstileObject = createBoundTurnstileObject(widgetId);
(_b = inplaceState.onLoad) === null || _b === void 0 ? void 0 : _b.call(inplaceState, widgetId, boundTurnstileObject);
return [2 /*return*/];
}
});
}); })();
return function () {
cancelled = true;
if (widgetId)
window.turnstile.remove(widgetId);
};
}, [
sitekey,
action,
cData,
theme,
language,
tabIndex,
responseField,
responseFieldName,
size,
retry,
retryInterval,
refreshExpired,
appearance,
execution,
]);
(0, react_1.useEffect)(function () {
inplaceState.onVerify = onVerify;
inplaceState.onSuccess = onSuccess;
inplaceState.onLoad = onLoad;
inplaceState.onError = onError;
inplaceState.onExpire = onExpire;
inplaceState.onTimeout = onTimeout;
inplaceState.onAfterInteractive = onAfterInteractive;
inplaceState.onBeforeInteractive = onBeforeInteractive;
inplaceState.onUnsupported = onUnsupported;
}, [
onVerify,
onSuccess,
onLoad,
onError,
onExpire,
onTimeout,
onAfterInteractive,
onBeforeInteractive,
onUnsupported,
]);
return (0, jsx_runtime_1.jsx)("div", { ref: ref, id: id, className: className, style: style });
}
function createBoundTurnstileObject(widgetId) {
return {
execute: function (options) { return window.turnstile.execute(widgetId, options); },
reset: function () { return window.turnstile.reset(widgetId); },
getResponse: function () { return window.turnstile.getResponse(widgetId); },
isExpired: function () { return window.turnstile.isExpired(widgetId); },
};
}
function useTurnstile() {
var _a = (0, react_1.useState)(turnstileState), _ = _a[0], setState = _a[1];
(0, react_1.useEffect)(function () {
if (turnstileState === "ready")
return;
turnstileLoadPromise.then(function () { return setState(turnstileState); });
}, []);
return globalNamespace.turnstile;
}
//# sourceMappingURL=turnstile.js.map