documentation.tsx
1 import { Component } from "solid-js"; 2 import Code from "../components/Code"; 3 import Md5HexDemo from "../components/demo/utils/md5hex"; 4 import UserAgentDataBrandsDemo from "../components/demo/enhanced_fp/user_agent_data_brands"; 5 import UserAgentDataMobileDemo from "../components/demo/enhanced_fp/user_agent_data_mobile"; 6 import NavigatorConnectionDownlinkDemo from "../components/demo/enhanced_fp/navigator_connection_downlink"; 7 import NavigatorConnectionDownlinkMaxDemo from "../components/demo/enhanced_fp/navigator_connection_downlink_max"; 8 import NetworkInfoRttDemo from "../components/demo/enhanced_fp/network_info_rtt"; 9 import NetworkInfoSaveDataDemo from "../components/demo/enhanced_fp/network_info_save_data"; 10 import ScreenPixelDepthDemo from "../components/demo/enhanced_fp/screen_pixel_depth"; 11 import NavigatorDeviceMemoryDemo from "../components/demo/enhanced_fp/navigator_device_memory"; 12 import NavigatorPdfViewerEnabledDemo from "../components/demo/enhanced_fp/navigator_pdf_viewer_enabled"; 13 import NavigatorLanguagesDemo from "../components/demo/enhanced_fp/navigator_languages"; 14 import WindowInnerWidthDemo from "../components/demo/enhanced_fp/window_inner_width"; 15 import WindowInnerHeightDemo from "../components/demo/enhanced_fp/window_inner_height"; 16 import WindowOuterHeightDemo from "../components/demo/enhanced_fp/window_outer_height"; 17 import WindowOuterWidthDemo from "../components/demo/enhanced_fp/window_outer_width"; 18 import BrowserDectectionFirefoxDemo from "../components/demo/enhanced_fp/browser_detection_firefox"; 19 import BrowserDetectionBraveDemo from "../components/demo/enhanced_fp/browser_detection_brave"; 20 import BrowserApiChecksDemo from "../components/demo/enhanced_fp/browser_api_checks"; 21 import BrowserObjectChecksDemo from "../components/demo/enhanced_fp/browser_object_checks"; 22 import AudioCodecsDemo from "../components/demo/enhanced_fp/audio_codecs"; 23 import AudioCodecsExtendedHashDemo from "../components/demo/enhanced_fp/audio_codecs_extended_hash"; 24 import WindowTreeStructureDemo from "../components/demo/enhanced_fp/window__tree_structure"; 25 import WindowLocationHrefDemo from "../components/demo/enhanced_fp/window__location_href"; 26 import MathFingerprintDemo from "../components/demo/enhanced_fp/math_fingerprint"; 27 import SupportedMathFunctionsDemo from "../components/demo/enhanced_fp/supported_math_functions"; 28 import ScreenOrientationDemo from "../components/demo/enhanced_fp/screen_orientation"; 29 import WebglAliasedLineWidthRangeDemo from "../components/demo/enhanced_fp/webgl_aliased_line_width_range"; 30 import WebglAliasedPointSizeRangeDemo from "../components/demo/enhanced_fp/webgl_aliased_point_size_range"; 31 import WebglAntialiasingDemo from "../components/demo/enhanced_fp/webgl_antialiasing"; 32 import WebglBitsDemo from "../components/demo/enhanced_fp/webgl_bits"; 33 import WebglExtensionsDemo from "../components/demo/enhanced_fp/webgl_extensions"; 34 import WebglExtensionsHashDemo from "../components/demo/enhanced_fp/webgl_extensions_hash"; 35 import WebglFsfParamsDemo from "../components/demo/enhanced_fp/webgl_fsf_params"; 36 import WebglFsiParamsDemo from "../components/demo/enhanced_fp/webgl_fsi_params"; 37 import WebglHashWebglDemo from "../components/demo/enhanced_fp/webgl_hash_webgl"; 38 import WebglMaxParamsDemo from "../components/demo/enhanced_fp/webgl_max_params"; 39 import WebglMaxViewportDimsDemo from "../components/demo/enhanced_fp/webgl_max_viewport_dims"; 40 import WebglRendererDemo from "../components/demo/enhanced_fp/webgl_renderer"; 41 import WebglShadingLanguageVersionDemo from "../components/demo/enhanced_fp/webgl_shading_language_version"; 42 import WebglUnmaskedRendererDemo from "../components/demo/enhanced_fp/webgl_unmasked_renderer"; 43 import WebglUnmaskedVendorDemo from "../components/demo/enhanced_fp/webgl_unmasked_vendor"; 44 import WebglVendorDemo from "../components/demo/enhanced_fp/webgl_vendor"; 45 import WebglVersionDemo from "../components/demo/enhanced_fp/webgl_version"; 46 import WebglVsfParamsDemo from "../components/demo/enhanced_fp/webgl_vsf_params"; 47 import WebglVsiParamsDemo from "../components/demo/enhanced_fp/webgl_vsi_params"; 48 import AsDemo from "../components/demo/fe/as"; 49 import BDemo from "../components/demo/fe/b"; 50 import CfpDemo from "../components/demo/fe/cfp"; 51 import CpucDemo from "../components/demo/fe/cpuc"; 52 import DDemo from "../components/demo/fe/d"; 53 import DntDemo from "../components/demo/fe/dnt"; 54 import FbDemo from "../components/demo/fe/fb"; 55 import FosDemo from "../components/demo/fe/fos"; 56 import FrDemo from "../components/demo/fe/fr"; 57 import HDemo from "../components/demo/fe/h"; 58 import IdbDemo from "../components/demo/fe/idb"; 59 import JsfDemo from "../components/demo/fe/jsf"; 60 import LDemo from "../components/demo/fe/l"; 61 import LsDemo from "../components/demo/fe/ls"; 62 import OdbDemo from "../components/demo/fe/odb"; 63 import PDemo from "../components/demo/fe/p"; 64 import PkDemo from "../components/demo/fe/pk"; 65 import PrDemo from "../components/demo/fe/pr"; 66 import SDemo from "../components/demo/fe/s"; 67 import SsDemo from "../components/demo/fe/ss"; 68 import SwfDemo from "../components/demo/fe/swf"; 69 import TDemo from "../components/demo/fe/t"; 70 import ToDemo from "../components/demo/fe/to"; 71 import NDemo from "../components/demo/n"; 72 import JsbdDemo from "../components/demo/jsbd"; 73 import U_f9bf2dbDemo from "../components/demo/enhanced_fp/u_f9bf2db"; 74 import U_3ea7194Demo from "../components/demo/enhanced_fp/u_3ea7194"; 75 76 const DocumentationView: Component = () => { 77 return ( 78 <main class="max-w-1100px w-full mx-auto my-12 px-6"> 79 <h1 class="text-4xl font-black uppercase">Everything about BDA</h1> 80 <p class="py-6"> 81 A deep focus on their{" "} 82 <code class="bg-#24273a text-white px-2 py-.5 rounded"> 83 enforcement.js 84 </code>{" "} 85 script running in browser during captcha initialization. 86 <br /> 87 Currently in version{" "} 88 <code class="bg-#24273a text-white px-2 py-.5 rounded">2.17.2</code> 89 </p> 90 <section> 91 <h2 class="text-2xl font-medium"> 92 Some utilities we'll use (written in TS) 93 </h2> 94 <p> 95 They're either reimplementation of Arkose's code or direct adaptation. 96 </p> 97 98 <p>md5hex</p> 99 <Md5HexDemo /> 100 101 <p>numberOrNull</p> 102 <Code 103 snippet={` 104 /** 105 * Returns a number if the input is a number, otherwise returns null. 106 * 107 * @example 108 * numberOrNull(42); // 42 109 * numberOrNull("not a number"); // null 110 */ 111 export const numberOrNull = (num: unknown): number | null => { 112 return typeof num === "number" ? num : null; 113 }; 114 `.trim()} 115 /> 116 117 <p>removeQueryParams</p> 118 <Code 119 snippet={` 120 /** 121 * Removes query parameters from a string, typically a URL. 122 * 123 * @example 124 * removeQueryParams("https://example.com/path?query=param"); // "https://example.com/path" 125 */ 126 export const removeQueryParams = (input: string) => { 127 return input || typeof input === "string" ? input.split("?")[0] : null; 128 }; 129 `.trim()} 130 /> 131 </section> 132 <section> 133 <h2>api_type</h2> 134 <p>This value is always going to be "js"</p> 135 </section> 136 <section> 137 <h2 class="text-2xl font-bold font-mono">enhanced_fp</h2> 138 139 <p>user_agent_data_brands</p> 140 <UserAgentDataBrandsDemo /> 141 <p>user_agent_data_mobile</p> 142 <UserAgentDataMobileDemo /> 143 <p>navigator_connection_downlink</p> 144 <NavigatorConnectionDownlinkDemo /> 145 <p>navigator_connection_downlink_max</p> 146 <NavigatorConnectionDownlinkMaxDemo /> 147 <p>network_info_rtt</p> 148 <NetworkInfoRttDemo /> 149 <p>network_info_save_data</p> 150 <NetworkInfoSaveDataDemo /> 151 <p>screen_pixel_depth</p> 152 <ScreenPixelDepthDemo /> 153 <p>navigator_device_memory</p> 154 <NavigatorDeviceMemoryDemo /> 155 <p>navigator_pdf_viewer_enabled</p> 156 <NavigatorPdfViewerEnabledDemo /> 157 <p>navigator_languages</p> 158 <NavigatorLanguagesDemo /> 159 <p>f9bf2db</p> 160 <U_f9bf2dbDemo /> 161 <p>window_inner_width</p> 162 <WindowInnerWidthDemo /> 163 <p>window_inner_height</p> 164 <WindowInnerHeightDemo /> 165 <p>window_outer_width</p> 166 <WindowOuterWidthDemo /> 167 <p>window_outer_height</p> 168 <WindowOuterHeightDemo /> 169 <p>browser_detection_firefox</p> 170 <BrowserDectectionFirefoxDemo /> 171 <p>browser_detection_brave</p> 172 <BrowserDetectionBraveDemo /> 173 <p>f58835f (previously browser_api_checks)</p> 174 <BrowserApiChecksDemo /> 175 <p>browser_object_checks</p> 176 <BrowserObjectChecksDemo /> 177 <p>audio_codecs</p> 178 <AudioCodecsDemo /> 179 <p>audio_codecs_extended_hash</p> 180 <AudioCodecsExtendedHashDemo /> 181 <p>window__tree_structure</p> 182 <WindowTreeStructureDemo /> 183 <p>window__location_href</p> 184 <WindowLocationHrefDemo /> 185 <p>math_fingerprint</p> 186 <MathFingerprintDemo /> 187 <p>supported_math_functions</p> 188 <SupportedMathFunctionsDemo /> 189 <p>3ea7194</p> 190 <U_3ea7194Demo /> 191 <p>3f76dd27 (previously, screen_orientation)</p> 192 <ScreenOrientationDemo /> 193 <p>webgl_aliased_line_width_range</p> 194 <WebglAliasedLineWidthRangeDemo /> 195 <p>webgl_aliased_point_size_range</p> 196 <WebglAliasedPointSizeRangeDemo /> 197 <p>webgl_antialiasing</p> 198 <WebglAntialiasingDemo /> 199 <p>webgl_bits</p> 200 <WebglBitsDemo /> 201 <p>webgl_extensions</p> 202 <WebglExtensionsDemo /> 203 <p>webgl_extensions_hash</p> 204 <WebglExtensionsHashDemo /> 205 <p>webgl_fsf_params</p> 206 <WebglFsfParamsDemo /> 207 <p>webgl_fsi_params</p> 208 <WebglFsiParamsDemo /> 209 <p>webgl_hash_webgl</p> 210 <WebglHashWebglDemo /> 211 <p>webgl_max_params</p> 212 <WebglMaxParamsDemo /> 213 <p>webgl_max_viewport_dims</p> 214 <WebglMaxViewportDimsDemo /> 215 <p>webgl_renderer</p> 216 <WebglRendererDemo /> 217 <p>webgl_shading_language_version</p> 218 <WebglShadingLanguageVersionDemo /> 219 <p>webgl_unmasked_renderer</p> 220 <WebglUnmaskedRendererDemo /> 221 <p>webgl_unmasked_vendor</p> 222 <WebglUnmaskedVendorDemo /> 223 <p>webgl_vendor</p> 224 <WebglVendorDemo /> 225 <p>webgl_version</p> 226 <WebglVersionDemo /> 227 <p>webgl_vsf_params</p> 228 <WebglVsfParamsDemo /> 229 <p>webgl_vsi_params</p> 230 <WebglVsiParamsDemo /> 231 </section> 232 <section> 233 <h2 class="text-2xl font-bold">fe</h2> 234 235 <p>AS</p> 236 <AsDemo /> 237 <p>B</p> 238 <BDemo /> 239 <p>CFP</p> 240 <CfpDemo /> 241 <p>CPUC</p> 242 <CpucDemo /> 243 <p>D</p> 244 <DDemo /> 245 <p>DNT</p> 246 <DntDemo /> 247 <p>FB</p> 248 <FbDemo /> 249 <p>fos</p> 250 <FosDemo /> 251 <p>fr</p> 252 <FrDemo /> 253 <p>H</p> 254 <HDemo /> 255 <p>IDB</p> 256 <IdbDemo /> 257 <p>JSF</p> 258 <JsfDemo /> 259 <p>L</p> 260 <LDemo /> 261 <p>LS</p> 262 <LsDemo /> 263 <p>ODB</p> 264 <OdbDemo /> 265 <p>P</p> 266 <PDemo /> 267 <p>PK</p> 268 <PkDemo /> 269 <p>PR</p> 270 <PrDemo /> 271 <p>S</p> 272 <SDemo /> 273 <p>SS</p> 274 <SsDemo /> 275 <p>SWF</p> 276 <SwfDemo /> 277 <p>T</p> 278 <TDemo /> 279 <p>TO</p> 280 <ToDemo /> 281 </section> 282 <section> 283 <h2>jsbd</h2> 284 <JsbdDemo /> 285 </section> 286 <section> 287 <h2>n</h2> 288 <NDemo /> 289 </section> 290 </main> 291 ); 292 }; 293 294 export default DocumentationView;