@plyaz/config 1.2.0 → 1.2.2

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/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
1
  'use strict';var chains=require('viem/chains');// @plyaz package - Built with tsup
2
- var T=typeof window>"u",t=globalThis.process.env.NODE_ENV==="development",r=globalThis.process.env.NODE_ENV==="production",_=globalThis.process.env.NODE_ENV==="test";var A={apiKey:globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY,rpcUrls:{ethereum:`https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,polygon:`https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,arbitrum:`https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,optimism:`https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,base:`https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,solana:`https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`}};var a={google:{clientId:globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,clientSecret:globalThis.process.env.GOOGLE_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,scopes:["openid","profile","email"]},discord:{clientId:globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,clientSecret:globalThis.process.env.DISCORD_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,scopes:["identify","email"]},facebook:{clientId:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,clientSecret:globalThis.process.env.FACEBOOK_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,scopes:["public_profile","email"]}};var R={nftManager:{read:{arbitrum:""},write:{arbitrum:""}},tokenManager:{read:{arbitrum:""},write:{arbitrum:""}}};var I={ethereum:chains.mainnet},l={ethereum:chains.mainnet,sepolia:chains.sepolia},i={sepolia:chains.sepolia};var P={AUTH_GOOGLE:true,AUTH_DISCORD:t,AUTH_FACEBOOK:false,AUTH_GITHUB:true},y={provider:"database",isCacheEnabled:true,cacheTtl:300,refreshInterval:60,shouldFallbackToDefaults:true,isLoggingEnabled:globalThis.process.env.NODE_ENV==="development"},M={provider:"memory",isCacheEnabled:true,cacheTtl:300,refreshInterval:0,shouldFallbackToDefaults:true,isLoggingEnabled:false},h=100,F=300,H=6e4,g=1e3,d=.1,b={MEMORY:"memory",FILE:"file",REDIS:"redis",API:"api",DATABASE:"database"},B={JSON:"json",YAML:"yaml"},u={DEFAULT:"src/config/feature-provider.json",JSON_EXAMPLE:"src/config/feature-provider.json.example",YAML_EXAMPLE:"src/config/feature-provider.yaml.example"},v={DEFAULT:"default",OVERRIDE:"override",RULE_MATCH:"rule_match",FLAG_DISABLED:"flag_disabled",ERROR:"error"};var G={app:"https://plyaz.co.uk",api:globalThis.process.env.NEXT_PUBLIC_API_URL};var o="en",e=["en","es","pt"],X="Europe/London";var z={NAME:"Plyaz",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:e},W={NAME:"Plyaz The App",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:e};var w={BLOCKED_REGIONS:["KP","SY","IR","CU","SD","SO","UA-CR","UA-DP","UA-LU"]};var j={},J={ttl:{short:300,medium:1800,long:3600,extended:86400},keys:{user:"user:",nft:"nft:",blockchain:"blockchain:",auth:"auth:"},redis:{url:globalThis.process.env.REDIS_URL,keyPrefix:"plyaz:",maxRetriesPerRequest:3,lazyConnect:true}},Q={};var oo={RANDOM_STRING_START:2,RANDOM_STRING_LENGTH:9,UUID_RANDOM_MULTIPLIER:16,UUID_HEX_MASK:3,UUID_HEX_OR_VALUE:8};var so={ARRAY_SPLIT_CENTER:.5,DEFAULT_PAGE_SIZE:10,DEFAULT_MAX_RETRIES:3,THREE_ITEMS:3};var ao={OK:200,CREATED:201,FOUND:302,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,FORBIDDEN:403,NOT_FOUND:404,INTERNAL_SERVER_ERROR:500};var So={MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,DEFAULT_TIMEOUT:5e3,DEFAULT_RETRY_DELAY:100,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_DEBOUNCE_DELAY:50,DEFAULT_ANIMATION_FRAME:16.67,DEFAULT_CACHE_TTL:300,DEFAULT_PORT:3e3,WEBSOCKET_CLOSE_ABNORMAL:1006,WEBSOCKET_RETRY_DELAY:500};var Io={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,HEX_BASE:16,BASE36:36},lo={HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2};var mo={MEMORY_LEAK_THRESHOLD:.1,DEFAULT_BENCHMARK_RUNS:100,DEFAULT_WARMUP_RUNS:10};var fo={IPV4_OCTET_MIN:1,IPV4_OCTET_MAX:255,IPV4_OCTET_COUNT:4,RANDOM_BYTE_MAX:256,DEFAULT_PROCESS_ID_MAX:1e4};var ho={CHART_BAR_MAX_LENGTH:40,CHART_SEPARATOR_LENGTH:60,DECIMAL_PRECISION:3},Fo={LOWERCASE_A:97,ALPHABET_SIZE:26,SPACE:32};var Bo={x:"https://x.com/Plyaz_",instagram:"https://instagram.com/plyaz_",linkedin:"https://linkedin.com/company/plyaz"},uo={docs:"https://plyaz.gitbook.io/plyaz",community:"https://community.plyaz.co.uk",support:"mailto:help@plyaz.co.uk"};
3
- exports.ALCHEMY_CONFIG=A;exports.API_CONFIG=j;exports.CACHE_CLEANUP_INTERVAL_DEFAULT=H;exports.CACHE_CONFIG=J;exports.CACHE_EVICTION_PERCENTAGE=d;exports.CACHE_MAX_SIZE_DEFAULT=g;exports.CHAR_CODES=Fo;exports.COLLECTION_CONSTANTS=so;exports.CONTRACTS=R;exports.DEFAULT_BACKEND_CONFIG=y;exports.DEFAULT_FRONTEND_CONFIG=M;exports.DEFAULT_LOCALE=o;exports.DEV_SUPPORTED_CHAINS=i;exports.DISPLAY_CONSTANTS=ho;exports.DOMAINS=G;exports.FEATURES=P;exports.FEATURE_FLAG_CACHE_TTL_DEFAULT=F;exports.FEATURE_FLAG_EVALUATION_REASONS=v;exports.FEATURE_FLAG_FILE_FORMATS=B;exports.FEATURE_FLAG_FILE_PATHS=u;exports.FEATURE_FLAG_PROVIDERS=b;exports.FILE_CHECK_INTERVAL_DEFAULT=h;exports.HTTP_STATUS=ao;exports.LANDING_PAGE_APP=z;exports.MATH_CONSTANTS=lo;exports.NETWORK_CONSTANTS=fo;exports.NUMBER_SYSTEM=Io;exports.OAUTH_PROVIDERS=a;exports.PERFORMANCE_CONSTANTS=mo;exports.PRODUCT_LINKS=uo;exports.PROD_SUPPORTED_CHAINS=I;exports.SECURITY=w;exports.SOCIAL_LINKS=Bo;exports.STAGING_SUPPORTED_CHAINS=l;exports.STRING_CONSTANTS=oo;exports.SUPPORTED_LOCALES=e;exports.TIMEZONE=X;exports.TIME_CONSTANTS=So;exports.WEBHOOK_CONFIG=Q;exports.WEB_APP=W;exports.isDev=t;exports.isProd=r;exports.isServer=T;exports.isTest=_;//# sourceMappingURL=index.cjs.map
2
+ var o=typeof window>"u",T=globalThis.process.env.NODE_ENV==="development",t=globalThis.process.env.NODE_ENV==="production",R=globalThis.process.env.NODE_ENV==="test";var I={apiKey:globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY,rpcUrls:{ethereum:`https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,polygon:`https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,arbitrum:`https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,optimism:`https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,base:`https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,solana:`https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`}};var r={google:{clientId:globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,clientSecret:globalThis.process.env.GOOGLE_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,scopes:["openid","profile","email"]},discord:{clientId:globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,clientSecret:globalThis.process.env.DISCORD_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,scopes:["identify","email"]},facebook:{clientId:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,clientSecret:globalThis.process.env.FACEBOOK_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,scopes:["public_profile","email"]}};var s={nftManager:{read:{arbitrum:""},write:{arbitrum:""}},tokenManager:{read:{arbitrum:""},write:{arbitrum:""}}};var p={ethereum:chains.mainnet},i={ethereum:chains.mainnet,sepolia:chains.sepolia},U={sepolia:chains.sepolia};var m={AUTH_GOOGLE:true,AUTH_DISCORD:T,AUTH_FACEBOOK:false,AUTH_GITHUB:true},B={provider:"database",isCacheEnabled:true,cacheTtl:300,refreshInterval:60,shouldFallbackToDefaults:true,isLoggingEnabled:globalThis.process.env.NODE_ENV==="development"},F={provider:"memory",isCacheEnabled:true,cacheTtl:300,refreshInterval:0,shouldFallbackToDefaults:true,isLoggingEnabled:false},x=100,f=300,G=6e4,d=1e3,y=.1,Y={MEMORY:"memory",FILE:"file",REDIS:"redis",API:"api",DATABASE:"database"},b={JSON:"json",YAML:"yaml"},u={DEFAULT:"src/config/feature-provider.json",JSON_EXAMPLE:"src/config/feature-provider.json.example",YAML_EXAMPLE:"src/config/feature-provider.yaml.example"},h={DEFAULT:"default",OVERRIDE:"override",RULE_MATCH:"rule_match",FLAG_DISABLED:"flag_disabled",ERROR:"error"};var X={app:"https://plyaz.co.uk",api:globalThis.process.env.NEXT_PUBLIC_API_URL};var E="en",A=["en","es","pt"],W="Europe/London";var k={NAME:"Plyaz",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:A},w={NAME:"Plyaz The App",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:A};var Z={BLOCKED_REGIONS:["KP","SY","IR","CU","SD","SO","UA-CR","UA-DP","UA-LU"]};var $={},j={ttl:{short:300,medium:1800,long:3600,extended:86400},keys:{user:"user:",nft:"nft:",blockchain:"blockchain:",auth:"auth:"},redis:{url:globalThis.process.env.REDIS_URL,keyPrefix:"plyaz:",maxRetriesPerRequest:3,lazyConnect:true}},q={};var EE={RANDOM_STRING_START:2,RANDOM_STRING_LENGTH:9,UUID_RANDOM_MULTIPLIER:16,UUID_HEX_MASK:3,UUID_HEX_OR_VALUE:8};var eE={ARRAY_SPLIT_CENTER:.5,DEFAULT_PAGE_SIZE:10,DEFAULT_MAX_RETRIES:3,THREE_ITEMS:3};var rE={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};var CE={MILLISECOND:1,SECOND:1e3,MINUTE:6e4,HOUR:36e5,DAY:864e5,WEEK:6048e5,MONTH:2592e6,YEAR:31536e6,MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,DAYS_PER_WEEK:7,DAYS_PER_MONTH:30,DAYS_PER_YEAR:365,WEEKS_PER_YEAR:52,MONTHS_PER_YEAR:12,HUNDRED_MS:100,QUARTER_SECOND:250,HALF_SECOND:500,TWO_SECONDS:2e3,THREE_SECONDS:3e3,FIVE_SECONDS:5e3,TEN_SECONDS:1e4,THIRTY_SECONDS:3e4,TWO_MINUTES:12e4,FIVE_MINUTES:3e5,TEN_MINUTES:6e5,FIFTEEN_MINUTES:9e5,THIRTY_MINUTES:18e5,ONE_HOUR:36e5,TWO_HOURS:72e5,SIX_HOURS:216e5,TWELVE_HOURS:432e5,DEFAULT_TIMEOUT:5e3,DEFAULT_SHORT_TIMEOUT:1e3,DEFAULT_LONG_TIMEOUT:3e4,DEFAULT_RETRY_DELAY:100,DEFAULT_BACKOFF_BASE:1e3,DEFAULT_MAX_BACKOFF:3e4,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_DEBOUNCE_DELAY:50,DEFAULT_THROTTLE_DELAY:100,DEFAULT_ANIMATION_FRAME:16.67,DEFAULT_TRANSITION_DURATION:300,DEFAULT_CACHE_TTL:300,DEFAULT_SHORT_CACHE_TTL:60,DEFAULT_LONG_CACHE_TTL:3600,DEFAULT_SESSION_TIMEOUT:18e5,DEFAULT_IDLE_TIMEOUT:9e5,DEFAULT_POLL_INTERVAL:5e3,DEFAULT_HEARTBEAT_INTERVAL:3e4,DEFAULT_PORT:3e3,HTTP_PORT:80,HTTPS_PORT:443,WEBSOCKET_PORT:8080,DATABASE_PORT:5432,REDIS_PORT:6379,WEBSOCKET_CLOSE_NORMAL:1e3,WEBSOCKET_CLOSE_GOING_AWAY:1001,WEBSOCKET_CLOSE_PROTOCOL_ERROR:1002,WEBSOCKET_CLOSE_UNSUPPORTED:1003,WEBSOCKET_CLOSE_ABNORMAL:1006,WEBSOCKET_RETRY_DELAY:500,WEBSOCKET_PING_INTERVAL:3e4,WEBSOCKET_RECONNECT_DELAY:1e3,WEBSOCKET_MAX_RECONNECT_DELAY:3e4};var pE={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,DUODECIMAL_BASE:12,HEX_BASE:16,BASE32:32,BASE36:36,BASE58:58,BASE62:62,BASE64:64,HEX_PAD_LENGTH:2,HEX_COLOR_LENGTH:6,HEX_COLOR_ALPHA_LENGTH:8,BITS_PER_BYTE:8,BITS_PER_NIBBLE:4,BYTES_PER_KB:1024,BYTES_PER_MB:1048576,BYTES_PER_GB:1073741824,CURRENCY_DECIMAL_PLACES:2,PERCENTAGE_DECIMAL_PLACES:2,COORDINATE_DECIMAL_PLACES:6,MAX_SAFE_INTEGER:9007199254740991,MIN_SAFE_INTEGER:-9007199254740991,MAX_INT32:2147483647,MIN_INT32:-2147483648,MAX_UINT16:65535,MAX_UINT8:255,DEGREES_FULL_CIRCLE:360,DEGREES_HALF_CIRCLE:180,DEGREES_RIGHT_ANGLE:90,DEGREES_PER_RADIAN:57.29577951308232,RADIANS_PER_DEGREE:.017453292519943295,PI:3.141592653589793,TWO_PI:6.283185307179586,HALF_PI:1.5707963267948966,E:2.718281828459045,GOLDEN_RATIO:1.618033988749895,SQRT2:1.4142135623730951,SQRT3:1.7320508075688772,LN2:.6931471805599453,LN10:2.302585092994046,LOG2E:1.4426950408889634,LOG10E:.4342944819032518},iE={HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2};var ME={MEMORY_LEAK_THRESHOLD:.1,DEFAULT_BENCHMARK_RUNS:100,DEFAULT_WARMUP_RUNS:10};var HE={IPV4_OCTET_MIN:1,IPV4_OCTET_MAX:255,IPV4_OCTET_COUNT:4,RANDOM_BYTE_MAX:256,DEFAULT_PROCESS_ID_MAX:1e4};var xE={CHART_BAR_MAX_LENGTH:40,CHART_SEPARATOR_LENGTH:60,DECIMAL_PRECISION:3},fE={LOWERCASE_A:97,ALPHABET_SIZE:26,SPACE:32};var YE={x:"https://x.com/Plyaz_",instagram:"https://instagram.com/plyaz_",linkedin:"https://linkedin.com/company/plyaz"},bE={docs:"https://plyaz.gitbook.io/plyaz",community:"https://community.plyaz.co.uk",support:"mailto:help@plyaz.co.uk"},uE={INITIAL_POSTS_TO_SHOW:3,POSTS_INCREMENT:3,ANIMATION_DELAY:100};var gE={FOCUS_CHECK_DELAY:100,FOCUS_TAB_COUNT:10,MIN_FOCUS_VISIBLE_TIME:200,MAX_FOCUS_WAIT_TIME:3e3,SCREEN_READER_DEBOUNCE:150,MIN_LARGE_TEXT_SIZE:18,MIN_LARGE_TEXT_BOLD_SIZE:14,MIN_NORMAL_TEXT_SIZE:14,MIN_TOUCH_TARGET_SIZE:44,MIN_INLINE_TARGET_SIZE:24,COLOR_CHANNEL_MAX:255,SRGB_THRESHOLD:.03928,SRGB_DIVISOR:12.92,SRGB_OFFSET:.055,SRGB_SCALE:1.055,SRGB_EXPONENT:2.4,LUMINANCE_RED:.2126,LUMINANCE_GREEN:.7152,LUMINANCE_BLUE:.0722,LUMINANCE_OFFSET:.05,CONTRAST_RATIO_AA:4.5,CONTRAST_RATIO_AA_LARGE:3,CONTRAST_RATIO_AAA:7,CONTRAST_RATIO_AAA_LARGE:4.5,CONTRAST_RATIO_GRAPHICS:3,PERCENTAGE_MAX:100,MAX_ESSENTIAL_ANIMATION_DURATION:5e3,REDUCED_MOTION_DURATION:1,MAX_FLASH_RATE:3,MIN_AUTO_UPDATE_INTERVAL:5,MIN_TIMEOUT_WARNING:20,DEFAULT_SESSION_TIMEOUT:20,EXTENDED_SESSION_TIMEOUT:120,MAX_BACKGROUND_AUDIO_LEVEL:-20,DEFAULT_CAPTION_OFFSET:50,MIN_CAPTION_FONT_SIZE:16,AUDIO_DESCRIPTION_DELAY:100,VALIDATION_DELAY:1e3,MAX_ERROR_MESSAGE_LENGTH:150,MIN_PASSWORD_LENGTH:8,MAX_ZOOM_WITHOUT_SCROLL:200,MIN_ZOOM_LEVEL:50,MAX_ZOOM_LEVEL:500,MAX_LINE_LENGTH:80,OPTIMAL_LINE_LENGTH:66,MIN_LINE_HEIGHT:1.5,MAX_PARAGRAPH_WIDTH:600},XE={BANNER:"banner",COMPLEMENTARY:"complementary",CONTENTINFO:"contentinfo",FORM:"form",MAIN:"main",NAVIGATION:"navigation",REGION:"region",SEARCH:"search",APPLICATION:"application",ARTICLE:"article",CELL:"cell",COLUMNHEADER:"columnheader",DEFINITION:"definition",DIRECTORY:"directory",DOCUMENT:"document",FEED:"feed",FIGURE:"figure",GROUP:"group",HEADING:"heading",IMG:"img",LIST:"list",LISTITEM:"listitem",MATH:"math",NOTE:"note",PRESENTATION:"presentation",ROW:"row",ROWGROUP:"rowgroup",ROWHEADER:"rowheader",SEPARATOR:"separator",TABLE:"table",TERM:"term",ALERT:"alert",ALERTDIALOG:"alertdialog",BUTTON:"button",CHECKBOX:"checkbox",COMBOBOX:"combobox",DIALOG:"dialog",GRIDCELL:"gridcell",LINK:"link",LISTBOX:"listbox",LOG:"log",MARQUEE:"marquee",MENU:"menu",MENUBAR:"menubar",MENUITEM:"menuitem",MENUITEMCHECKBOX:"menuitemcheckbox",MENUITEMRADIO:"menuitemradio",OPTION:"option",PROGRESSBAR:"progressbar",RADIO:"radio",RADIOGROUP:"radiogroup",SCROLLBAR:"scrollbar",SEARCHBOX:"searchbox",SLIDER:"slider",SPINBUTTON:"spinbutton",STATUS:"status",SWITCH:"switch",TAB:"tab",TABLIST:"tablist",TABPANEL:"tabpanel",TEXTBOX:"textbox",TIMER:"timer",TOOLBAR:"toolbar",TOOLTIP:"tooltip",TREE:"tree",TREEGRID:"treegrid",TREEITEM:"treeitem",COMMAND:"command",COMPOSITE:"composite",INPUT:"input",LANDMARK:"landmark",RANGE:"range",ROLETYPE:"roletype",SECTION:"section",SECTIONHEAD:"sectionhead",SELECT:"select",STRUCTURE:"structure",WIDGET:"widget",WINDOW:"window"},KE={ARIA_AUTOCOMPLETE:"aria-autocomplete",ARIA_CHECKED:"aria-checked",ARIA_DISABLED:"aria-disabled",ARIA_ERRORMESSAGE:"aria-errormessage",ARIA_EXPANDED:"aria-expanded",ARIA_HASPOPUP:"aria-haspopup",ARIA_HIDDEN:"aria-hidden",ARIA_INVALID:"aria-invalid",ARIA_LABEL:"aria-label",ARIA_LEVEL:"aria-level",ARIA_MODAL:"aria-modal",ARIA_MULTILINE:"aria-multiline",ARIA_MULTISELECTABLE:"aria-multiselectable",ARIA_ORIENTATION:"aria-orientation",ARIA_PLACEHOLDER:"aria-placeholder",ARIA_PRESSED:"aria-pressed",ARIA_READONLY:"aria-readonly",ARIA_REQUIRED:"aria-required",ARIA_SELECTED:"aria-selected",ARIA_SORT:"aria-sort",ARIA_VALUEMAX:"aria-valuemax",ARIA_VALUEMIN:"aria-valuemin",ARIA_VALUENOW:"aria-valuenow",ARIA_VALUETEXT:"aria-valuetext",ARIA_LIVE:"aria-live",ARIA_ATOMIC:"aria-atomic",ARIA_RELEVANT:"aria-relevant",ARIA_BUSY:"aria-busy",ARIA_DROPEFFECT:"aria-dropeffect",ARIA_GRABBED:"aria-grabbed",ARIA_ACTIVEDESCENDANT:"aria-activedescendant",ARIA_COLCOUNT:"aria-colcount",ARIA_COLINDEX:"aria-colindex",ARIA_COLSPAN:"aria-colspan",ARIA_CONTROLS:"aria-controls",ARIA_DESCRIBEDBY:"aria-describedby",ARIA_DETAILS:"aria-details",ARIA_FLOWTO:"aria-flowto",ARIA_LABELLEDBY:"aria-labelledby",ARIA_OWNS:"aria-owns",ARIA_POSINSET:"aria-posinset",ARIA_ROWCOUNT:"aria-rowcount",ARIA_ROWINDEX:"aria-rowindex",ARIA_ROWSPAN:"aria-rowspan",ARIA_SETSIZE:"aria-setsize",ARIA_CURRENT:"aria-current",ARIA_DESCRIPTION:"aria-description",ARIA_KEYSHORTCUTS:"aria-keyshortcuts",ARIA_ROLEDESCRIPTION:"aria-roledescription"},WE={TAB:"Tab",ENTER:"Enter",SPACE:" ",ESCAPE:"Escape",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",HOME:"Home",END:"End",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",TAB_KEYCODE:9,ENTER_KEYCODE:13,ESCAPE_KEYCODE:27,SPACE_KEYCODE:32,ARROW_LEFT_KEYCODE:37,ARROW_UP_KEYCODE:38,ARROW_RIGHT_KEYCODE:39,ARROW_DOWN_KEYCODE:40},VE={POLITE:"polite",ASSERTIVE:"assertive",OFF:"off"},vE={INITIAL_FOCUS:"[data-focus-initial], [autofocus]",FOCUSABLE_ELEMENTS:'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])',INTERACTIVE_ELEMENTS:'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',SKIP_LINK:"[data-skip-link], .skip-link"};
3
+ exports.A11Y_CONSTANTS=gE;exports.ALCHEMY_CONFIG=I;exports.ANNOUNCEMENT_PRIORITY=VE;exports.API_CONFIG=$;exports.ARIA_ATTRIBUTES=KE;exports.ARIA_ROLES=XE;exports.BLOG=uE;exports.CACHE_CLEANUP_INTERVAL_DEFAULT=G;exports.CACHE_CONFIG=j;exports.CACHE_EVICTION_PERCENTAGE=y;exports.CACHE_MAX_SIZE_DEFAULT=d;exports.CHAR_CODES=fE;exports.COLLECTION_CONSTANTS=eE;exports.CONTRACTS=s;exports.DEFAULT_BACKEND_CONFIG=B;exports.DEFAULT_FRONTEND_CONFIG=F;exports.DEFAULT_LOCALE=E;exports.DEV_SUPPORTED_CHAINS=U;exports.DISPLAY_CONSTANTS=xE;exports.DOMAINS=X;exports.FEATURES=m;exports.FEATURE_FLAG_CACHE_TTL_DEFAULT=f;exports.FEATURE_FLAG_EVALUATION_REASONS=h;exports.FEATURE_FLAG_FILE_FORMATS=b;exports.FEATURE_FLAG_FILE_PATHS=u;exports.FEATURE_FLAG_PROVIDERS=Y;exports.FILE_CHECK_INTERVAL_DEFAULT=x;exports.FOCUS_TRAP=vE;exports.HTTP_STATUS=rE;exports.KEYBOARD_CODES=WE;exports.LANDING_PAGE_APP=k;exports.MATH_CONSTANTS=iE;exports.NETWORK_CONSTANTS=HE;exports.NUMBER_SYSTEM=pE;exports.OAUTH_PROVIDERS=r;exports.PERFORMANCE_CONSTANTS=ME;exports.PRODUCT_LINKS=bE;exports.PROD_SUPPORTED_CHAINS=p;exports.SECURITY=Z;exports.SOCIAL_LINKS=YE;exports.STAGING_SUPPORTED_CHAINS=i;exports.STRING_CONSTANTS=EE;exports.SUPPORTED_LOCALES=A;exports.TIMEZONE=W;exports.TIME_CONSTANTS=CE;exports.WEBHOOK_CONFIG=q;exports.WEB_APP=w;exports.isDev=T;exports.isProd=t;exports.isServer=o;exports.isTest=R;//# sourceMappingURL=index.cjs.map
4
4
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/contracts.ts","../src/chains/supportedChains.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts","../src/utils/string/constants.ts","../src/utils/collection/constants.ts","../src/http/constants.ts","../src/time/constants.ts","../src/math/constants.ts","../src/performance/index.ts","../src/network/constants.ts","../src/display/constants.ts","../src/social.ts"],"names":["isServer","isDev","isProd","isTest","ALCHEMY_CONFIG","OAUTH_PROVIDERS","CONTRACTS","PROD_SUPPORTED_CHAINS","mainnet","STAGING_SUPPORTED_CHAINS","sepolia","DEV_SUPPORTED_CHAINS","FEATURES","DEFAULT_BACKEND_CONFIG","DEFAULT_FRONTEND_CONFIG","FILE_CHECK_INTERVAL_DEFAULT","FEATURE_FLAG_CACHE_TTL_DEFAULT","CACHE_CLEANUP_INTERVAL_DEFAULT","CACHE_MAX_SIZE_DEFAULT","CACHE_EVICTION_PERCENTAGE","FEATURE_FLAG_PROVIDERS","FEATURE_FLAG_FILE_FORMATS","FEATURE_FLAG_FILE_PATHS","FEATURE_FLAG_EVALUATION_REASONS","DOMAINS","DEFAULT_LOCALE","SUPPORTED_LOCALES","TIMEZONE","LANDING_PAGE_APP","WEB_APP","SECURITY","API_CONFIG","CACHE_CONFIG","WEBHOOK_CONFIG","STRING_CONSTANTS","COLLECTION_CONSTANTS","HTTP_STATUS","TIME_CONSTANTS","NUMBER_SYSTEM","MATH_CONSTANTS","PERFORMANCE_CONSTANTS","NETWORK_CONSTANTS","DISPLAY_CONSTANTS","CHAR_CODES","SOCIAL_LINKS","PRODUCT_LINKS"],"mappings":"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","file":"index.cjs","sourcesContent":["export const isServer = typeof window === 'undefined';\nexport const isDev = globalThis.process.env.NODE_ENV === 'development';\nexport const isProd = globalThis.process.env.NODE_ENV === 'production';\nexport const isTest = globalThis.process.env.NODE_ENV === 'test';\n","export const ALCHEMY_CONFIG = {\n apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","export const OAUTH_PROVIDERS = {\n google: {\n clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","/**\n * Feature Flag Constants\n *\n */\n\nimport { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n AUTH_GOOGLE: true,\n AUTH_DISCORD: isDev,\n AUTH_FACEBOOK: false,\n AUTH_GITHUB: true,\n} as const satisfies Record<string, boolean>;\n\n/**\n * Default backend configuration for feature flags.\n * Optimized for server-side usage with reasonable defaults.\n */\nexport const DEFAULT_BACKEND_CONFIG = {\n provider: 'database',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 60, // 1 minute auto-refresh\n shouldFallbackToDefaults: true,\n isLoggingEnabled: globalThis.process.env.NODE_ENV === 'development',\n} as const;\n\n/**\n * Default frontend configuration for feature flags.\n * Optimized for client-side usage with reasonable defaults.\n */\nexport const DEFAULT_FRONTEND_CONFIG = {\n provider: 'memory',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 0, // No auto-refresh for frontend\n shouldFallbackToDefaults: true,\n isLoggingEnabled: false, // Disabled in production\n} as const;\n\n/**\n * Default file check interval for file watcher debouncing (in milliseconds)\n * Prevents rapid reloads when files are saved multiple times quickly\n * @default 100\n */\nexport const FILE_CHECK_INTERVAL_DEFAULT = 100;\n\n/**\n * Default cache TTL for feature flags (in seconds)\n * @default 300 (5 minutes)\n */\nexport const FEATURE_FLAG_CACHE_TTL_DEFAULT = 300;\n\n/**\n * Default cleanup interval for memory cache (in milliseconds)\n * @default 60000 (1 minute)\n */\nexport const CACHE_CLEANUP_INTERVAL_DEFAULT = 60000;\n\n/**\n * Default maximum cache size for memory strategy\n * @default 1000\n */\nexport const CACHE_MAX_SIZE_DEFAULT = 1000;\n\n/**\n * Percentage of cache entries to evict when cache is full\n * @default 0.1 (10%)\n */\nexport const CACHE_EVICTION_PERCENTAGE = 0.1;\n\n/**\n * Feature flag provider types\n */\nexport const FEATURE_FLAG_PROVIDERS = {\n MEMORY: 'memory',\n FILE: 'file',\n REDIS: 'redis',\n API: 'api',\n DATABASE: 'database',\n} as const;\n\n/**\n * Feature flag file formats\n */\nexport const FEATURE_FLAG_FILE_FORMATS = {\n JSON: 'json',\n YAML: 'yaml',\n} as const;\n\n/**\n * Default file paths for feature flag configuration\n */\nexport const FEATURE_FLAG_FILE_PATHS = {\n DEFAULT: 'src/config/feature-provider.json',\n JSON_EXAMPLE: 'src/config/feature-provider.json.example',\n YAML_EXAMPLE: 'src/config/feature-provider.yaml.example',\n} as const;\n\n/**\n * Feature flag evaluation reasons\n */\nexport const FEATURE_FLAG_EVALUATION_REASONS = {\n DEFAULT: 'default',\n OVERRIDE: 'override',\n RULE_MATCH: 'rule_match',\n FLAG_DISABLED: 'flag_disabled',\n ERROR: 'error',\n} as const;\n","export const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: globalThis.process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\nexport const TIMEZONE = 'Europe/London';\n","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","export const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: globalThis.process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n","/**\n * String Manipulation Constants\n *\n * Constants used for string generation, manipulation,\n * and UUID-related operations.\n *\n * @module utils/string/constants\n */\n\n/**\n * String generation and manipulation constants\n */\nexport const STRING_CONSTANTS = {\n /**\n * Starting position for random string extraction\n */\n RANDOM_STRING_START: 2,\n\n /**\n * Length of random string segment\n */\n RANDOM_STRING_LENGTH: 9,\n\n /**\n * Multiplier for UUID random value generation\n */\n UUID_RANDOM_MULTIPLIER: 16,\n\n /**\n * Hexadecimal mask for UUID generation\n */\n UUID_HEX_MASK: 0x3,\n\n /**\n * OR value for UUID hexadecimal operations\n */\n UUID_HEX_OR_VALUE: 0x8,\n} as const;\n\n/**\n * Type for string constant values\n */\nexport type StringConstant = (typeof STRING_CONSTANTS)[keyof typeof STRING_CONSTANTS];\n","/**\n * Collection and Array Constants\n *\n * Constants for array operations, pagination,\n * and collection manipulation.\n *\n * @module utils/collection/constants\n */\n\n/**\n * Array and collection operation constants\n */\nexport const COLLECTION_CONSTANTS = {\n /**\n * Center point for array splitting (50%)\n */\n ARRAY_SPLIT_CENTER: 0.5,\n\n /**\n * Default page size for pagination\n */\n DEFAULT_PAGE_SIZE: 10,\n\n /**\n * Default maximum number of retries for operations\n */\n DEFAULT_MAX_RETRIES: 3,\n\n /**\n * Constant for three items (used in various contexts)\n */\n THREE_ITEMS: 3,\n} as const;\n\n/**\n * Type for collection constant values\n */\nexport type CollectionConstant = (typeof COLLECTION_CONSTANTS)[keyof typeof COLLECTION_CONSTANTS];\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Time-related Constants\n *\n * Common time values and durations used throughout the application\n * for timeouts, delays, caching, and other time-based operations.\n *\n * @module time/constants\n */\n\n/**\n * Time conversion and duration constants\n */\nexport const TIME_CONSTANTS = {\n /**\n * Number of milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Number of seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Number of minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Number of hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Default timeout duration in milliseconds (5 seconds)\n */\n DEFAULT_TIMEOUT: 5000,\n\n /**\n * Default retry delay in milliseconds (100ms)\n */\n DEFAULT_RETRY_DELAY: 100,\n\n /**\n * Default number of retry attempts\n */\n DEFAULT_RETRY_ATTEMPTS: 3,\n\n /**\n * Default debounce delay in milliseconds (50ms)\n */\n DEFAULT_DEBOUNCE_DELAY: 50,\n\n /**\n * Default animation frame duration in milliseconds (~60fps)\n */\n DEFAULT_ANIMATION_FRAME: 16.67,\n\n /**\n * Default cache time-to-live in seconds (5 minutes)\n */\n DEFAULT_CACHE_TTL: 300,\n\n /**\n * Default port number for servers\n */\n DEFAULT_PORT: 3000,\n\n /**\n * WebSocket abnormal closure code\n */\n WEBSOCKET_CLOSE_ABNORMAL: 1006,\n\n /**\n * WebSocket retry delay in milliseconds (500ms)\n */\n WEBSOCKET_RETRY_DELAY: 500,\n} as const;\n\n/**\n * Type for time constant values\n */\nexport type TimeConstant = (typeof TIME_CONSTANTS)[keyof typeof TIME_CONSTANTS];\n","/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n","/**\n * Performance Module\n *\n * Performance monitoring and benchmarking constants used for\n * measuring application performance, detecting memory leaks,\n * and configuring performance tests.\n *\n * @module performance\n */\n\n/**\n * Performance measurement constants\n */\nexport const PERFORMANCE_CONSTANTS = {\n /**\n * Threshold for detecting memory leaks (10% growth)\n */\n MEMORY_LEAK_THRESHOLD: 0.1,\n\n /**\n * Default number of benchmark runs for performance testing\n */\n DEFAULT_BENCHMARK_RUNS: 100,\n\n /**\n * Default number of warmup runs before benchmarking\n */\n DEFAULT_WARMUP_RUNS: 10,\n} as const;\n\n/**\n * Type for performance constant values\n */\nexport type PerformanceConstant =\n (typeof PERFORMANCE_CONSTANTS)[keyof typeof PERFORMANCE_CONSTANTS];\n","/**\n * Network-related Constants\n *\n * Constants for network operations including IP addresses,\n * byte ranges, and process identifiers.\n *\n * @module network/constants\n */\n\n/**\n * Network and connection constants\n */\nexport const NETWORK_CONSTANTS = {\n /**\n * Minimum value for an IPv4 octet (excluding 0 for first octet)\n */\n IPV4_OCTET_MIN: 1,\n\n /**\n * Maximum value for an IPv4 octet\n */\n IPV4_OCTET_MAX: 255,\n\n /**\n * Number of octets in an IPv4 address\n */\n IPV4_OCTET_COUNT: 4,\n\n /**\n * Maximum value for a random byte (256 exclusive)\n */\n RANDOM_BYTE_MAX: 256,\n\n /**\n * Default maximum process ID for testing\n */\n DEFAULT_PROCESS_ID_MAX: 10000,\n} as const;\n\n/**\n * Type for network constant values\n */\nexport type NetworkConstant = (typeof NETWORK_CONSTANTS)[keyof typeof NETWORK_CONSTANTS];\n","/**\n * Display and Character Constants\n *\n * Constants for display formatting, charting,\n * and character code operations.\n *\n * @module display/constants\n */\n\n/**\n * Display and chart formatting constants\n */\nexport const DISPLAY_CONSTANTS = {\n /**\n * Maximum length for chart bar display\n */\n CHART_BAR_MAX_LENGTH: 40,\n\n /**\n * Length of chart separator lines\n */\n CHART_SEPARATOR_LENGTH: 60,\n\n /**\n * Number of decimal places for display precision\n */\n DECIMAL_PRECISION: 3,\n} as const;\n\n/**\n * Character code constants\n */\nexport const CHAR_CODES = {\n /**\n * ASCII code for lowercase 'a'\n */\n LOWERCASE_A: 97,\n\n /**\n * Number of letters in the alphabet\n */\n ALPHABET_SIZE: 26,\n\n /**\n * ASCII code for space character\n */\n SPACE: 32,\n} as const;\n\n/**\n * Type for display constant values\n */\nexport type DisplayConstant = (typeof DISPLAY_CONSTANTS)[keyof typeof DISPLAY_CONSTANTS];\n\n/**\n * Type for character code values\n */\nexport type CharCode = (typeof CHAR_CODES)[keyof typeof CHAR_CODES];\n","export const SOCIAL_LINKS = {\n x: \"https://x.com/Plyaz_\",\n instagram: \"https://instagram.com/plyaz_\",\n linkedin: \"https://linkedin.com/company/plyaz\",\n} as const;\n\nexport const PRODUCT_LINKS = {\n docs: \"https://plyaz.gitbook.io/plyaz\",\n community: \"https://community.plyaz.co.uk\",\n support: \"mailto:help@plyaz.co.uk\",\n} as const;"]}
1
+ {"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/contracts.ts","../src/chains/supportedChains.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts","../src/utils/string/constants.ts","../src/utils/collection/constants.ts","../src/http/constants.ts","../src/time/constants.ts","../src/math/constants.ts","../src/performance/index.ts","../src/network/constants.ts","../src/display/constants.ts","../src/social.ts","../src/a11y/constants.ts"],"names":["isServer","isDev","isProd","isTest","ALCHEMY_CONFIG","OAUTH_PROVIDERS","CONTRACTS","PROD_SUPPORTED_CHAINS","mainnet","STAGING_SUPPORTED_CHAINS","sepolia","DEV_SUPPORTED_CHAINS","FEATURES","DEFAULT_BACKEND_CONFIG","DEFAULT_FRONTEND_CONFIG","FILE_CHECK_INTERVAL_DEFAULT","FEATURE_FLAG_CACHE_TTL_DEFAULT","CACHE_CLEANUP_INTERVAL_DEFAULT","CACHE_MAX_SIZE_DEFAULT","CACHE_EVICTION_PERCENTAGE","FEATURE_FLAG_PROVIDERS","FEATURE_FLAG_FILE_FORMATS","FEATURE_FLAG_FILE_PATHS","FEATURE_FLAG_EVALUATION_REASONS","DOMAINS","DEFAULT_LOCALE","SUPPORTED_LOCALES","TIMEZONE","LANDING_PAGE_APP","WEB_APP","SECURITY","API_CONFIG","CACHE_CONFIG","WEBHOOK_CONFIG","STRING_CONSTANTS","COLLECTION_CONSTANTS","HTTP_STATUS","TIME_CONSTANTS","NUMBER_SYSTEM","MATH_CONSTANTS","PERFORMANCE_CONSTANTS","NETWORK_CONSTANTS","DISPLAY_CONSTANTS","CHAR_CODES","SOCIAL_LINKS","PRODUCT_LINKS","BLOG","A11Y_CONSTANTS","ARIA_ROLES","ARIA_ATTRIBUTES","KEYBOARD_CODES","ANNOUNCEMENT_PRIORITY","FOCUS_TRAP"],"mappings":"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","file":"index.cjs","sourcesContent":["export const isServer = typeof window === 'undefined';\nexport const isDev = globalThis.process.env.NODE_ENV === 'development';\nexport const isProd = globalThis.process.env.NODE_ENV === 'production';\nexport const isTest = globalThis.process.env.NODE_ENV === 'test';\n","export const ALCHEMY_CONFIG = {\n apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","export const OAUTH_PROVIDERS = {\n google: {\n clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","/**\n * Feature Flag Constants\n *\n */\n\nimport { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n AUTH_GOOGLE: true,\n AUTH_DISCORD: isDev,\n AUTH_FACEBOOK: false,\n AUTH_GITHUB: true,\n} as const satisfies Record<string, boolean>;\n\n/**\n * Default backend configuration for feature flags.\n * Optimized for server-side usage with reasonable defaults.\n */\nexport const DEFAULT_BACKEND_CONFIG = {\n provider: 'database',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 60, // 1 minute auto-refresh\n shouldFallbackToDefaults: true,\n isLoggingEnabled: globalThis.process.env.NODE_ENV === 'development',\n} as const;\n\n/**\n * Default frontend configuration for feature flags.\n * Optimized for client-side usage with reasonable defaults.\n */\nexport const DEFAULT_FRONTEND_CONFIG = {\n provider: 'memory',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 0, // No auto-refresh for frontend\n shouldFallbackToDefaults: true,\n isLoggingEnabled: false, // Disabled in production\n} as const;\n\n/**\n * Default file check interval for file watcher debouncing (in milliseconds)\n * Prevents rapid reloads when files are saved multiple times quickly\n * @default 100\n */\nexport const FILE_CHECK_INTERVAL_DEFAULT = 100;\n\n/**\n * Default cache TTL for feature flags (in seconds)\n * @default 300 (5 minutes)\n */\nexport const FEATURE_FLAG_CACHE_TTL_DEFAULT = 300;\n\n/**\n * Default cleanup interval for memory cache (in milliseconds)\n * @default 60000 (1 minute)\n */\nexport const CACHE_CLEANUP_INTERVAL_DEFAULT = 60000;\n\n/**\n * Default maximum cache size for memory strategy\n * @default 1000\n */\nexport const CACHE_MAX_SIZE_DEFAULT = 1000;\n\n/**\n * Percentage of cache entries to evict when cache is full\n * @default 0.1 (10%)\n */\nexport const CACHE_EVICTION_PERCENTAGE = 0.1;\n\n/**\n * Feature flag provider types\n */\nexport const FEATURE_FLAG_PROVIDERS = {\n MEMORY: 'memory',\n FILE: 'file',\n REDIS: 'redis',\n API: 'api',\n DATABASE: 'database',\n} as const;\n\n/**\n * Feature flag file formats\n */\nexport const FEATURE_FLAG_FILE_FORMATS = {\n JSON: 'json',\n YAML: 'yaml',\n} as const;\n\n/**\n * Default file paths for feature flag configuration\n */\nexport const FEATURE_FLAG_FILE_PATHS = {\n DEFAULT: 'src/config/feature-provider.json',\n JSON_EXAMPLE: 'src/config/feature-provider.json.example',\n YAML_EXAMPLE: 'src/config/feature-provider.yaml.example',\n} as const;\n\n/**\n * Feature flag evaluation reasons\n */\nexport const FEATURE_FLAG_EVALUATION_REASONS = {\n DEFAULT: 'default',\n OVERRIDE: 'override',\n RULE_MATCH: 'rule_match',\n FLAG_DISABLED: 'flag_disabled',\n ERROR: 'error',\n} as const;\n","export const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: globalThis.process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\nexport const TIMEZONE = 'Europe/London';\n","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","export const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: globalThis.process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n","/**\n * String Manipulation Constants\n *\n * Constants used for string generation, manipulation,\n * and UUID-related operations.\n *\n * @module utils/string/constants\n */\n\n/**\n * String generation and manipulation constants\n */\nexport const STRING_CONSTANTS = {\n /**\n * Starting position for random string extraction\n */\n RANDOM_STRING_START: 2,\n\n /**\n * Length of random string segment\n */\n RANDOM_STRING_LENGTH: 9,\n\n /**\n * Multiplier for UUID random value generation\n */\n UUID_RANDOM_MULTIPLIER: 16,\n\n /**\n * Hexadecimal mask for UUID generation\n */\n UUID_HEX_MASK: 0x3,\n\n /**\n * OR value for UUID hexadecimal operations\n */\n UUID_HEX_OR_VALUE: 0x8,\n} as const;\n\n/**\n * Type for string constant values\n */\nexport type StringConstant = (typeof STRING_CONSTANTS)[keyof typeof STRING_CONSTANTS];\n","/**\n * Collection and Array Constants\n *\n * Constants for array operations, pagination,\n * and collection manipulation.\n *\n * @module utils/collection/constants\n */\n\n/**\n * Array and collection operation constants\n */\nexport const COLLECTION_CONSTANTS = {\n /**\n * Center point for array splitting (50%)\n */\n ARRAY_SPLIT_CENTER: 0.5,\n\n /**\n * Default page size for pagination\n */\n DEFAULT_PAGE_SIZE: 10,\n\n /**\n * Default maximum number of retries for operations\n */\n DEFAULT_MAX_RETRIES: 3,\n\n /**\n * Constant for three items (used in various contexts)\n */\n THREE_ITEMS: 3,\n} as const;\n\n/**\n * Type for collection constant values\n */\nexport type CollectionConstant = (typeof COLLECTION_CONSTANTS)[keyof typeof COLLECTION_CONSTANTS];\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Time-related Constants\n *\n * Common time values and durations used throughout the application\n * for timeouts, delays, caching, and other time-based operations.\n *\n * @module time/constants\n */\n\n/**\n * Time conversion and duration constants\n */\nexport const TIME_CONSTANTS = {\n // Time unit conversions (in milliseconds)\n /**\n * One millisecond in milliseconds\n */\n MILLISECOND: 1,\n\n /**\n * One second in milliseconds\n */\n SECOND: 1000,\n\n /**\n * One minute in milliseconds\n */\n MINUTE: 60000,\n\n /**\n * One hour in milliseconds\n */\n HOUR: 3600000,\n\n /**\n * One day in milliseconds\n */\n DAY: 86400000,\n\n /**\n * One week in milliseconds\n */\n WEEK: 604800000,\n\n /**\n * One month in milliseconds (30 days average)\n */\n MONTH: 2592000000,\n\n /**\n * One year in milliseconds (365 days)\n */\n YEAR: 31536000000,\n\n // Time unit ratios\n /**\n * Number of milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Number of seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Number of minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Number of hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Number of days in one week\n */\n DAYS_PER_WEEK: 7,\n\n /**\n * Number of days in one month (average)\n */\n DAYS_PER_MONTH: 30,\n\n /**\n * Number of days in one year\n */\n DAYS_PER_YEAR: 365,\n\n /**\n * Number of weeks in one year\n */\n WEEKS_PER_YEAR: 52,\n\n /**\n * Number of months in one year\n */\n MONTHS_PER_YEAR: 12,\n\n // Common durations in milliseconds\n /**\n * 100 milliseconds\n */\n HUNDRED_MS: 100,\n\n /**\n * 250 milliseconds\n */\n QUARTER_SECOND: 250,\n\n /**\n * 500 milliseconds (half second)\n */\n HALF_SECOND: 500,\n\n /**\n * 2 seconds in milliseconds\n */\n TWO_SECONDS: 2000,\n\n /**\n * 3 seconds in milliseconds\n */\n THREE_SECONDS: 3000,\n\n /**\n * 5 seconds in milliseconds\n */\n FIVE_SECONDS: 5000,\n\n /**\n * 10 seconds in milliseconds\n */\n TEN_SECONDS: 10000,\n\n /**\n * 30 seconds in milliseconds\n */\n THIRTY_SECONDS: 30000,\n\n /**\n * 2 minutes in milliseconds\n */\n TWO_MINUTES: 120000,\n\n /**\n * 5 minutes in milliseconds\n */\n FIVE_MINUTES: 300000,\n\n /**\n * 10 minutes in milliseconds\n */\n TEN_MINUTES: 600000,\n\n /**\n * 15 minutes in milliseconds\n */\n FIFTEEN_MINUTES: 900000,\n\n /**\n * 30 minutes in milliseconds\n */\n THIRTY_MINUTES: 1800000,\n\n /**\n * 1 hour in milliseconds\n */\n ONE_HOUR: 3600000,\n\n /**\n * 2 hours in milliseconds\n */\n TWO_HOURS: 7200000,\n\n /**\n * 6 hours in milliseconds\n */\n SIX_HOURS: 21600000,\n\n /**\n * 12 hours in milliseconds\n */\n TWELVE_HOURS: 43200000,\n\n // Default values\n /**\n * Default timeout duration in milliseconds (5 seconds)\n */\n DEFAULT_TIMEOUT: 5000,\n\n /**\n * Default short timeout in milliseconds (1 second)\n */\n DEFAULT_SHORT_TIMEOUT: 1000,\n\n /**\n * Default long timeout in milliseconds (30 seconds)\n */\n DEFAULT_LONG_TIMEOUT: 30000,\n\n /**\n * Default retry delay in milliseconds (100ms)\n */\n DEFAULT_RETRY_DELAY: 100,\n\n /**\n * Default exponential backoff base delay in milliseconds (1 second)\n */\n DEFAULT_BACKOFF_BASE: 1000,\n\n /**\n * Default maximum backoff delay in milliseconds (30 seconds)\n */\n DEFAULT_MAX_BACKOFF: 30000,\n\n /**\n * Default number of retry attempts\n */\n DEFAULT_RETRY_ATTEMPTS: 3,\n\n /**\n * Default debounce delay in milliseconds (50ms)\n */\n DEFAULT_DEBOUNCE_DELAY: 50,\n\n /**\n * Default throttle delay in milliseconds (100ms)\n */\n DEFAULT_THROTTLE_DELAY: 100,\n\n /**\n * Default animation frame duration in milliseconds (~60fps)\n */\n DEFAULT_ANIMATION_FRAME: 16.67,\n\n /**\n * Default transition duration in milliseconds (300ms)\n */\n DEFAULT_TRANSITION_DURATION: 300,\n\n /**\n * Default cache time-to-live in seconds (5 minutes)\n */\n DEFAULT_CACHE_TTL: 300,\n\n /**\n * Default short cache TTL in seconds (1 minute)\n */\n DEFAULT_SHORT_CACHE_TTL: 60,\n\n /**\n * Default long cache TTL in seconds (1 hour)\n */\n DEFAULT_LONG_CACHE_TTL: 3600,\n\n /**\n * Default session timeout in milliseconds (30 minutes)\n */\n DEFAULT_SESSION_TIMEOUT: 1800000,\n\n /**\n * Default idle timeout in milliseconds (15 minutes)\n */\n DEFAULT_IDLE_TIMEOUT: 900000,\n\n /**\n * Default poll interval in milliseconds (5 seconds)\n */\n DEFAULT_POLL_INTERVAL: 5000,\n\n /**\n * Default heartbeat interval in milliseconds (30 seconds)\n */\n DEFAULT_HEARTBEAT_INTERVAL: 30000,\n\n // Network and ports\n /**\n * Default port number for servers\n */\n DEFAULT_PORT: 3000,\n\n /**\n * Default HTTP port\n */\n HTTP_PORT: 80,\n\n /**\n * Default HTTPS port\n */\n HTTPS_PORT: 443,\n\n /**\n * Default WebSocket port\n */\n WEBSOCKET_PORT: 8080,\n\n /**\n * Default database port (PostgreSQL)\n */\n DATABASE_PORT: 5432,\n\n /**\n * Default Redis port\n */\n REDIS_PORT: 6379,\n\n // WebSocket specific\n /**\n * WebSocket normal closure code\n */\n WEBSOCKET_CLOSE_NORMAL: 1000,\n\n /**\n * WebSocket going away code\n */\n WEBSOCKET_CLOSE_GOING_AWAY: 1001,\n\n /**\n * WebSocket protocol error code\n */\n WEBSOCKET_CLOSE_PROTOCOL_ERROR: 1002,\n\n /**\n * WebSocket unsupported data code\n */\n WEBSOCKET_CLOSE_UNSUPPORTED: 1003,\n\n /**\n * WebSocket abnormal closure code\n */\n WEBSOCKET_CLOSE_ABNORMAL: 1006,\n\n /**\n * WebSocket retry delay in milliseconds (500ms)\n */\n WEBSOCKET_RETRY_DELAY: 500,\n\n /**\n * WebSocket ping interval in milliseconds (30 seconds)\n */\n WEBSOCKET_PING_INTERVAL: 30000,\n\n /**\n * WebSocket reconnect delay in milliseconds (1 second)\n */\n WEBSOCKET_RECONNECT_DELAY: 1000,\n\n /**\n * WebSocket max reconnect delay in milliseconds (30 seconds)\n */\n WEBSOCKET_MAX_RECONNECT_DELAY: 30000,\n} as const;\n\n/**\n * Type for time constant values\n */\nexport type TimeConstant = (typeof TIME_CONSTANTS)[keyof typeof TIME_CONSTANTS];\n","/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n","/**\n * Performance Module\n *\n * Performance monitoring and benchmarking constants used for\n * measuring application performance, detecting memory leaks,\n * and configuring performance tests.\n *\n * @module performance\n */\n\n/**\n * Performance measurement constants\n */\nexport const PERFORMANCE_CONSTANTS = {\n /**\n * Threshold for detecting memory leaks (10% growth)\n */\n MEMORY_LEAK_THRESHOLD: 0.1,\n\n /**\n * Default number of benchmark runs for performance testing\n */\n DEFAULT_BENCHMARK_RUNS: 100,\n\n /**\n * Default number of warmup runs before benchmarking\n */\n DEFAULT_WARMUP_RUNS: 10,\n} as const;\n\n/**\n * Type for performance constant values\n */\nexport type PerformanceConstant =\n (typeof PERFORMANCE_CONSTANTS)[keyof typeof PERFORMANCE_CONSTANTS];\n","/**\n * Network-related Constants\n *\n * Constants for network operations including IP addresses,\n * byte ranges, and process identifiers.\n *\n * @module network/constants\n */\n\n/**\n * Network and connection constants\n */\nexport const NETWORK_CONSTANTS = {\n /**\n * Minimum value for an IPv4 octet (excluding 0 for first octet)\n */\n IPV4_OCTET_MIN: 1,\n\n /**\n * Maximum value for an IPv4 octet\n */\n IPV4_OCTET_MAX: 255,\n\n /**\n * Number of octets in an IPv4 address\n */\n IPV4_OCTET_COUNT: 4,\n\n /**\n * Maximum value for a random byte (256 exclusive)\n */\n RANDOM_BYTE_MAX: 256,\n\n /**\n * Default maximum process ID for testing\n */\n DEFAULT_PROCESS_ID_MAX: 10000,\n} as const;\n\n/**\n * Type for network constant values\n */\nexport type NetworkConstant = (typeof NETWORK_CONSTANTS)[keyof typeof NETWORK_CONSTANTS];\n","/**\n * Display and Character Constants\n *\n * Constants for display formatting, charting,\n * and character code operations.\n *\n * @module display/constants\n */\n\n/**\n * Display and chart formatting constants\n */\nexport const DISPLAY_CONSTANTS = {\n /**\n * Maximum length for chart bar display\n */\n CHART_BAR_MAX_LENGTH: 40,\n\n /**\n * Length of chart separator lines\n */\n CHART_SEPARATOR_LENGTH: 60,\n\n /**\n * Number of decimal places for display precision\n */\n DECIMAL_PRECISION: 3,\n} as const;\n\n/**\n * Character code constants\n */\nexport const CHAR_CODES = {\n /**\n * ASCII code for lowercase 'a'\n */\n LOWERCASE_A: 97,\n\n /**\n * Number of letters in the alphabet\n */\n ALPHABET_SIZE: 26,\n\n /**\n * ASCII code for space character\n */\n SPACE: 32,\n} as const;\n\n/**\n * Type for display constant values\n */\nexport type DisplayConstant = (typeof DISPLAY_CONSTANTS)[keyof typeof DISPLAY_CONSTANTS];\n\n/**\n * Type for character code values\n */\nexport type CharCode = (typeof CHAR_CODES)[keyof typeof CHAR_CODES];\n","export const SOCIAL_LINKS = {\n x: 'https://x.com/Plyaz_',\n instagram: 'https://instagram.com/plyaz_',\n linkedin: 'https://linkedin.com/company/plyaz',\n} as const;\n\nexport const PRODUCT_LINKS = {\n docs: 'https://plyaz.gitbook.io/plyaz',\n community: 'https://community.plyaz.co.uk',\n support: 'mailto:help@plyaz.co.uk',\n} as const;\n\nexport const BLOG = {\n INITIAL_POSTS_TO_SHOW: 3,\n POSTS_INCREMENT: 3,\n ANIMATION_DELAY: 100,\n} as const;","/**\n * Accessibility (a11y) Constants\n *\n * WCAG compliance constants, ARIA attributes, color contrast calculations,\n * and other accessibility-related values used throughout the application.\n *\n * @module a11y/constants\n */\n\n/**\n * Core accessibility constants for testing and validation\n */\nexport const A11Y_CONSTANTS = {\n // Focus and interaction timing\n /**\n * Delay before checking focus state (milliseconds)\n */\n FOCUS_CHECK_DELAY: 100,\n\n /**\n * Maximum number of tab key presses for focus testing\n */\n FOCUS_TAB_COUNT: 10,\n\n /**\n * Minimum time for focus to be visible (milliseconds)\n */\n MIN_FOCUS_VISIBLE_TIME: 200,\n\n /**\n * Maximum time to wait for focus change (milliseconds)\n */\n MAX_FOCUS_WAIT_TIME: 3000,\n\n /**\n * Debounce delay for screen reader announcements (milliseconds)\n */\n SCREEN_READER_DEBOUNCE: 150,\n\n // Text size thresholds\n /**\n * Minimum font size for large text (points)\n */\n MIN_LARGE_TEXT_SIZE: 18,\n\n /**\n * Minimum font size for bold large text (points)\n */\n MIN_LARGE_TEXT_BOLD_SIZE: 14,\n\n /**\n * Minimum font size for normal text (points)\n */\n MIN_NORMAL_TEXT_SIZE: 14,\n\n /**\n * Minimum touch target size (pixels) - WCAG 2.5.5\n */\n MIN_TOUCH_TARGET_SIZE: 44,\n\n /**\n * Minimum touch target size for inline elements (pixels)\n */\n MIN_INLINE_TARGET_SIZE: 24,\n\n // Color and contrast calculations\n /**\n * Maximum value for RGB color channels\n */\n COLOR_CHANNEL_MAX: 255,\n\n /**\n * sRGB threshold for luminance calculation\n */\n SRGB_THRESHOLD: 0.03928,\n\n /**\n * sRGB divisor for linear conversion\n */\n SRGB_DIVISOR: 12.92,\n\n /**\n * sRGB offset for gamma correction\n */\n SRGB_OFFSET: 0.055,\n\n /**\n * sRGB scale factor for gamma correction\n */\n SRGB_SCALE: 1.055,\n\n /**\n * sRGB exponent for gamma correction\n */\n SRGB_EXPONENT: 2.4,\n\n /**\n * Red channel weight for luminance calculation\n */\n LUMINANCE_RED: 0.2126,\n\n /**\n * Green channel weight for luminance calculation\n */\n LUMINANCE_GREEN: 0.7152,\n\n /**\n * Blue channel weight for luminance calculation\n */\n LUMINANCE_BLUE: 0.0722,\n\n /**\n * Offset added to luminance for contrast ratio calculation\n */\n LUMINANCE_OFFSET: 0.05,\n\n // WCAG contrast ratios\n /**\n * Minimum contrast ratio for AA compliance (normal text)\n */\n CONTRAST_RATIO_AA: 4.5,\n\n /**\n * Minimum contrast ratio for AA compliance (large text)\n */\n CONTRAST_RATIO_AA_LARGE: 3,\n\n /**\n * Minimum contrast ratio for AAA compliance (normal text)\n */\n CONTRAST_RATIO_AAA: 7,\n\n /**\n * Minimum contrast ratio for AAA compliance (large text)\n */\n CONTRAST_RATIO_AAA_LARGE: 4.5,\n\n /**\n * Minimum contrast ratio for non-text elements (graphics, UI components)\n */\n CONTRAST_RATIO_GRAPHICS: 3,\n\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n // Animation and motion\n /**\n * Maximum duration for essential animations (milliseconds)\n */\n MAX_ESSENTIAL_ANIMATION_DURATION: 5000,\n\n /**\n * Default duration for reduced motion (milliseconds)\n */\n REDUCED_MOTION_DURATION: 1,\n\n /**\n * Maximum flashes per second to avoid seizures (WCAG 2.3.1)\n */\n MAX_FLASH_RATE: 3,\n\n /**\n * Minimum time between auto-updating content (seconds)\n */\n MIN_AUTO_UPDATE_INTERVAL: 5,\n\n // Timing and session\n /**\n * Minimum warning time before timeout (seconds) - WCAG 2.2.1\n */\n MIN_TIMEOUT_WARNING: 20,\n\n /**\n * Default session timeout (minutes)\n */\n DEFAULT_SESSION_TIMEOUT: 20,\n\n /**\n * Extended session timeout for accessibility (minutes)\n */\n EXTENDED_SESSION_TIMEOUT: 120,\n\n // Audio and video\n /**\n * Maximum background audio level (dB) - WCAG 1.4.7\n */\n MAX_BACKGROUND_AUDIO_LEVEL: -20,\n\n /**\n * Default caption offset from bottom (pixels)\n */\n DEFAULT_CAPTION_OFFSET: 50,\n\n /**\n * Minimum caption font size (pixels)\n */\n MIN_CAPTION_FONT_SIZE: 16,\n\n /**\n * Default audio description delay (milliseconds)\n */\n AUDIO_DESCRIPTION_DELAY: 100,\n\n // Form validation\n /**\n * Delay before showing validation errors (milliseconds)\n */\n VALIDATION_DELAY: 1000,\n\n /**\n * Maximum error message length for screen readers\n */\n MAX_ERROR_MESSAGE_LENGTH: 150,\n\n /**\n * Minimum password length for accessibility\n */\n MIN_PASSWORD_LENGTH: 8,\n\n // Zoom and scaling\n /**\n * Maximum zoom level without horizontal scrolling (percentage)\n */\n MAX_ZOOM_WITHOUT_SCROLL: 200,\n\n /**\n * Minimum zoom level supported (percentage)\n */\n MIN_ZOOM_LEVEL: 50,\n\n /**\n * Maximum zoom level supported (percentage)\n */\n MAX_ZOOM_LEVEL: 500,\n\n // Reading and comprehension\n /**\n * Maximum line length for readability (characters)\n */\n MAX_LINE_LENGTH: 80,\n\n /**\n * Optimal line length for reading (characters)\n */\n OPTIMAL_LINE_LENGTH: 66,\n\n /**\n * Minimum line height for readability\n */\n MIN_LINE_HEIGHT: 1.5,\n\n /**\n * Maximum paragraph width for readability (pixels)\n */\n MAX_PARAGRAPH_WIDTH: 600,\n} as const;\n\n/**\n * ARIA roles for semantic HTML\n */\nexport const ARIA_ROLES = {\n // Landmark roles\n BANNER: 'banner',\n COMPLEMENTARY: 'complementary',\n CONTENTINFO: 'contentinfo',\n FORM: 'form',\n MAIN: 'main',\n NAVIGATION: 'navigation',\n REGION: 'region',\n SEARCH: 'search',\n\n // Structure roles\n APPLICATION: 'application',\n ARTICLE: 'article',\n CELL: 'cell',\n COLUMNHEADER: 'columnheader',\n DEFINITION: 'definition',\n DIRECTORY: 'directory',\n DOCUMENT: 'document',\n FEED: 'feed',\n FIGURE: 'figure',\n GROUP: 'group',\n HEADING: 'heading',\n IMG: 'img',\n LIST: 'list',\n LISTITEM: 'listitem',\n MATH: 'math',\n NOTE: 'note',\n PRESENTATION: 'presentation',\n ROW: 'row',\n ROWGROUP: 'rowgroup',\n ROWHEADER: 'rowheader',\n SEPARATOR: 'separator',\n TABLE: 'table',\n TERM: 'term',\n\n // Widget roles\n ALERT: 'alert',\n ALERTDIALOG: 'alertdialog',\n BUTTON: 'button',\n CHECKBOX: 'checkbox',\n COMBOBOX: 'combobox',\n DIALOG: 'dialog',\n GRIDCELL: 'gridcell',\n LINK: 'link',\n LISTBOX: 'listbox',\n LOG: 'log',\n MARQUEE: 'marquee',\n MENU: 'menu',\n MENUBAR: 'menubar',\n MENUITEM: 'menuitem',\n MENUITEMCHECKBOX: 'menuitemcheckbox',\n MENUITEMRADIO: 'menuitemradio',\n OPTION: 'option',\n PROGRESSBAR: 'progressbar',\n RADIO: 'radio',\n RADIOGROUP: 'radiogroup',\n SCROLLBAR: 'scrollbar',\n SEARCHBOX: 'searchbox',\n SLIDER: 'slider',\n SPINBUTTON: 'spinbutton',\n STATUS: 'status',\n SWITCH: 'switch',\n TAB: 'tab',\n TABLIST: 'tablist',\n TABPANEL: 'tabpanel',\n TEXTBOX: 'textbox',\n TIMER: 'timer',\n TOOLBAR: 'toolbar',\n TOOLTIP: 'tooltip',\n TREE: 'tree',\n TREEGRID: 'treegrid',\n TREEITEM: 'treeitem',\n\n // Abstract roles (should not be used directly)\n COMMAND: 'command',\n COMPOSITE: 'composite',\n INPUT: 'input',\n LANDMARK: 'landmark',\n RANGE: 'range',\n ROLETYPE: 'roletype',\n SECTION: 'section',\n SECTIONHEAD: 'sectionhead',\n SELECT: 'select',\n STRUCTURE: 'structure',\n WIDGET: 'widget',\n WINDOW: 'window',\n} as const;\n\n/**\n * Common ARIA attributes\n */\nexport const ARIA_ATTRIBUTES = {\n // Widget attributes\n ARIA_AUTOCOMPLETE: 'aria-autocomplete',\n ARIA_CHECKED: 'aria-checked',\n ARIA_DISABLED: 'aria-disabled',\n ARIA_ERRORMESSAGE: 'aria-errormessage',\n ARIA_EXPANDED: 'aria-expanded',\n ARIA_HASPOPUP: 'aria-haspopup',\n ARIA_HIDDEN: 'aria-hidden',\n ARIA_INVALID: 'aria-invalid',\n ARIA_LABEL: 'aria-label',\n ARIA_LEVEL: 'aria-level',\n ARIA_MODAL: 'aria-modal',\n ARIA_MULTILINE: 'aria-multiline',\n ARIA_MULTISELECTABLE: 'aria-multiselectable',\n ARIA_ORIENTATION: 'aria-orientation',\n ARIA_PLACEHOLDER: 'aria-placeholder',\n ARIA_PRESSED: 'aria-pressed',\n ARIA_READONLY: 'aria-readonly',\n ARIA_REQUIRED: 'aria-required',\n ARIA_SELECTED: 'aria-selected',\n ARIA_SORT: 'aria-sort',\n ARIA_VALUEMAX: 'aria-valuemax',\n ARIA_VALUEMIN: 'aria-valuemin',\n ARIA_VALUENOW: 'aria-valuenow',\n ARIA_VALUETEXT: 'aria-valuetext',\n\n // Live region attributes\n ARIA_LIVE: 'aria-live',\n ARIA_ATOMIC: 'aria-atomic',\n ARIA_RELEVANT: 'aria-relevant',\n ARIA_BUSY: 'aria-busy',\n\n // Drag and drop attributes\n ARIA_DROPEFFECT: 'aria-dropeffect',\n ARIA_GRABBED: 'aria-grabbed',\n\n // Relationship attributes\n ARIA_ACTIVEDESCENDANT: 'aria-activedescendant',\n ARIA_COLCOUNT: 'aria-colcount',\n ARIA_COLINDEX: 'aria-colindex',\n ARIA_COLSPAN: 'aria-colspan',\n ARIA_CONTROLS: 'aria-controls',\n ARIA_DESCRIBEDBY: 'aria-describedby',\n ARIA_DETAILS: 'aria-details',\n ARIA_FLOWTO: 'aria-flowto',\n ARIA_LABELLEDBY: 'aria-labelledby',\n ARIA_OWNS: 'aria-owns',\n ARIA_POSINSET: 'aria-posinset',\n ARIA_ROWCOUNT: 'aria-rowcount',\n ARIA_ROWINDEX: 'aria-rowindex',\n ARIA_ROWSPAN: 'aria-rowspan',\n ARIA_SETSIZE: 'aria-setsize',\n\n // Global attributes\n ARIA_CURRENT: 'aria-current',\n ARIA_DESCRIPTION: 'aria-description',\n ARIA_KEYSHORTCUTS: 'aria-keyshortcuts',\n ARIA_ROLEDESCRIPTION: 'aria-roledescription',\n} as const;\n\n/**\n * Keyboard navigation constants\n */\nexport const KEYBOARD_CODES = {\n // Navigation keys\n TAB: 'Tab',\n ENTER: 'Enter',\n SPACE: ' ',\n ESCAPE: 'Escape',\n ARROW_UP: 'ArrowUp',\n ARROW_DOWN: 'ArrowDown',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight',\n HOME: 'Home',\n END: 'End',\n PAGE_UP: 'PageUp',\n PAGE_DOWN: 'PageDown',\n\n // Legacy key codes (for compatibility)\n TAB_KEYCODE: 9,\n ENTER_KEYCODE: 13,\n ESCAPE_KEYCODE: 27,\n SPACE_KEYCODE: 32,\n ARROW_LEFT_KEYCODE: 37,\n ARROW_UP_KEYCODE: 38,\n ARROW_RIGHT_KEYCODE: 39,\n ARROW_DOWN_KEYCODE: 40,\n} as const;\n\n/**\n * Screen reader announcement priorities\n */\nexport const ANNOUNCEMENT_PRIORITY = {\n /**\n * Polite announcement - waits for current speech to finish\n */\n POLITE: 'polite',\n\n /**\n * Assertive announcement - interrupts current speech\n */\n ASSERTIVE: 'assertive',\n\n /**\n * Off - no announcement\n */\n OFF: 'off',\n} as const;\n\n/**\n * Focus trap configurations\n */\nexport const FOCUS_TRAP = {\n /**\n * Initial focus selector\n */\n INITIAL_FOCUS: '[data-focus-initial], [autofocus]',\n\n /**\n * Focusable elements selector\n */\n FOCUSABLE_ELEMENTS:\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n\n /**\n * Interactive elements selector\n */\n INTERACTIVE_ELEMENTS: 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n\n /**\n * Skip link selector\n */\n SKIP_LINK: '[data-skip-link], .skip-link',\n} as const;\n\n/**\n * Type exports\n */\nexport type A11yConstant = (typeof A11Y_CONSTANTS)[keyof typeof A11Y_CONSTANTS];\nexport type AriaRole = (typeof ARIA_ROLES)[keyof typeof ARIA_ROLES];\nexport type AriaAttribute = (typeof ARIA_ATTRIBUTES)[keyof typeof ARIA_ATTRIBUTES];\nexport type KeyboardCode = (typeof KEYBOARD_CODES)[keyof typeof KEYBOARD_CODES];\nexport type AnnouncementPriority =\n (typeof ANNOUNCEMENT_PRIORITY)[keyof typeof ANNOUNCEMENT_PRIORITY];\n"]}
package/dist/index.d.ts CHANGED
@@ -15,3 +15,4 @@ export * from './performance';
15
15
  export * from './network';
16
16
  export * from './display';
17
17
  export * from './social';
18
+ export * from './a11y';
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  import {sepolia,mainnet}from'viem/chains';// @plyaz package - Built with tsup
2
- var T=typeof window>"u",t=globalThis.process.env.NODE_ENV==="development",r=globalThis.process.env.NODE_ENV==="production",_=globalThis.process.env.NODE_ENV==="test";var A={apiKey:globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY,rpcUrls:{ethereum:`https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,polygon:`https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,arbitrum:`https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,optimism:`https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,base:`https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,solana:`https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`}};var a={google:{clientId:globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,clientSecret:globalThis.process.env.GOOGLE_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,scopes:["openid","profile","email"]},discord:{clientId:globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,clientSecret:globalThis.process.env.DISCORD_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,scopes:["identify","email"]},facebook:{clientId:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,clientSecret:globalThis.process.env.FACEBOOK_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,scopes:["public_profile","email"]}};var R={nftManager:{read:{arbitrum:""},write:{arbitrum:""}},tokenManager:{read:{arbitrum:""},write:{arbitrum:""}}};var I={ethereum:mainnet},l={ethereum:mainnet,sepolia:sepolia},i={sepolia:sepolia};var P={AUTH_GOOGLE:true,AUTH_DISCORD:t,AUTH_FACEBOOK:false,AUTH_GITHUB:true},y={provider:"database",isCacheEnabled:true,cacheTtl:300,refreshInterval:60,shouldFallbackToDefaults:true,isLoggingEnabled:globalThis.process.env.NODE_ENV==="development"},M={provider:"memory",isCacheEnabled:true,cacheTtl:300,refreshInterval:0,shouldFallbackToDefaults:true,isLoggingEnabled:false},h=100,F=300,H=6e4,g=1e3,d=.1,b={MEMORY:"memory",FILE:"file",REDIS:"redis",API:"api",DATABASE:"database"},B={JSON:"json",YAML:"yaml"},u={DEFAULT:"src/config/feature-provider.json",JSON_EXAMPLE:"src/config/feature-provider.json.example",YAML_EXAMPLE:"src/config/feature-provider.yaml.example"},v={DEFAULT:"default",OVERRIDE:"override",RULE_MATCH:"rule_match",FLAG_DISABLED:"flag_disabled",ERROR:"error"};var G={app:"https://plyaz.co.uk",api:globalThis.process.env.NEXT_PUBLIC_API_URL};var o="en",e=["en","es","pt"],X="Europe/London";var z={NAME:"Plyaz",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:e},W={NAME:"Plyaz The App",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:e};var w={BLOCKED_REGIONS:["KP","SY","IR","CU","SD","SO","UA-CR","UA-DP","UA-LU"]};var j={},J={ttl:{short:300,medium:1800,long:3600,extended:86400},keys:{user:"user:",nft:"nft:",blockchain:"blockchain:",auth:"auth:"},redis:{url:globalThis.process.env.REDIS_URL,keyPrefix:"plyaz:",maxRetriesPerRequest:3,lazyConnect:true}},Q={};var oo={RANDOM_STRING_START:2,RANDOM_STRING_LENGTH:9,UUID_RANDOM_MULTIPLIER:16,UUID_HEX_MASK:3,UUID_HEX_OR_VALUE:8};var so={ARRAY_SPLIT_CENTER:.5,DEFAULT_PAGE_SIZE:10,DEFAULT_MAX_RETRIES:3,THREE_ITEMS:3};var ao={OK:200,CREATED:201,FOUND:302,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,FORBIDDEN:403,NOT_FOUND:404,INTERNAL_SERVER_ERROR:500};var So={MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,DEFAULT_TIMEOUT:5e3,DEFAULT_RETRY_DELAY:100,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_DEBOUNCE_DELAY:50,DEFAULT_ANIMATION_FRAME:16.67,DEFAULT_CACHE_TTL:300,DEFAULT_PORT:3e3,WEBSOCKET_CLOSE_ABNORMAL:1006,WEBSOCKET_RETRY_DELAY:500};var Io={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,HEX_BASE:16,BASE36:36},lo={HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2};var mo={MEMORY_LEAK_THRESHOLD:.1,DEFAULT_BENCHMARK_RUNS:100,DEFAULT_WARMUP_RUNS:10};var fo={IPV4_OCTET_MIN:1,IPV4_OCTET_MAX:255,IPV4_OCTET_COUNT:4,RANDOM_BYTE_MAX:256,DEFAULT_PROCESS_ID_MAX:1e4};var ho={CHART_BAR_MAX_LENGTH:40,CHART_SEPARATOR_LENGTH:60,DECIMAL_PRECISION:3},Fo={LOWERCASE_A:97,ALPHABET_SIZE:26,SPACE:32};var Bo={x:"https://x.com/Plyaz_",instagram:"https://instagram.com/plyaz_",linkedin:"https://linkedin.com/company/plyaz"},uo={docs:"https://plyaz.gitbook.io/plyaz",community:"https://community.plyaz.co.uk",support:"mailto:help@plyaz.co.uk"};
3
- export{A as ALCHEMY_CONFIG,j as API_CONFIG,H as CACHE_CLEANUP_INTERVAL_DEFAULT,J as CACHE_CONFIG,d as CACHE_EVICTION_PERCENTAGE,g as CACHE_MAX_SIZE_DEFAULT,Fo as CHAR_CODES,so as COLLECTION_CONSTANTS,R as CONTRACTS,y as DEFAULT_BACKEND_CONFIG,M as DEFAULT_FRONTEND_CONFIG,o as DEFAULT_LOCALE,i as DEV_SUPPORTED_CHAINS,ho as DISPLAY_CONSTANTS,G as DOMAINS,P as FEATURES,F as FEATURE_FLAG_CACHE_TTL_DEFAULT,v as FEATURE_FLAG_EVALUATION_REASONS,B as FEATURE_FLAG_FILE_FORMATS,u as FEATURE_FLAG_FILE_PATHS,b as FEATURE_FLAG_PROVIDERS,h as FILE_CHECK_INTERVAL_DEFAULT,ao as HTTP_STATUS,z as LANDING_PAGE_APP,lo as MATH_CONSTANTS,fo as NETWORK_CONSTANTS,Io as NUMBER_SYSTEM,a as OAUTH_PROVIDERS,mo as PERFORMANCE_CONSTANTS,uo as PRODUCT_LINKS,I as PROD_SUPPORTED_CHAINS,w as SECURITY,Bo as SOCIAL_LINKS,l as STAGING_SUPPORTED_CHAINS,oo as STRING_CONSTANTS,e as SUPPORTED_LOCALES,X as TIMEZONE,So as TIME_CONSTANTS,Q as WEBHOOK_CONFIG,W as WEB_APP,t as isDev,r as isProd,T as isServer,_ as isTest};//# sourceMappingURL=index.mjs.map
2
+ var o=typeof window>"u",T=globalThis.process.env.NODE_ENV==="development",t=globalThis.process.env.NODE_ENV==="production",R=globalThis.process.env.NODE_ENV==="test";var I={apiKey:globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY,rpcUrls:{ethereum:`https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,polygon:`https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,arbitrum:`https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,optimism:`https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,base:`https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,solana:`https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`}};var r={google:{clientId:globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID,clientSecret:globalThis.process.env.GOOGLE_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI,scopes:["openid","profile","email"]},discord:{clientId:globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID,clientSecret:globalThis.process.env.DISCORD_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI,scopes:["identify","email"]},facebook:{clientId:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID,clientSecret:globalThis.process.env.FACEBOOK_CLIENT_SECRET,redirectUri:globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI,scopes:["public_profile","email"]}};var s={nftManager:{read:{arbitrum:""},write:{arbitrum:""}},tokenManager:{read:{arbitrum:""},write:{arbitrum:""}}};var p={ethereum:mainnet},i={ethereum:mainnet,sepolia:sepolia},U={sepolia:sepolia};var m={AUTH_GOOGLE:true,AUTH_DISCORD:T,AUTH_FACEBOOK:false,AUTH_GITHUB:true},B={provider:"database",isCacheEnabled:true,cacheTtl:300,refreshInterval:60,shouldFallbackToDefaults:true,isLoggingEnabled:globalThis.process.env.NODE_ENV==="development"},F={provider:"memory",isCacheEnabled:true,cacheTtl:300,refreshInterval:0,shouldFallbackToDefaults:true,isLoggingEnabled:false},x=100,f=300,G=6e4,d=1e3,y=.1,Y={MEMORY:"memory",FILE:"file",REDIS:"redis",API:"api",DATABASE:"database"},b={JSON:"json",YAML:"yaml"},u={DEFAULT:"src/config/feature-provider.json",JSON_EXAMPLE:"src/config/feature-provider.json.example",YAML_EXAMPLE:"src/config/feature-provider.yaml.example"},h={DEFAULT:"default",OVERRIDE:"override",RULE_MATCH:"rule_match",FLAG_DISABLED:"flag_disabled",ERROR:"error"};var X={app:"https://plyaz.co.uk",api:globalThis.process.env.NEXT_PUBLIC_API_URL};var E="en",A=["en","es","pt"],W="Europe/London";var k={NAME:"Plyaz",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:A},w={NAME:"Plyaz The App",VERSION:"1.0.0",DEFAULT_LOCALE:"en",SUPPORTED_LOCALES:A};var Z={BLOCKED_REGIONS:["KP","SY","IR","CU","SD","SO","UA-CR","UA-DP","UA-LU"]};var $={},j={ttl:{short:300,medium:1800,long:3600,extended:86400},keys:{user:"user:",nft:"nft:",blockchain:"blockchain:",auth:"auth:"},redis:{url:globalThis.process.env.REDIS_URL,keyPrefix:"plyaz:",maxRetriesPerRequest:3,lazyConnect:true}},q={};var EE={RANDOM_STRING_START:2,RANDOM_STRING_LENGTH:9,UUID_RANDOM_MULTIPLIER:16,UUID_HEX_MASK:3,UUID_HEX_OR_VALUE:8};var eE={ARRAY_SPLIT_CENTER:.5,DEFAULT_PAGE_SIZE:10,DEFAULT_MAX_RETRIES:3,THREE_ITEMS:3};var rE={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,IM_USED:226,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};var CE={MILLISECOND:1,SECOND:1e3,MINUTE:6e4,HOUR:36e5,DAY:864e5,WEEK:6048e5,MONTH:2592e6,YEAR:31536e6,MILLISECONDS_PER_SECOND:1e3,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,DAYS_PER_WEEK:7,DAYS_PER_MONTH:30,DAYS_PER_YEAR:365,WEEKS_PER_YEAR:52,MONTHS_PER_YEAR:12,HUNDRED_MS:100,QUARTER_SECOND:250,HALF_SECOND:500,TWO_SECONDS:2e3,THREE_SECONDS:3e3,FIVE_SECONDS:5e3,TEN_SECONDS:1e4,THIRTY_SECONDS:3e4,TWO_MINUTES:12e4,FIVE_MINUTES:3e5,TEN_MINUTES:6e5,FIFTEEN_MINUTES:9e5,THIRTY_MINUTES:18e5,ONE_HOUR:36e5,TWO_HOURS:72e5,SIX_HOURS:216e5,TWELVE_HOURS:432e5,DEFAULT_TIMEOUT:5e3,DEFAULT_SHORT_TIMEOUT:1e3,DEFAULT_LONG_TIMEOUT:3e4,DEFAULT_RETRY_DELAY:100,DEFAULT_BACKOFF_BASE:1e3,DEFAULT_MAX_BACKOFF:3e4,DEFAULT_RETRY_ATTEMPTS:3,DEFAULT_DEBOUNCE_DELAY:50,DEFAULT_THROTTLE_DELAY:100,DEFAULT_ANIMATION_FRAME:16.67,DEFAULT_TRANSITION_DURATION:300,DEFAULT_CACHE_TTL:300,DEFAULT_SHORT_CACHE_TTL:60,DEFAULT_LONG_CACHE_TTL:3600,DEFAULT_SESSION_TIMEOUT:18e5,DEFAULT_IDLE_TIMEOUT:9e5,DEFAULT_POLL_INTERVAL:5e3,DEFAULT_HEARTBEAT_INTERVAL:3e4,DEFAULT_PORT:3e3,HTTP_PORT:80,HTTPS_PORT:443,WEBSOCKET_PORT:8080,DATABASE_PORT:5432,REDIS_PORT:6379,WEBSOCKET_CLOSE_NORMAL:1e3,WEBSOCKET_CLOSE_GOING_AWAY:1001,WEBSOCKET_CLOSE_PROTOCOL_ERROR:1002,WEBSOCKET_CLOSE_UNSUPPORTED:1003,WEBSOCKET_CLOSE_ABNORMAL:1006,WEBSOCKET_RETRY_DELAY:500,WEBSOCKET_PING_INTERVAL:3e4,WEBSOCKET_RECONNECT_DELAY:1e3,WEBSOCKET_MAX_RECONNECT_DELAY:3e4};var pE={BINARY_BASE:2,OCTAL_BASE:8,DECIMAL_BASE:10,DUODECIMAL_BASE:12,HEX_BASE:16,BASE32:32,BASE36:36,BASE58:58,BASE62:62,BASE64:64,HEX_PAD_LENGTH:2,HEX_COLOR_LENGTH:6,HEX_COLOR_ALPHA_LENGTH:8,BITS_PER_BYTE:8,BITS_PER_NIBBLE:4,BYTES_PER_KB:1024,BYTES_PER_MB:1048576,BYTES_PER_GB:1073741824,CURRENCY_DECIMAL_PLACES:2,PERCENTAGE_DECIMAL_PLACES:2,COORDINATE_DECIMAL_PLACES:6,MAX_SAFE_INTEGER:9007199254740991,MIN_SAFE_INTEGER:-9007199254740991,MAX_INT32:2147483647,MIN_INT32:-2147483648,MAX_UINT16:65535,MAX_UINT8:255,DEGREES_FULL_CIRCLE:360,DEGREES_HALF_CIRCLE:180,DEGREES_RIGHT_ANGLE:90,DEGREES_PER_RADIAN:57.29577951308232,RADIANS_PER_DEGREE:.017453292519943295,PI:3.141592653589793,TWO_PI:6.283185307179586,HALF_PI:1.5707963267948966,E:2.718281828459045,GOLDEN_RATIO:1.618033988749895,SQRT2:1.4142135623730951,SQRT3:1.7320508075688772,LN2:.6931471805599453,LN10:2.302585092994046,LOG2E:1.4426950408889634,LOG10E:.4342944819032518},iE={HALF:.5,TENTH:.1,TWENTIETH:.05,PERCENT_95:.95,PERCENT_99:.99,QUADRATIC_THRESHOLD:1.5,EXPONENTIAL_THRESHOLD:3,VARIANCE_MULTIPLIER:4,VARIANCE_OFFSET:2};var ME={MEMORY_LEAK_THRESHOLD:.1,DEFAULT_BENCHMARK_RUNS:100,DEFAULT_WARMUP_RUNS:10};var HE={IPV4_OCTET_MIN:1,IPV4_OCTET_MAX:255,IPV4_OCTET_COUNT:4,RANDOM_BYTE_MAX:256,DEFAULT_PROCESS_ID_MAX:1e4};var xE={CHART_BAR_MAX_LENGTH:40,CHART_SEPARATOR_LENGTH:60,DECIMAL_PRECISION:3},fE={LOWERCASE_A:97,ALPHABET_SIZE:26,SPACE:32};var YE={x:"https://x.com/Plyaz_",instagram:"https://instagram.com/plyaz_",linkedin:"https://linkedin.com/company/plyaz"},bE={docs:"https://plyaz.gitbook.io/plyaz",community:"https://community.plyaz.co.uk",support:"mailto:help@plyaz.co.uk"},uE={INITIAL_POSTS_TO_SHOW:3,POSTS_INCREMENT:3,ANIMATION_DELAY:100};var gE={FOCUS_CHECK_DELAY:100,FOCUS_TAB_COUNT:10,MIN_FOCUS_VISIBLE_TIME:200,MAX_FOCUS_WAIT_TIME:3e3,SCREEN_READER_DEBOUNCE:150,MIN_LARGE_TEXT_SIZE:18,MIN_LARGE_TEXT_BOLD_SIZE:14,MIN_NORMAL_TEXT_SIZE:14,MIN_TOUCH_TARGET_SIZE:44,MIN_INLINE_TARGET_SIZE:24,COLOR_CHANNEL_MAX:255,SRGB_THRESHOLD:.03928,SRGB_DIVISOR:12.92,SRGB_OFFSET:.055,SRGB_SCALE:1.055,SRGB_EXPONENT:2.4,LUMINANCE_RED:.2126,LUMINANCE_GREEN:.7152,LUMINANCE_BLUE:.0722,LUMINANCE_OFFSET:.05,CONTRAST_RATIO_AA:4.5,CONTRAST_RATIO_AA_LARGE:3,CONTRAST_RATIO_AAA:7,CONTRAST_RATIO_AAA_LARGE:4.5,CONTRAST_RATIO_GRAPHICS:3,PERCENTAGE_MAX:100,MAX_ESSENTIAL_ANIMATION_DURATION:5e3,REDUCED_MOTION_DURATION:1,MAX_FLASH_RATE:3,MIN_AUTO_UPDATE_INTERVAL:5,MIN_TIMEOUT_WARNING:20,DEFAULT_SESSION_TIMEOUT:20,EXTENDED_SESSION_TIMEOUT:120,MAX_BACKGROUND_AUDIO_LEVEL:-20,DEFAULT_CAPTION_OFFSET:50,MIN_CAPTION_FONT_SIZE:16,AUDIO_DESCRIPTION_DELAY:100,VALIDATION_DELAY:1e3,MAX_ERROR_MESSAGE_LENGTH:150,MIN_PASSWORD_LENGTH:8,MAX_ZOOM_WITHOUT_SCROLL:200,MIN_ZOOM_LEVEL:50,MAX_ZOOM_LEVEL:500,MAX_LINE_LENGTH:80,OPTIMAL_LINE_LENGTH:66,MIN_LINE_HEIGHT:1.5,MAX_PARAGRAPH_WIDTH:600},XE={BANNER:"banner",COMPLEMENTARY:"complementary",CONTENTINFO:"contentinfo",FORM:"form",MAIN:"main",NAVIGATION:"navigation",REGION:"region",SEARCH:"search",APPLICATION:"application",ARTICLE:"article",CELL:"cell",COLUMNHEADER:"columnheader",DEFINITION:"definition",DIRECTORY:"directory",DOCUMENT:"document",FEED:"feed",FIGURE:"figure",GROUP:"group",HEADING:"heading",IMG:"img",LIST:"list",LISTITEM:"listitem",MATH:"math",NOTE:"note",PRESENTATION:"presentation",ROW:"row",ROWGROUP:"rowgroup",ROWHEADER:"rowheader",SEPARATOR:"separator",TABLE:"table",TERM:"term",ALERT:"alert",ALERTDIALOG:"alertdialog",BUTTON:"button",CHECKBOX:"checkbox",COMBOBOX:"combobox",DIALOG:"dialog",GRIDCELL:"gridcell",LINK:"link",LISTBOX:"listbox",LOG:"log",MARQUEE:"marquee",MENU:"menu",MENUBAR:"menubar",MENUITEM:"menuitem",MENUITEMCHECKBOX:"menuitemcheckbox",MENUITEMRADIO:"menuitemradio",OPTION:"option",PROGRESSBAR:"progressbar",RADIO:"radio",RADIOGROUP:"radiogroup",SCROLLBAR:"scrollbar",SEARCHBOX:"searchbox",SLIDER:"slider",SPINBUTTON:"spinbutton",STATUS:"status",SWITCH:"switch",TAB:"tab",TABLIST:"tablist",TABPANEL:"tabpanel",TEXTBOX:"textbox",TIMER:"timer",TOOLBAR:"toolbar",TOOLTIP:"tooltip",TREE:"tree",TREEGRID:"treegrid",TREEITEM:"treeitem",COMMAND:"command",COMPOSITE:"composite",INPUT:"input",LANDMARK:"landmark",RANGE:"range",ROLETYPE:"roletype",SECTION:"section",SECTIONHEAD:"sectionhead",SELECT:"select",STRUCTURE:"structure",WIDGET:"widget",WINDOW:"window"},KE={ARIA_AUTOCOMPLETE:"aria-autocomplete",ARIA_CHECKED:"aria-checked",ARIA_DISABLED:"aria-disabled",ARIA_ERRORMESSAGE:"aria-errormessage",ARIA_EXPANDED:"aria-expanded",ARIA_HASPOPUP:"aria-haspopup",ARIA_HIDDEN:"aria-hidden",ARIA_INVALID:"aria-invalid",ARIA_LABEL:"aria-label",ARIA_LEVEL:"aria-level",ARIA_MODAL:"aria-modal",ARIA_MULTILINE:"aria-multiline",ARIA_MULTISELECTABLE:"aria-multiselectable",ARIA_ORIENTATION:"aria-orientation",ARIA_PLACEHOLDER:"aria-placeholder",ARIA_PRESSED:"aria-pressed",ARIA_READONLY:"aria-readonly",ARIA_REQUIRED:"aria-required",ARIA_SELECTED:"aria-selected",ARIA_SORT:"aria-sort",ARIA_VALUEMAX:"aria-valuemax",ARIA_VALUEMIN:"aria-valuemin",ARIA_VALUENOW:"aria-valuenow",ARIA_VALUETEXT:"aria-valuetext",ARIA_LIVE:"aria-live",ARIA_ATOMIC:"aria-atomic",ARIA_RELEVANT:"aria-relevant",ARIA_BUSY:"aria-busy",ARIA_DROPEFFECT:"aria-dropeffect",ARIA_GRABBED:"aria-grabbed",ARIA_ACTIVEDESCENDANT:"aria-activedescendant",ARIA_COLCOUNT:"aria-colcount",ARIA_COLINDEX:"aria-colindex",ARIA_COLSPAN:"aria-colspan",ARIA_CONTROLS:"aria-controls",ARIA_DESCRIBEDBY:"aria-describedby",ARIA_DETAILS:"aria-details",ARIA_FLOWTO:"aria-flowto",ARIA_LABELLEDBY:"aria-labelledby",ARIA_OWNS:"aria-owns",ARIA_POSINSET:"aria-posinset",ARIA_ROWCOUNT:"aria-rowcount",ARIA_ROWINDEX:"aria-rowindex",ARIA_ROWSPAN:"aria-rowspan",ARIA_SETSIZE:"aria-setsize",ARIA_CURRENT:"aria-current",ARIA_DESCRIPTION:"aria-description",ARIA_KEYSHORTCUTS:"aria-keyshortcuts",ARIA_ROLEDESCRIPTION:"aria-roledescription"},WE={TAB:"Tab",ENTER:"Enter",SPACE:" ",ESCAPE:"Escape",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",HOME:"Home",END:"End",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",TAB_KEYCODE:9,ENTER_KEYCODE:13,ESCAPE_KEYCODE:27,SPACE_KEYCODE:32,ARROW_LEFT_KEYCODE:37,ARROW_UP_KEYCODE:38,ARROW_RIGHT_KEYCODE:39,ARROW_DOWN_KEYCODE:40},VE={POLITE:"polite",ASSERTIVE:"assertive",OFF:"off"},vE={INITIAL_FOCUS:"[data-focus-initial], [autofocus]",FOCUSABLE_ELEMENTS:'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])',INTERACTIVE_ELEMENTS:'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',SKIP_LINK:"[data-skip-link], .skip-link"};
3
+ export{gE as A11Y_CONSTANTS,I as ALCHEMY_CONFIG,VE as ANNOUNCEMENT_PRIORITY,$ as API_CONFIG,KE as ARIA_ATTRIBUTES,XE as ARIA_ROLES,uE as BLOG,G as CACHE_CLEANUP_INTERVAL_DEFAULT,j as CACHE_CONFIG,y as CACHE_EVICTION_PERCENTAGE,d as CACHE_MAX_SIZE_DEFAULT,fE as CHAR_CODES,eE as COLLECTION_CONSTANTS,s as CONTRACTS,B as DEFAULT_BACKEND_CONFIG,F as DEFAULT_FRONTEND_CONFIG,E as DEFAULT_LOCALE,U as DEV_SUPPORTED_CHAINS,xE as DISPLAY_CONSTANTS,X as DOMAINS,m as FEATURES,f as FEATURE_FLAG_CACHE_TTL_DEFAULT,h as FEATURE_FLAG_EVALUATION_REASONS,b as FEATURE_FLAG_FILE_FORMATS,u as FEATURE_FLAG_FILE_PATHS,Y as FEATURE_FLAG_PROVIDERS,x as FILE_CHECK_INTERVAL_DEFAULT,vE as FOCUS_TRAP,rE as HTTP_STATUS,WE as KEYBOARD_CODES,k as LANDING_PAGE_APP,iE as MATH_CONSTANTS,HE as NETWORK_CONSTANTS,pE as NUMBER_SYSTEM,r as OAUTH_PROVIDERS,ME as PERFORMANCE_CONSTANTS,bE as PRODUCT_LINKS,p as PROD_SUPPORTED_CHAINS,Z as SECURITY,YE as SOCIAL_LINKS,i as STAGING_SUPPORTED_CHAINS,EE as STRING_CONSTANTS,A as SUPPORTED_LOCALES,W as TIMEZONE,CE as TIME_CONSTANTS,q as WEBHOOK_CONFIG,w as WEB_APP,T as isDev,t as isProd,o as isServer,R as isTest};//# sourceMappingURL=index.mjs.map
4
4
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/contracts.ts","../src/chains/supportedChains.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts","../src/utils/string/constants.ts","../src/utils/collection/constants.ts","../src/http/constants.ts","../src/time/constants.ts","../src/math/constants.ts","../src/performance/index.ts","../src/network/constants.ts","../src/display/constants.ts","../src/social.ts"],"names":["isServer","isDev","isProd","isTest","ALCHEMY_CONFIG","OAUTH_PROVIDERS","CONTRACTS","PROD_SUPPORTED_CHAINS","mainnet","STAGING_SUPPORTED_CHAINS","sepolia","DEV_SUPPORTED_CHAINS","FEATURES","DEFAULT_BACKEND_CONFIG","DEFAULT_FRONTEND_CONFIG","FILE_CHECK_INTERVAL_DEFAULT","FEATURE_FLAG_CACHE_TTL_DEFAULT","CACHE_CLEANUP_INTERVAL_DEFAULT","CACHE_MAX_SIZE_DEFAULT","CACHE_EVICTION_PERCENTAGE","FEATURE_FLAG_PROVIDERS","FEATURE_FLAG_FILE_FORMATS","FEATURE_FLAG_FILE_PATHS","FEATURE_FLAG_EVALUATION_REASONS","DOMAINS","DEFAULT_LOCALE","SUPPORTED_LOCALES","TIMEZONE","LANDING_PAGE_APP","WEB_APP","SECURITY","API_CONFIG","CACHE_CONFIG","WEBHOOK_CONFIG","STRING_CONSTANTS","COLLECTION_CONSTANTS","HTTP_STATUS","TIME_CONSTANTS","NUMBER_SYSTEM","MATH_CONSTANTS","PERFORMANCE_CONSTANTS","NETWORK_CONSTANTS","DISPLAY_CONSTANTS","CHAR_CODES","SOCIAL_LINKS","PRODUCT_LINKS"],"mappings":"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","file":"index.mjs","sourcesContent":["export const isServer = typeof window === 'undefined';\nexport const isDev = globalThis.process.env.NODE_ENV === 'development';\nexport const isProd = globalThis.process.env.NODE_ENV === 'production';\nexport const isTest = globalThis.process.env.NODE_ENV === 'test';\n","export const ALCHEMY_CONFIG = {\n apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","export const OAUTH_PROVIDERS = {\n google: {\n clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","/**\n * Feature Flag Constants\n *\n */\n\nimport { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n AUTH_GOOGLE: true,\n AUTH_DISCORD: isDev,\n AUTH_FACEBOOK: false,\n AUTH_GITHUB: true,\n} as const satisfies Record<string, boolean>;\n\n/**\n * Default backend configuration for feature flags.\n * Optimized for server-side usage with reasonable defaults.\n */\nexport const DEFAULT_BACKEND_CONFIG = {\n provider: 'database',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 60, // 1 minute auto-refresh\n shouldFallbackToDefaults: true,\n isLoggingEnabled: globalThis.process.env.NODE_ENV === 'development',\n} as const;\n\n/**\n * Default frontend configuration for feature flags.\n * Optimized for client-side usage with reasonable defaults.\n */\nexport const DEFAULT_FRONTEND_CONFIG = {\n provider: 'memory',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 0, // No auto-refresh for frontend\n shouldFallbackToDefaults: true,\n isLoggingEnabled: false, // Disabled in production\n} as const;\n\n/**\n * Default file check interval for file watcher debouncing (in milliseconds)\n * Prevents rapid reloads when files are saved multiple times quickly\n * @default 100\n */\nexport const FILE_CHECK_INTERVAL_DEFAULT = 100;\n\n/**\n * Default cache TTL for feature flags (in seconds)\n * @default 300 (5 minutes)\n */\nexport const FEATURE_FLAG_CACHE_TTL_DEFAULT = 300;\n\n/**\n * Default cleanup interval for memory cache (in milliseconds)\n * @default 60000 (1 minute)\n */\nexport const CACHE_CLEANUP_INTERVAL_DEFAULT = 60000;\n\n/**\n * Default maximum cache size for memory strategy\n * @default 1000\n */\nexport const CACHE_MAX_SIZE_DEFAULT = 1000;\n\n/**\n * Percentage of cache entries to evict when cache is full\n * @default 0.1 (10%)\n */\nexport const CACHE_EVICTION_PERCENTAGE = 0.1;\n\n/**\n * Feature flag provider types\n */\nexport const FEATURE_FLAG_PROVIDERS = {\n MEMORY: 'memory',\n FILE: 'file',\n REDIS: 'redis',\n API: 'api',\n DATABASE: 'database',\n} as const;\n\n/**\n * Feature flag file formats\n */\nexport const FEATURE_FLAG_FILE_FORMATS = {\n JSON: 'json',\n YAML: 'yaml',\n} as const;\n\n/**\n * Default file paths for feature flag configuration\n */\nexport const FEATURE_FLAG_FILE_PATHS = {\n DEFAULT: 'src/config/feature-provider.json',\n JSON_EXAMPLE: 'src/config/feature-provider.json.example',\n YAML_EXAMPLE: 'src/config/feature-provider.yaml.example',\n} as const;\n\n/**\n * Feature flag evaluation reasons\n */\nexport const FEATURE_FLAG_EVALUATION_REASONS = {\n DEFAULT: 'default',\n OVERRIDE: 'override',\n RULE_MATCH: 'rule_match',\n FLAG_DISABLED: 'flag_disabled',\n ERROR: 'error',\n} as const;\n","export const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: globalThis.process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\nexport const TIMEZONE = 'Europe/London';\n","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","export const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: globalThis.process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n","/**\n * String Manipulation Constants\n *\n * Constants used for string generation, manipulation,\n * and UUID-related operations.\n *\n * @module utils/string/constants\n */\n\n/**\n * String generation and manipulation constants\n */\nexport const STRING_CONSTANTS = {\n /**\n * Starting position for random string extraction\n */\n RANDOM_STRING_START: 2,\n\n /**\n * Length of random string segment\n */\n RANDOM_STRING_LENGTH: 9,\n\n /**\n * Multiplier for UUID random value generation\n */\n UUID_RANDOM_MULTIPLIER: 16,\n\n /**\n * Hexadecimal mask for UUID generation\n */\n UUID_HEX_MASK: 0x3,\n\n /**\n * OR value for UUID hexadecimal operations\n */\n UUID_HEX_OR_VALUE: 0x8,\n} as const;\n\n/**\n * Type for string constant values\n */\nexport type StringConstant = (typeof STRING_CONSTANTS)[keyof typeof STRING_CONSTANTS];\n","/**\n * Collection and Array Constants\n *\n * Constants for array operations, pagination,\n * and collection manipulation.\n *\n * @module utils/collection/constants\n */\n\n/**\n * Array and collection operation constants\n */\nexport const COLLECTION_CONSTANTS = {\n /**\n * Center point for array splitting (50%)\n */\n ARRAY_SPLIT_CENTER: 0.5,\n\n /**\n * Default page size for pagination\n */\n DEFAULT_PAGE_SIZE: 10,\n\n /**\n * Default maximum number of retries for operations\n */\n DEFAULT_MAX_RETRIES: 3,\n\n /**\n * Constant for three items (used in various contexts)\n */\n THREE_ITEMS: 3,\n} as const;\n\n/**\n * Type for collection constant values\n */\nexport type CollectionConstant = (typeof COLLECTION_CONSTANTS)[keyof typeof COLLECTION_CONSTANTS];\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Time-related Constants\n *\n * Common time values and durations used throughout the application\n * for timeouts, delays, caching, and other time-based operations.\n *\n * @module time/constants\n */\n\n/**\n * Time conversion and duration constants\n */\nexport const TIME_CONSTANTS = {\n /**\n * Number of milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Number of seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Number of minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Number of hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Default timeout duration in milliseconds (5 seconds)\n */\n DEFAULT_TIMEOUT: 5000,\n\n /**\n * Default retry delay in milliseconds (100ms)\n */\n DEFAULT_RETRY_DELAY: 100,\n\n /**\n * Default number of retry attempts\n */\n DEFAULT_RETRY_ATTEMPTS: 3,\n\n /**\n * Default debounce delay in milliseconds (50ms)\n */\n DEFAULT_DEBOUNCE_DELAY: 50,\n\n /**\n * Default animation frame duration in milliseconds (~60fps)\n */\n DEFAULT_ANIMATION_FRAME: 16.67,\n\n /**\n * Default cache time-to-live in seconds (5 minutes)\n */\n DEFAULT_CACHE_TTL: 300,\n\n /**\n * Default port number for servers\n */\n DEFAULT_PORT: 3000,\n\n /**\n * WebSocket abnormal closure code\n */\n WEBSOCKET_CLOSE_ABNORMAL: 1006,\n\n /**\n * WebSocket retry delay in milliseconds (500ms)\n */\n WEBSOCKET_RETRY_DELAY: 500,\n} as const;\n\n/**\n * Type for time constant values\n */\nexport type TimeConstant = (typeof TIME_CONSTANTS)[keyof typeof TIME_CONSTANTS];\n","/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n","/**\n * Performance Module\n *\n * Performance monitoring and benchmarking constants used for\n * measuring application performance, detecting memory leaks,\n * and configuring performance tests.\n *\n * @module performance\n */\n\n/**\n * Performance measurement constants\n */\nexport const PERFORMANCE_CONSTANTS = {\n /**\n * Threshold for detecting memory leaks (10% growth)\n */\n MEMORY_LEAK_THRESHOLD: 0.1,\n\n /**\n * Default number of benchmark runs for performance testing\n */\n DEFAULT_BENCHMARK_RUNS: 100,\n\n /**\n * Default number of warmup runs before benchmarking\n */\n DEFAULT_WARMUP_RUNS: 10,\n} as const;\n\n/**\n * Type for performance constant values\n */\nexport type PerformanceConstant =\n (typeof PERFORMANCE_CONSTANTS)[keyof typeof PERFORMANCE_CONSTANTS];\n","/**\n * Network-related Constants\n *\n * Constants for network operations including IP addresses,\n * byte ranges, and process identifiers.\n *\n * @module network/constants\n */\n\n/**\n * Network and connection constants\n */\nexport const NETWORK_CONSTANTS = {\n /**\n * Minimum value for an IPv4 octet (excluding 0 for first octet)\n */\n IPV4_OCTET_MIN: 1,\n\n /**\n * Maximum value for an IPv4 octet\n */\n IPV4_OCTET_MAX: 255,\n\n /**\n * Number of octets in an IPv4 address\n */\n IPV4_OCTET_COUNT: 4,\n\n /**\n * Maximum value for a random byte (256 exclusive)\n */\n RANDOM_BYTE_MAX: 256,\n\n /**\n * Default maximum process ID for testing\n */\n DEFAULT_PROCESS_ID_MAX: 10000,\n} as const;\n\n/**\n * Type for network constant values\n */\nexport type NetworkConstant = (typeof NETWORK_CONSTANTS)[keyof typeof NETWORK_CONSTANTS];\n","/**\n * Display and Character Constants\n *\n * Constants for display formatting, charting,\n * and character code operations.\n *\n * @module display/constants\n */\n\n/**\n * Display and chart formatting constants\n */\nexport const DISPLAY_CONSTANTS = {\n /**\n * Maximum length for chart bar display\n */\n CHART_BAR_MAX_LENGTH: 40,\n\n /**\n * Length of chart separator lines\n */\n CHART_SEPARATOR_LENGTH: 60,\n\n /**\n * Number of decimal places for display precision\n */\n DECIMAL_PRECISION: 3,\n} as const;\n\n/**\n * Character code constants\n */\nexport const CHAR_CODES = {\n /**\n * ASCII code for lowercase 'a'\n */\n LOWERCASE_A: 97,\n\n /**\n * Number of letters in the alphabet\n */\n ALPHABET_SIZE: 26,\n\n /**\n * ASCII code for space character\n */\n SPACE: 32,\n} as const;\n\n/**\n * Type for display constant values\n */\nexport type DisplayConstant = (typeof DISPLAY_CONSTANTS)[keyof typeof DISPLAY_CONSTANTS];\n\n/**\n * Type for character code values\n */\nexport type CharCode = (typeof CHAR_CODES)[keyof typeof CHAR_CODES];\n","export const SOCIAL_LINKS = {\n x: \"https://x.com/Plyaz_\",\n instagram: \"https://instagram.com/plyaz_\",\n linkedin: \"https://linkedin.com/company/plyaz\",\n} as const;\n\nexport const PRODUCT_LINKS = {\n docs: \"https://plyaz.gitbook.io/plyaz\",\n community: \"https://community.plyaz.co.uk\",\n support: \"mailto:help@plyaz.co.uk\",\n} as const;"]}
1
+ {"version":3,"sources":["../src/env.ts","../src/providers/alchemy.ts","../src/providers/oauth.ts","../src/chains/contracts.ts","../src/chains/supportedChains.ts","../src/features.ts","../src/domains.ts","../src/constants.ts","../src/app.ts","../src/security.ts","../src/api.ts","../src/utils/string/constants.ts","../src/utils/collection/constants.ts","../src/http/constants.ts","../src/time/constants.ts","../src/math/constants.ts","../src/performance/index.ts","../src/network/constants.ts","../src/display/constants.ts","../src/social.ts","../src/a11y/constants.ts"],"names":["isServer","isDev","isProd","isTest","ALCHEMY_CONFIG","OAUTH_PROVIDERS","CONTRACTS","PROD_SUPPORTED_CHAINS","mainnet","STAGING_SUPPORTED_CHAINS","sepolia","DEV_SUPPORTED_CHAINS","FEATURES","DEFAULT_BACKEND_CONFIG","DEFAULT_FRONTEND_CONFIG","FILE_CHECK_INTERVAL_DEFAULT","FEATURE_FLAG_CACHE_TTL_DEFAULT","CACHE_CLEANUP_INTERVAL_DEFAULT","CACHE_MAX_SIZE_DEFAULT","CACHE_EVICTION_PERCENTAGE","FEATURE_FLAG_PROVIDERS","FEATURE_FLAG_FILE_FORMATS","FEATURE_FLAG_FILE_PATHS","FEATURE_FLAG_EVALUATION_REASONS","DOMAINS","DEFAULT_LOCALE","SUPPORTED_LOCALES","TIMEZONE","LANDING_PAGE_APP","WEB_APP","SECURITY","API_CONFIG","CACHE_CONFIG","WEBHOOK_CONFIG","STRING_CONSTANTS","COLLECTION_CONSTANTS","HTTP_STATUS","TIME_CONSTANTS","NUMBER_SYSTEM","MATH_CONSTANTS","PERFORMANCE_CONSTANTS","NETWORK_CONSTANTS","DISPLAY_CONSTANTS","CHAR_CODES","SOCIAL_LINKS","PRODUCT_LINKS","BLOG","A11Y_CONSTANTS","ARIA_ROLES","ARIA_ATTRIBUTES","KEYBOARD_CODES","ANNOUNCEMENT_PRIORITY","FOCUS_TRAP"],"mappings":";AAAO,IAAMA,EAAW,OAAO,MAAA,CAAW,GAAA,CAC7BC,CAAAA,CAAQ,WAAW,OAAA,CAAQ,GAAA,CAAI,QAAA,GAAa,aAAA,CAC5CC,EAAS,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,QAAA,GAAa,aAC7CC,CAAAA,CAAS,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,WAAa,OCHnD,IAAMC,CAAAA,CAAiB,CAC5B,OAAQ,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,uBAAA,CAC/B,QAAS,CACP,QAAA,CAAU,CAAA,qCAAA,EAAwC,UAAA,CAAW,QAAQ,GAAA,CAAI,uBAAuB,CAAA,CAAA,CAChG,OAAA,CAAS,4CAA4C,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,uBAAuB,GACnG,QAAA,CAAU,CAAA,qCAAA,EAAwC,UAAA,CAAW,OAAA,CAAQ,IAAI,uBAAuB,CAAA,CAAA,CAChG,QAAA,CAAU,CAAA,qCAAA,EAAwC,WAAW,OAAA,CAAQ,GAAA,CAAI,uBAAuB,CAAA,CAAA,CAChG,KAAM,CAAA,sCAAA,EAAyC,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,uBAAuB,CAAA,CAAA,CAC7F,MAAA,CAAQ,CAAA,wCAAA,EAA2C,UAAA,CAAW,QAAQ,GAAA,CAAI,uBAAuB,EACnG,CACF,MCVaC,CAAAA,CAAkB,CAC7B,MAAA,CAAQ,CACN,SAAU,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,4BAAA,CACjC,aAAc,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,oBAAA,CACrC,YAAa,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,+BAAA,CACpC,OAAQ,CAAC,QAAA,CAAU,SAAA,CAAW,OAAO,CACvC,CAAA,CACA,OAAA,CAAS,CACP,QAAA,CAAU,WAAW,OAAA,CAAQ,GAAA,CAAI,6BAAA,CACjC,YAAA,CAAc,WAAW,OAAA,CAAQ,GAAA,CAAI,sBACrC,WAAA,CAAa,UAAA,CAAW,QAAQ,GAAA,CAAI,gCAAA,CACpC,MAAA,CAAQ,CAAC,WAAY,OAAO,CAC9B,CAAA,CACA,QAAA,CAAU,CACR,QAAA,CAAU,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,+BACjC,YAAA,CAAc,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,uBACrC,WAAA,CAAa,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,kCACpC,MAAA,CAAQ,CAAC,gBAAA,CAAkB,OAAO,CACpC,CACF,ECnBO,IAAMC,CAAAA,CAAY,CACvB,UAAA,CAAY,CACV,KAAM,CACJ,QAAA,CAAU,EACZ,CAAA,CACA,KAAA,CAAO,CACL,QAAA,CAAU,EACZ,CACF,CAAA,CACA,YAAA,CAAc,CACZ,KAAM,CACJ,QAAA,CAAU,EACZ,CAAA,CACA,MAAO,CACL,QAAA,CAAU,EACZ,CACF,CACF,ECfO,IAAMC,CAAAA,CAAwB,CAEnC,QAAA,CAAUC,OACZ,CAAA,CAEaC,CAAAA,CAA2B,CAEtC,QAAA,CAAUD,OAAAA,CAEV,OAAA,CAAAE,OACF,EAEaC,CAAAA,CAAuB,CAElC,OAAA,CAAAD,OACF,ECVO,IAAME,CAAAA,CAAW,CAEtB,WAAA,CAAa,KACb,YAAA,CAAcX,CAAAA,CACd,aAAA,CAAe,KAAA,CACf,YAAa,IACf,CAAA,CAMaY,CAAAA,CAAyB,CACpC,SAAU,UAAA,CACV,cAAA,CAAgB,IAAA,CAChB,QAAA,CAAU,IACV,eAAA,CAAiB,EAAA,CACjB,wBAAA,CAA0B,IAAA,CAC1B,iBAAkB,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,QAAA,GAAa,aACxD,CAAA,CAMaC,CAAAA,CAA0B,CACrC,QAAA,CAAU,QAAA,CACV,eAAgB,IAAA,CAChB,QAAA,CAAU,GAAA,CACV,eAAA,CAAiB,EACjB,wBAAA,CAA0B,IAAA,CAC1B,gBAAA,CAAkB,KACpB,EAOaC,CAAAA,CAA8B,GAAA,CAM9BC,CAAAA,CAAiC,GAAA,CAMjCC,EAAiC,GAAA,CAMjCC,CAAAA,CAAyB,GAAA,CAMzBC,CAAAA,CAA4B,GAK5BC,CAAAA,CAAyB,CACpC,MAAA,CAAQ,QAAA,CACR,KAAM,MAAA,CACN,KAAA,CAAO,OAAA,CACP,GAAA,CAAK,MACL,QAAA,CAAU,UACZ,CAAA,CAKaC,CAAAA,CAA4B,CACvC,IAAA,CAAM,MAAA,CACN,KAAM,MACR,CAAA,CAKaC,EAA0B,CACrC,OAAA,CAAS,kCAAA,CACT,YAAA,CAAc,2CACd,YAAA,CAAc,0CAChB,CAAA,CAKaC,CAAAA,CAAkC,CAC7C,OAAA,CAAS,SAAA,CACT,QAAA,CAAU,UAAA,CACV,WAAY,YAAA,CACZ,aAAA,CAAe,eAAA,CACf,KAAA,CAAO,OACT,EC7GO,IAAMC,CAAAA,CAAU,CACrB,IAAK,qBAAA,CACL,GAAA,CAAK,UAAA,CAAW,OAAA,CAAQ,IAAI,mBAC9B,ECHO,IAAMC,CAAAA,CAAiB,KACjBC,CAAAA,CAAoB,CAAC,KAAM,IAAA,CAAM,IAAI,EACrCC,CAAAA,CAAW,gBCAjB,IAAMC,CAAAA,CAAmB,CAC9B,IAAA,CAAM,OAAA,CACN,OAAA,CAAS,OAAA,CACT,oBACA,iBAAA,CAAAF,CACF,CAAA,CAEaG,CAAAA,CAAU,CACrB,IAAA,CAAM,eAAA,CACN,OAAA,CAAS,OAAA,CACT,oBACA,iBAAA,CAAAH,CACF,ECdO,IAAMI,EAAW,CACtB,eAAA,CAAiB,CAAC,IAAA,CAAM,KAAM,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,IAAA,CAAM,QAAS,OAAA,CAAS,OAAO,CACjF,MCFaC,CAAAA,CAAa,EAAC,CAEdC,CAAAA,CAAe,CAE1B,GAAA,CAAK,CACH,KAAA,CAAO,GAAA,CACP,OAAQ,IAAA,CACR,IAAA,CAAM,IAAA,CACN,QAAA,CAAU,KACZ,CAAA,CAGA,IAAA,CAAM,CACJ,IAAA,CAAM,QACN,GAAA,CAAK,MAAA,CACL,UAAA,CAAY,aAAA,CACZ,KAAM,OACR,CAAA,CAGA,KAAA,CAAO,CACL,IAAK,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,SAAA,CAC5B,UAAW,QAAA,CACX,oBAAA,CAAsB,EACtB,WAAA,CAAa,IACf,CACF,CAAA,CAEaC,CAAAA,CAAiB,OChBjBC,EAAAA,CAAmB,CAI9B,mBAAA,CAAqB,CAAA,CAKrB,qBAAsB,CAAA,CAKtB,sBAAA,CAAwB,EAAA,CAKxB,aAAA,CAAe,EAKf,iBAAA,CAAmB,CACrB,ECzBO,IAAMC,GAAuB,CAIlC,kBAAA,CAAoB,EAAA,CAKpB,iBAAA,CAAmB,GAKnB,mBAAA,CAAqB,CAAA,CAKrB,WAAA,CAAa,CACf,ECpBO,IAAMC,EAAAA,CAAc,CAKzB,QAAA,CAAU,IAKV,mBAAA,CAAqB,GAAA,CAKrB,WAAY,GAAA,CAKZ,WAAA,CAAa,IAMb,EAAA,CAAI,GAAA,CAKJ,OAAA,CAAS,GAAA,CAKT,SAAU,GAAA,CAKV,6BAAA,CAA+B,GAAA,CAK/B,UAAA,CAAY,IAKZ,aAAA,CAAe,GAAA,CAKf,eAAA,CAAiB,GAAA,CAKjB,aAAc,GAAA,CAKd,gBAAA,CAAkB,GAAA,CAKlB,OAAA,CAAS,IAMT,gBAAA,CAAkB,GAAA,CAKlB,iBAAA,CAAmB,GAAA,CAKnB,MAAO,GAAA,CAKP,SAAA,CAAW,GAAA,CAKX,YAAA,CAAc,IAKd,SAAA,CAAW,GAAA,CAKX,kBAAA,CAAoB,GAAA,CAKpB,mBAAoB,GAAA,CAMpB,WAAA,CAAa,IAKb,YAAA,CAAc,GAAA,CAKd,iBAAkB,GAAA,CAKlB,SAAA,CAAW,GAAA,CAKX,SAAA,CAAW,IAKX,kBAAA,CAAoB,GAAA,CAKpB,cAAA,CAAgB,GAAA,CAKhB,8BAA+B,GAAA,CAK/B,eAAA,CAAiB,GAAA,CAKjB,QAAA,CAAU,IAKV,IAAA,CAAM,GAAA,CAKN,eAAA,CAAiB,GAAA,CAKjB,oBAAqB,GAAA,CAKrB,iBAAA,CAAmB,GAAA,CAKnB,YAAA,CAAc,IAKd,sBAAA,CAAwB,GAAA,CAKxB,qBAAA,CAAuB,GAAA,CAKvB,mBAAoB,GAAA,CAKpB,WAAA,CAAa,GAAA,CAKb,mBAAA,CAAqB,IAKrB,oBAAA,CAAsB,GAAA,CAKtB,OAAQ,GAAA,CAKR,iBAAA,CAAmB,IAKnB,SAAA,CAAW,GAAA,CAKX,gBAAA,CAAkB,GAAA,CAKlB,sBAAuB,GAAA,CAKvB,iBAAA,CAAmB,GAAA,CAKnB,+BAAA,CAAiC,IAKjC,6BAAA,CAA+B,GAAA,CAM/B,qBAAA,CAAuB,GAAA,CAKvB,gBAAiB,GAAA,CAKjB,WAAA,CAAa,GAAA,CAKb,mBAAA,CAAqB,IAKrB,eAAA,CAAiB,GAAA,CAKjB,0BAAA,CAA4B,GAAA,CAK5B,wBAAyB,GAAA,CAKzB,oBAAA,CAAsB,GAAA,CAKtB,aAAA,CAAe,IAKf,YAAA,CAAc,GAAA,CAKd,+BAAA,CAAiC,GACnC,EC3TO,IAAMC,EAAAA,CAAiB,CAK5B,WAAA,CAAa,CAAA,CAKb,OAAQ,GAAA,CAKR,MAAA,CAAQ,GAAA,CAKR,IAAA,CAAM,KAKN,GAAA,CAAK,KAAA,CAKL,IAAA,CAAM,MAAA,CAKN,MAAO,MAAA,CAKP,IAAA,CAAM,OAAA,CAMN,uBAAA,CAAyB,IAKzB,kBAAA,CAAoB,EAAA,CAKpB,gBAAA,CAAkB,EAAA,CAKlB,cAAe,EAAA,CAKf,aAAA,CAAe,CAAA,CAKf,cAAA,CAAgB,GAKhB,aAAA,CAAe,GAAA,CAKf,cAAA,CAAgB,EAAA,CAKhB,gBAAiB,EAAA,CAMjB,UAAA,CAAY,GAAA,CAKZ,cAAA,CAAgB,IAKhB,WAAA,CAAa,GAAA,CAKb,YAAa,GAAA,CAKb,aAAA,CAAe,IAKf,YAAA,CAAc,GAAA,CAKd,WAAA,CAAa,GAAA,CAKb,eAAgB,GAAA,CAKhB,WAAA,CAAa,IAAA,CAKb,YAAA,CAAc,IAKd,WAAA,CAAa,GAAA,CAKb,eAAA,CAAiB,GAAA,CAKjB,eAAgB,IAAA,CAKhB,QAAA,CAAU,IAAA,CAKV,SAAA,CAAW,KAKX,SAAA,CAAW,KAAA,CAKX,YAAA,CAAc,KAAA,CAMd,gBAAiB,GAAA,CAKjB,qBAAA,CAAuB,GAAA,CAKvB,oBAAA,CAAsB,IAKtB,mBAAA,CAAqB,GAAA,CAKrB,oBAAA,CAAsB,GAAA,CAKtB,oBAAqB,GAAA,CAKrB,sBAAA,CAAwB,EAKxB,sBAAA,CAAwB,EAAA,CAKxB,uBAAwB,GAAA,CAKxB,uBAAA,CAAyB,KAAA,CAKzB,2BAAA,CAA6B,IAK7B,iBAAA,CAAmB,GAAA,CAKnB,uBAAA,CAAyB,EAAA,CAKzB,uBAAwB,IAAA,CAKxB,uBAAA,CAAyB,IAAA,CAKzB,oBAAA,CAAsB,IAKtB,qBAAA,CAAuB,GAAA,CAKvB,0BAAA,CAA4B,GAAA,CAM5B,aAAc,GAAA,CAKd,SAAA,CAAW,EAAA,CAKX,UAAA,CAAY,IAKZ,cAAA,CAAgB,IAAA,CAKhB,aAAA,CAAe,IAAA,CAKf,WAAY,IAAA,CAMZ,sBAAA,CAAwB,GAAA,CAKxB,0BAAA,CAA4B,KAK5B,8BAAA,CAAgC,IAAA,CAKhC,2BAAA,CAA6B,IAAA,CAK7B,yBAA0B,IAAA,CAK1B,qBAAA,CAAuB,GAAA,CAKvB,uBAAA,CAAyB,IAKzB,yBAAA,CAA2B,GAAA,CAK3B,6BAAA,CAA+B,GACjC,ECrVO,IAAMC,EAAAA,CAAgB,CAK3B,WAAA,CAAa,EAKb,UAAA,CAAY,CAAA,CAKZ,YAAA,CAAc,EAAA,CAKd,gBAAiB,EAAA,CAKjB,QAAA,CAAU,EAAA,CAKV,MAAA,CAAQ,GAKR,MAAA,CAAQ,EAAA,CAKR,MAAA,CAAQ,EAAA,CAKR,OAAQ,EAAA,CAKR,MAAA,CAAQ,EAAA,CAMR,cAAA,CAAgB,EAKhB,gBAAA,CAAkB,CAAA,CAKlB,uBAAwB,CAAA,CAKxB,aAAA,CAAe,EAKf,eAAA,CAAiB,CAAA,CAKjB,YAAA,CAAc,IAAA,CAKd,aAAc,OAAA,CAKd,YAAA,CAAc,UAAA,CAMd,uBAAA,CAAyB,EAKzB,yBAAA,CAA2B,CAAA,CAK3B,yBAAA,CAA2B,CAAA,CAK3B,iBAAkB,gBAAA,CAKlB,gBAAA,CAAkB,iBAAA,CAKlB,SAAA,CAAW,WAKX,SAAA,CAAW,WAAA,CAKX,UAAA,CAAY,KAAA,CAKZ,UAAW,GAAA,CAMX,mBAAA,CAAqB,GAAA,CAKrB,mBAAA,CAAqB,IAKrB,mBAAA,CAAqB,EAAA,CAKrB,kBAAA,CAAoB,iBAAA,CAKpB,mBAAoB,mBAAA,CAMpB,EAAA,CAAI,kBAKJ,MAAA,CAAQ,iBAAA,CAKR,QAAS,kBAAA,CAKT,CAAA,CAAG,iBAAA,CAKH,YAAA,CAAc,kBAKd,KAAA,CAAO,kBAAA,CAKP,KAAA,CAAO,kBAAA,CAKP,IAAK,iBAAA,CAKL,IAAA,CAAM,iBAAA,CAKN,KAAA,CAAO,mBAKP,MAAA,CAAQ,iBACV,CAAA,CAKaC,EAAAA,CAAiB,CAI5B,IAAA,CAAM,EAAA,CAKN,KAAA,CAAO,EAAA,CAKP,UAAW,GAAA,CAKX,UAAA,CAAY,GAAA,CAKZ,UAAA,CAAY,IAKZ,mBAAA,CAAqB,GAAA,CAKrB,qBAAA,CAAuB,CAAA,CAKvB,oBAAqB,CAAA,CAKrB,eAAA,CAAiB,CACnB,EC7QO,IAAMC,GAAwB,CAInC,qBAAA,CAAuB,EAAA,CAKvB,sBAAA,CAAwB,IAKxB,mBAAA,CAAqB,EACvB,EChBO,IAAMC,GAAoB,CAI/B,cAAA,CAAgB,CAAA,CAKhB,cAAA,CAAgB,IAKhB,gBAAA,CAAkB,CAAA,CAKlB,eAAA,CAAiB,GAAA,CAKjB,uBAAwB,GAC1B,ECzBO,IAAMC,EAAAA,CAAoB,CAI/B,oBAAA,CAAsB,EAAA,CAKtB,sBAAA,CAAwB,EAAA,CAKxB,kBAAmB,CACrB,CAAA,CAKaC,EAAAA,CAAa,CAIxB,YAAa,EAAA,CAKb,aAAA,CAAe,EAAA,CAKf,KAAA,CAAO,EACT,EC/CO,IAAMC,EAAAA,CAAe,CAC1B,EAAG,sBAAA,CACH,SAAA,CAAW,8BAAA,CACX,QAAA,CAAU,oCACZ,CAAA,CAEaC,EAAAA,CAAgB,CAC3B,IAAA,CAAM,iCACN,SAAA,CAAW,+BAAA,CACX,OAAA,CAAS,yBACX,EAEaC,EAAAA,CAAO,CAClB,qBAAA,CAAuB,CAAA,CACvB,gBAAiB,CAAA,CACjB,eAAA,CAAiB,GACnB,MCJaC,EAAAA,CAAiB,CAK5B,iBAAA,CAAmB,GAAA,CAKnB,gBAAiB,EAAA,CAKjB,sBAAA,CAAwB,IAKxB,mBAAA,CAAqB,GAAA,CAKrB,uBAAwB,GAAA,CAMxB,mBAAA,CAAqB,EAAA,CAKrB,wBAAA,CAA0B,GAK1B,oBAAA,CAAsB,EAAA,CAKtB,qBAAA,CAAuB,EAAA,CAKvB,uBAAwB,EAAA,CAMxB,iBAAA,CAAmB,GAAA,CAKnB,cAAA,CAAgB,OAKhB,YAAA,CAAc,KAAA,CAKd,WAAA,CAAa,IAAA,CAKb,WAAY,KAAA,CAKZ,aAAA,CAAe,GAAA,CAKf,aAAA,CAAe,MAKf,eAAA,CAAiB,KAAA,CAKjB,cAAA,CAAgB,KAAA,CAKhB,iBAAkB,GAAA,CAMlB,iBAAA,CAAmB,GAAA,CAKnB,uBAAA,CAAyB,EAKzB,kBAAA,CAAoB,CAAA,CAKpB,yBAA0B,GAAA,CAK1B,uBAAA,CAAyB,EAKzB,cAAA,CAAgB,GAAA,CAMhB,gCAAA,CAAkC,GAAA,CAKlC,wBAAyB,CAAA,CAKzB,cAAA,CAAgB,CAAA,CAKhB,wBAAA,CAA0B,EAM1B,mBAAA,CAAqB,EAAA,CAKrB,uBAAA,CAAyB,EAAA,CAKzB,yBAA0B,GAAA,CAM1B,0BAAA,CAA4B,GAAA,CAK5B,sBAAA,CAAwB,GAKxB,qBAAA,CAAuB,EAAA,CAKvB,uBAAA,CAAyB,GAAA,CAMzB,iBAAkB,GAAA,CAKlB,wBAAA,CAA0B,GAAA,CAK1B,mBAAA,CAAqB,EAMrB,uBAAA,CAAyB,GAAA,CAKzB,cAAA,CAAgB,EAAA,CAKhB,eAAgB,GAAA,CAMhB,eAAA,CAAiB,GAKjB,mBAAA,CAAqB,EAAA,CAKrB,gBAAiB,GAAA,CAKjB,mBAAA,CAAqB,GACvB,CAAA,CAKaC,GAAa,CAExB,MAAA,CAAQ,QAAA,CACR,aAAA,CAAe,gBACf,WAAA,CAAa,aAAA,CACb,IAAA,CAAM,MAAA,CACN,KAAM,MAAA,CACN,UAAA,CAAY,YAAA,CACZ,MAAA,CAAQ,SACR,MAAA,CAAQ,QAAA,CAGR,WAAA,CAAa,aAAA,CACb,QAAS,SAAA,CACT,IAAA,CAAM,MAAA,CACN,YAAA,CAAc,eACd,UAAA,CAAY,YAAA,CACZ,SAAA,CAAW,WAAA,CACX,SAAU,UAAA,CACV,IAAA,CAAM,MAAA,CACN,MAAA,CAAQ,SACR,KAAA,CAAO,OAAA,CACP,OAAA,CAAS,SAAA,CACT,IAAK,KAAA,CACL,IAAA,CAAM,MAAA,CACN,QAAA,CAAU,WACV,IAAA,CAAM,MAAA,CACN,IAAA,CAAM,MAAA,CACN,aAAc,cAAA,CACd,GAAA,CAAK,KAAA,CACL,QAAA,CAAU,WACV,SAAA,CAAW,WAAA,CACX,SAAA,CAAW,WAAA,CACX,MAAO,OAAA,CACP,IAAA,CAAM,MAAA,CAGN,KAAA,CAAO,QACP,WAAA,CAAa,aAAA,CACb,MAAA,CAAQ,QAAA,CACR,SAAU,UAAA,CACV,QAAA,CAAU,WACV,MAAA,CAAQ,QAAA,CACR,SAAU,UAAA,CACV,IAAA,CAAM,MAAA,CACN,OAAA,CAAS,UACT,GAAA,CAAK,KAAA,CACL,OAAA,CAAS,SAAA,CACT,KAAM,MAAA,CACN,OAAA,CAAS,SAAA,CACT,QAAA,CAAU,WACV,gBAAA,CAAkB,kBAAA,CAClB,aAAA,CAAe,eAAA,CACf,OAAQ,QAAA,CACR,WAAA,CAAa,aAAA,CACb,KAAA,CAAO,QACP,UAAA,CAAY,YAAA,CACZ,SAAA,CAAW,WAAA,CACX,UAAW,WAAA,CACX,MAAA,CAAQ,QAAA,CACR,UAAA,CAAY,aACZ,MAAA,CAAQ,QAAA,CACR,OAAQ,QAAA,CACR,GAAA,CAAK,MACL,OAAA,CAAS,SAAA,CACT,QAAA,CAAU,UAAA,CACV,QAAS,SAAA,CACT,KAAA,CAAO,OAAA,CACP,OAAA,CAAS,UACT,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,MAAA,CACN,SAAU,UAAA,CACV,QAAA,CAAU,UAAA,CAGV,OAAA,CAAS,UACT,SAAA,CAAW,WAAA,CACX,KAAA,CAAO,OAAA,CACP,SAAU,UAAA,CACV,KAAA,CAAO,OAAA,CACP,QAAA,CAAU,WACV,OAAA,CAAS,SAAA,CACT,WAAA,CAAa,aAAA,CACb,OAAQ,QAAA,CACR,SAAA,CAAW,YACX,MAAA,CAAQ,QAAA,CACR,OAAQ,QACV,CAAA,CAKaC,EAAAA,CAAkB,CAE7B,kBAAmB,mBAAA,CACnB,YAAA,CAAc,cAAA,CACd,aAAA,CAAe,gBACf,iBAAA,CAAmB,mBAAA,CACnB,aAAA,CAAe,eAAA,CACf,cAAe,eAAA,CACf,WAAA,CAAa,aAAA,CACb,YAAA,CAAc,eACd,UAAA,CAAY,YAAA,CACZ,UAAA,CAAY,YAAA,CACZ,WAAY,YAAA,CACZ,cAAA,CAAgB,gBAAA,CAChB,oBAAA,CAAsB,uBACtB,gBAAA,CAAkB,kBAAA,CAClB,gBAAA,CAAkB,kBAAA,CAClB,aAAc,cAAA,CACd,aAAA,CAAe,gBACf,aAAA,CAAe,eAAA,CACf,cAAe,eAAA,CACf,SAAA,CAAW,WAAA,CACX,aAAA,CAAe,gBACf,aAAA,CAAe,eAAA,CACf,aAAA,CAAe,eAAA,CACf,eAAgB,gBAAA,CAGhB,SAAA,CAAW,WAAA,CACX,WAAA,CAAa,cACb,aAAA,CAAe,eAAA,CACf,SAAA,CAAW,WAAA,CAGX,gBAAiB,iBAAA,CACjB,YAAA,CAAc,cAAA,CAGd,qBAAA,CAAuB,wBACvB,aAAA,CAAe,eAAA,CACf,aAAA,CAAe,eAAA,CACf,aAAc,cAAA,CACd,aAAA,CAAe,eAAA,CACf,gBAAA,CAAkB,mBAClB,YAAA,CAAc,cAAA,CACd,YAAa,aAAA,CACb,eAAA,CAAiB,kBACjB,SAAA,CAAW,WAAA,CACX,aAAA,CAAe,eAAA,CACf,cAAe,eAAA,CACf,aAAA,CAAe,eAAA,CACf,YAAA,CAAc,eACd,YAAA,CAAc,cAAA,CAGd,YAAA,CAAc,cAAA,CACd,iBAAkB,kBAAA,CAClB,iBAAA,CAAmB,mBAAA,CACnB,oBAAA,CAAsB,sBACxB,CAAA,CAKaC,EAAAA,CAAiB,CAE5B,GAAA,CAAK,MACL,KAAA,CAAO,OAAA,CACP,KAAA,CAAO,GAAA,CACP,OAAQ,QAAA,CACR,QAAA,CAAU,SAAA,CACV,UAAA,CAAY,YACZ,UAAA,CAAY,WAAA,CACZ,YAAa,YAAA,CACb,IAAA,CAAM,OACN,GAAA,CAAK,KAAA,CACL,OAAA,CAAS,QAAA,CACT,UAAW,UAAA,CAGX,WAAA,CAAa,CAAA,CACb,aAAA,CAAe,GACf,cAAA,CAAgB,EAAA,CAChB,aAAA,CAAe,EAAA,CACf,mBAAoB,EAAA,CACpB,gBAAA,CAAkB,EAAA,CAClB,mBAAA,CAAqB,GACrB,kBAAA,CAAoB,EACtB,CAAA,CAKaC,EAAAA,CAAwB,CAInC,MAAA,CAAQ,QAAA,CAKR,SAAA,CAAW,WAAA,CAKX,IAAK,KACP,CAAA,CAKaC,EAAAA,CAAa,CAIxB,cAAe,mCAAA,CAKf,kBAAA,CACE,4IAKF,oBAAA,CAAsB,0EAAA,CAKtB,UAAW,8BACb","file":"index.mjs","sourcesContent":["export const isServer = typeof window === 'undefined';\nexport const isDev = globalThis.process.env.NODE_ENV === 'development';\nexport const isProd = globalThis.process.env.NODE_ENV === 'production';\nexport const isTest = globalThis.process.env.NODE_ENV === 'test';\n","export const ALCHEMY_CONFIG = {\n apiKey: globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY!,\n rpcUrls: {\n ethereum: `https://eth-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n polygon: `https://polygon-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n arbitrum: `https://arb-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n optimism: `https://opt-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n base: `https://base-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n solana: `https://solana-mainnet.g.alchemy.com/v2/${globalThis.process.env.NEXT_PUBLIC_ALCHEMY_KEY}`,\n },\n};\n","export const OAUTH_PROVIDERS = {\n google: {\n clientId: globalThis.process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,\n clientSecret: globalThis.process.env.GOOGLE_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_GOOGLE_REDIRECT_URI!,\n scopes: ['openid', 'profile', 'email'],\n },\n discord: {\n clientId: globalThis.process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID!,\n clientSecret: globalThis.process.env.DISCORD_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_DISCORD_REDIRECT_URI!,\n scopes: ['identify', 'email'],\n },\n facebook: {\n clientId: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID!,\n clientSecret: globalThis.process.env.FACEBOOK_CLIENT_SECRET!,\n redirectUri: globalThis.process.env.NEXT_PUBLIC_FACEBOOK_REDIRECT_URI!,\n scopes: ['public_profile', 'email'],\n },\n} as const;\n","export const CONTRACTS = {\n nftManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n tokenManager: {\n read: {\n arbitrum: '',\n },\n write: {\n arbitrum: '',\n },\n },\n} as const;\n","import { mainnet, sepolia } from 'viem/chains';\n\nexport const PROD_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n} as const;\n\nexport const STAGING_SUPPORTED_CHAINS = {\n // Mainnets\n ethereum: mainnet,\n // Testnets\n sepolia,\n} as const;\n\nexport const DEV_SUPPORTED_CHAINS = {\n // Testnets\n sepolia,\n} as const;\n","/**\n * Feature Flag Constants\n *\n */\n\nimport { isDev } from './env';\n\nexport const FEATURES = {\n // Authentication & Auth Providers\n AUTH_GOOGLE: true,\n AUTH_DISCORD: isDev,\n AUTH_FACEBOOK: false,\n AUTH_GITHUB: true,\n} as const satisfies Record<string, boolean>;\n\n/**\n * Default backend configuration for feature flags.\n * Optimized for server-side usage with reasonable defaults.\n */\nexport const DEFAULT_BACKEND_CONFIG = {\n provider: 'database',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 60, // 1 minute auto-refresh\n shouldFallbackToDefaults: true,\n isLoggingEnabled: globalThis.process.env.NODE_ENV === 'development',\n} as const;\n\n/**\n * Default frontend configuration for feature flags.\n * Optimized for client-side usage with reasonable defaults.\n */\nexport const DEFAULT_FRONTEND_CONFIG = {\n provider: 'memory',\n isCacheEnabled: true,\n cacheTtl: 300, // 5 minutes\n refreshInterval: 0, // No auto-refresh for frontend\n shouldFallbackToDefaults: true,\n isLoggingEnabled: false, // Disabled in production\n} as const;\n\n/**\n * Default file check interval for file watcher debouncing (in milliseconds)\n * Prevents rapid reloads when files are saved multiple times quickly\n * @default 100\n */\nexport const FILE_CHECK_INTERVAL_DEFAULT = 100;\n\n/**\n * Default cache TTL for feature flags (in seconds)\n * @default 300 (5 minutes)\n */\nexport const FEATURE_FLAG_CACHE_TTL_DEFAULT = 300;\n\n/**\n * Default cleanup interval for memory cache (in milliseconds)\n * @default 60000 (1 minute)\n */\nexport const CACHE_CLEANUP_INTERVAL_DEFAULT = 60000;\n\n/**\n * Default maximum cache size for memory strategy\n * @default 1000\n */\nexport const CACHE_MAX_SIZE_DEFAULT = 1000;\n\n/**\n * Percentage of cache entries to evict when cache is full\n * @default 0.1 (10%)\n */\nexport const CACHE_EVICTION_PERCENTAGE = 0.1;\n\n/**\n * Feature flag provider types\n */\nexport const FEATURE_FLAG_PROVIDERS = {\n MEMORY: 'memory',\n FILE: 'file',\n REDIS: 'redis',\n API: 'api',\n DATABASE: 'database',\n} as const;\n\n/**\n * Feature flag file formats\n */\nexport const FEATURE_FLAG_FILE_FORMATS = {\n JSON: 'json',\n YAML: 'yaml',\n} as const;\n\n/**\n * Default file paths for feature flag configuration\n */\nexport const FEATURE_FLAG_FILE_PATHS = {\n DEFAULT: 'src/config/feature-provider.json',\n JSON_EXAMPLE: 'src/config/feature-provider.json.example',\n YAML_EXAMPLE: 'src/config/feature-provider.yaml.example',\n} as const;\n\n/**\n * Feature flag evaluation reasons\n */\nexport const FEATURE_FLAG_EVALUATION_REASONS = {\n DEFAULT: 'default',\n OVERRIDE: 'override',\n RULE_MATCH: 'rule_match',\n FLAG_DISABLED: 'flag_disabled',\n ERROR: 'error',\n} as const;\n","export const DOMAINS = {\n app: 'https://plyaz.co.uk',\n api: globalThis.process.env.NEXT_PUBLIC_API_URL!,\n} as const;\n","export const DEFAULT_LOCALE = 'en';\nexport const SUPPORTED_LOCALES = ['en', 'es', 'pt'] as const;\nexport const TIMEZONE = 'Europe/London';\n","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './constants';\n\nexport const LANDING_PAGE_APP = {\n NAME: 'Plyaz',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n\nexport const WEB_APP = {\n NAME: 'Plyaz The App',\n VERSION: '1.0.0',\n DEFAULT_LOCALE,\n SUPPORTED_LOCALES,\n} as const;\n","export const SECURITY = {\n BLOCKED_REGIONS: ['KP', 'SY', 'IR', 'CU', 'SD', 'SO', 'UA-CR', 'UA-DP', 'UA-LU'],\n} as const;\n","export const API_CONFIG = {} as const;\n\nexport const CACHE_CONFIG = {\n // Cache TTL in seconds\n ttl: {\n short: 300, // 5 minutes\n medium: 1800, // 30 minutes\n long: 3600, // 1 hour\n extended: 86400, // 24 hours\n },\n\n // Cache keys\n keys: {\n user: 'user:',\n nft: 'nft:',\n blockchain: 'blockchain:',\n auth: 'auth:',\n },\n\n // Redis configuration\n redis: {\n url: globalThis.process.env.REDIS_URL!,\n keyPrefix: 'plyaz:',\n maxRetriesPerRequest: 3,\n lazyConnect: true,\n },\n} as const;\n\nexport const WEBHOOK_CONFIG = {} as const;\n","/**\n * String Manipulation Constants\n *\n * Constants used for string generation, manipulation,\n * and UUID-related operations.\n *\n * @module utils/string/constants\n */\n\n/**\n * String generation and manipulation constants\n */\nexport const STRING_CONSTANTS = {\n /**\n * Starting position for random string extraction\n */\n RANDOM_STRING_START: 2,\n\n /**\n * Length of random string segment\n */\n RANDOM_STRING_LENGTH: 9,\n\n /**\n * Multiplier for UUID random value generation\n */\n UUID_RANDOM_MULTIPLIER: 16,\n\n /**\n * Hexadecimal mask for UUID generation\n */\n UUID_HEX_MASK: 0x3,\n\n /**\n * OR value for UUID hexadecimal operations\n */\n UUID_HEX_OR_VALUE: 0x8,\n} as const;\n\n/**\n * Type for string constant values\n */\nexport type StringConstant = (typeof STRING_CONSTANTS)[keyof typeof STRING_CONSTANTS];\n","/**\n * Collection and Array Constants\n *\n * Constants for array operations, pagination,\n * and collection manipulation.\n *\n * @module utils/collection/constants\n */\n\n/**\n * Array and collection operation constants\n */\nexport const COLLECTION_CONSTANTS = {\n /**\n * Center point for array splitting (50%)\n */\n ARRAY_SPLIT_CENTER: 0.5,\n\n /**\n * Default page size for pagination\n */\n DEFAULT_PAGE_SIZE: 10,\n\n /**\n * Default maximum number of retries for operations\n */\n DEFAULT_MAX_RETRIES: 3,\n\n /**\n * Constant for three items (used in various contexts)\n */\n THREE_ITEMS: 3,\n} as const;\n\n/**\n * Type for collection constant values\n */\nexport type CollectionConstant = (typeof COLLECTION_CONSTANTS)[keyof typeof COLLECTION_CONSTANTS];\n","/**\n * HTTP Status Code Constants\n *\n * Common HTTP status codes used throughout the application.\n * Based on RFC 9110 (HTTP Semantics) and common usage patterns.\n *\n * @module http/constants\n */\n\n/**\n * Standard HTTP status codes\n */\nexport const HTTP_STATUS = {\n // 1xx Informational\n /**\n * 100 Continue - The initial part of a request has been received\n */\n CONTINUE: 100,\n\n /**\n * 101 Switching Protocols - The server is switching protocols\n */\n SWITCHING_PROTOCOLS: 101,\n\n /**\n * 102 Processing - The server has received and is processing the request\n */\n PROCESSING: 102,\n\n /**\n * 103 Early Hints - Used to return some response headers before final HTTP message\n */\n EARLY_HINTS: 103,\n\n // 2xx Success\n /**\n * 200 OK - The request succeeded\n */\n OK: 200,\n\n /**\n * 201 Created - The request succeeded and a new resource was created\n */\n CREATED: 201,\n\n /**\n * 202 Accepted - The request has been received but not yet acted upon\n */\n ACCEPTED: 202,\n\n /**\n * 203 Non-Authoritative Information - The returned metadata is not from the origin server\n */\n NON_AUTHORITATIVE_INFORMATION: 203,\n\n /**\n * 204 No Content - There is no content to send for this request\n */\n NO_CONTENT: 204,\n\n /**\n * 205 Reset Content - Tells the user agent to reset the document\n */\n RESET_CONTENT: 205,\n\n /**\n * 206 Partial Content - The server is delivering only part of the resource\n */\n PARTIAL_CONTENT: 206,\n\n /**\n * 207 Multi-Status - Conveys information about multiple resources\n */\n MULTI_STATUS: 207,\n\n /**\n * 208 Already Reported - The members of a DAV binding have already been enumerated\n */\n ALREADY_REPORTED: 208,\n\n /**\n * 226 IM Used - The server has fulfilled a request for the resource\n */\n IM_USED: 226,\n\n // 3xx Redirection\n /**\n * 300 Multiple Choices - Multiple options for the resource are available\n */\n MULTIPLE_CHOICES: 300,\n\n /**\n * 301 Moved Permanently - The URL of the requested resource has been changed permanently\n */\n MOVED_PERMANENTLY: 301,\n\n /**\n * 302 Found - The resource resides temporarily under a different URI\n */\n FOUND: 302,\n\n /**\n * 303 See Other - Direct the client to get the resource at another URI\n */\n SEE_OTHER: 303,\n\n /**\n * 304 Not Modified - The cached version is still valid\n */\n NOT_MODIFIED: 304,\n\n /**\n * 305 Use Proxy - Defined in a previous version of the HTTP specification\n */\n USE_PROXY: 305,\n\n /**\n * 307 Temporary Redirect - The request should be repeated with another URI\n */\n TEMPORARY_REDIRECT: 307,\n\n /**\n * 308 Permanent Redirect - The resource is permanently located at another URI\n */\n PERMANENT_REDIRECT: 308,\n\n // 4xx Client Errors\n /**\n * 400 Bad Request - The server cannot process the request due to client error\n */\n BAD_REQUEST: 400,\n\n /**\n * 401 Unauthorized - Authentication is required and has failed or not been provided\n */\n UNAUTHORIZED: 401,\n\n /**\n * 402 Payment Required - Reserved for future use\n */\n PAYMENT_REQUIRED: 402,\n\n /**\n * 403 Forbidden - The server understood the request but refuses to authorize it\n */\n FORBIDDEN: 403,\n\n /**\n * 404 Not Found - The server cannot find the requested resource\n */\n NOT_FOUND: 404,\n\n /**\n * 405 Method Not Allowed - The request method is not supported for the requested resource\n */\n METHOD_NOT_ALLOWED: 405,\n\n /**\n * 406 Not Acceptable - The requested resource is not available in a format acceptable to the client\n */\n NOT_ACCEPTABLE: 406,\n\n /**\n * 407 Proxy Authentication Required - The client must authenticate itself with the proxy\n */\n PROXY_AUTHENTICATION_REQUIRED: 407,\n\n /**\n * 408 Request Timeout - The server timed out waiting for the request\n */\n REQUEST_TIMEOUT: 408,\n\n /**\n * 409 Conflict - The request conflicts with the current state of the server\n */\n CONFLICT: 409,\n\n /**\n * 410 Gone - The requested resource is no longer available and will not be available again\n */\n GONE: 410,\n\n /**\n * 411 Length Required - The request did not specify the length of its content\n */\n LENGTH_REQUIRED: 411,\n\n /**\n * 412 Precondition Failed - The server does not meet one of the preconditions\n */\n PRECONDITION_FAILED: 412,\n\n /**\n * 413 Payload Too Large - The request is larger than the server is willing to process\n */\n PAYLOAD_TOO_LARGE: 413,\n\n /**\n * 414 URI Too Long - The URI provided was too long for the server to process\n */\n URI_TOO_LONG: 414,\n\n /**\n * 415 Unsupported Media Type - The request entity has a media type not supported by the server\n */\n UNSUPPORTED_MEDIA_TYPE: 415,\n\n /**\n * 416 Range Not Satisfiable - The client has asked for a portion of the file that the server cannot supply\n */\n RANGE_NOT_SATISFIABLE: 416,\n\n /**\n * 417 Expectation Failed - The server cannot meet the requirements of the Expect request-header field\n */\n EXPECTATION_FAILED: 417,\n\n /**\n * 418 I'm a teapot - The server refuses to brew coffee because it is a teapot\n */\n IM_A_TEAPOT: 418,\n\n /**\n * 421 Misdirected Request - The request was directed at a server that is not able to produce a response\n */\n MISDIRECTED_REQUEST: 421,\n\n /**\n * 422 Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors\n */\n UNPROCESSABLE_ENTITY: 422,\n\n /**\n * 423 Locked - The resource that is being accessed is locked\n */\n LOCKED: 423,\n\n /**\n * 424 Failed Dependency - The request failed due to failure of a previous request\n */\n FAILED_DEPENDENCY: 424,\n\n /**\n * 425 Too Early - The server is unwilling to risk processing a request that might be replayed\n */\n TOO_EARLY: 425,\n\n /**\n * 426 Upgrade Required - The client should switch to a different protocol\n */\n UPGRADE_REQUIRED: 426,\n\n /**\n * 428 Precondition Required - The origin server requires the request to be conditional\n */\n PRECONDITION_REQUIRED: 428,\n\n /**\n * 429 Too Many Requests - The user has sent too many requests in a given amount of time\n */\n TOO_MANY_REQUESTS: 429,\n\n /**\n * 431 Request Header Fields Too Large - The server is unwilling to process the request because its header fields are too large\n */\n REQUEST_HEADER_FIELDS_TOO_LARGE: 431,\n\n /**\n * 451 Unavailable For Legal Reasons - The user requested a resource that cannot legally be provided\n */\n UNAVAILABLE_FOR_LEGAL_REASONS: 451,\n\n // 5xx Server Errors\n /**\n * 500 Internal Server Error - The server encountered an unexpected condition\n */\n INTERNAL_SERVER_ERROR: 500,\n\n /**\n * 501 Not Implemented - The server does not support the functionality required to fulfill the request\n */\n NOT_IMPLEMENTED: 501,\n\n /**\n * 502 Bad Gateway - The server received an invalid response from the upstream server\n */\n BAD_GATEWAY: 502,\n\n /**\n * 503 Service Unavailable - The server is not ready to handle the request\n */\n SERVICE_UNAVAILABLE: 503,\n\n /**\n * 504 Gateway Timeout - The server did not get a response in time from the upstream server\n */\n GATEWAY_TIMEOUT: 504,\n\n /**\n * 505 HTTP Version Not Supported - The HTTP version used in the request is not supported by the server\n */\n HTTP_VERSION_NOT_SUPPORTED: 505,\n\n /**\n * 506 Variant Also Negotiates - The server has an internal configuration error\n */\n VARIANT_ALSO_NEGOTIATES: 506,\n\n /**\n * 507 Insufficient Storage - The server is unable to store the representation needed to complete the request\n */\n INSUFFICIENT_STORAGE: 507,\n\n /**\n * 508 Loop Detected - The server detected an infinite loop while processing the request\n */\n LOOP_DETECTED: 508,\n\n /**\n * 510 Not Extended - Further extensions to the request are required for the server to fulfill it\n */\n NOT_EXTENDED: 510,\n\n /**\n * 511 Network Authentication Required - The client needs to authenticate to gain network access\n */\n NETWORK_AUTHENTICATION_REQUIRED: 511,\n} as const;\n\n/**\n * Type for HTTP status codes\n */\nexport type HttpStatusCode = (typeof HTTP_STATUS)[keyof typeof HTTP_STATUS];\n","/**\n * Time-related Constants\n *\n * Common time values and durations used throughout the application\n * for timeouts, delays, caching, and other time-based operations.\n *\n * @module time/constants\n */\n\n/**\n * Time conversion and duration constants\n */\nexport const TIME_CONSTANTS = {\n // Time unit conversions (in milliseconds)\n /**\n * One millisecond in milliseconds\n */\n MILLISECOND: 1,\n\n /**\n * One second in milliseconds\n */\n SECOND: 1000,\n\n /**\n * One minute in milliseconds\n */\n MINUTE: 60000,\n\n /**\n * One hour in milliseconds\n */\n HOUR: 3600000,\n\n /**\n * One day in milliseconds\n */\n DAY: 86400000,\n\n /**\n * One week in milliseconds\n */\n WEEK: 604800000,\n\n /**\n * One month in milliseconds (30 days average)\n */\n MONTH: 2592000000,\n\n /**\n * One year in milliseconds (365 days)\n */\n YEAR: 31536000000,\n\n // Time unit ratios\n /**\n * Number of milliseconds in one second\n */\n MILLISECONDS_PER_SECOND: 1000,\n\n /**\n * Number of seconds in one minute\n */\n SECONDS_PER_MINUTE: 60,\n\n /**\n * Number of minutes in one hour\n */\n MINUTES_PER_HOUR: 60,\n\n /**\n * Number of hours in one day\n */\n HOURS_PER_DAY: 24,\n\n /**\n * Number of days in one week\n */\n DAYS_PER_WEEK: 7,\n\n /**\n * Number of days in one month (average)\n */\n DAYS_PER_MONTH: 30,\n\n /**\n * Number of days in one year\n */\n DAYS_PER_YEAR: 365,\n\n /**\n * Number of weeks in one year\n */\n WEEKS_PER_YEAR: 52,\n\n /**\n * Number of months in one year\n */\n MONTHS_PER_YEAR: 12,\n\n // Common durations in milliseconds\n /**\n * 100 milliseconds\n */\n HUNDRED_MS: 100,\n\n /**\n * 250 milliseconds\n */\n QUARTER_SECOND: 250,\n\n /**\n * 500 milliseconds (half second)\n */\n HALF_SECOND: 500,\n\n /**\n * 2 seconds in milliseconds\n */\n TWO_SECONDS: 2000,\n\n /**\n * 3 seconds in milliseconds\n */\n THREE_SECONDS: 3000,\n\n /**\n * 5 seconds in milliseconds\n */\n FIVE_SECONDS: 5000,\n\n /**\n * 10 seconds in milliseconds\n */\n TEN_SECONDS: 10000,\n\n /**\n * 30 seconds in milliseconds\n */\n THIRTY_SECONDS: 30000,\n\n /**\n * 2 minutes in milliseconds\n */\n TWO_MINUTES: 120000,\n\n /**\n * 5 minutes in milliseconds\n */\n FIVE_MINUTES: 300000,\n\n /**\n * 10 minutes in milliseconds\n */\n TEN_MINUTES: 600000,\n\n /**\n * 15 minutes in milliseconds\n */\n FIFTEEN_MINUTES: 900000,\n\n /**\n * 30 minutes in milliseconds\n */\n THIRTY_MINUTES: 1800000,\n\n /**\n * 1 hour in milliseconds\n */\n ONE_HOUR: 3600000,\n\n /**\n * 2 hours in milliseconds\n */\n TWO_HOURS: 7200000,\n\n /**\n * 6 hours in milliseconds\n */\n SIX_HOURS: 21600000,\n\n /**\n * 12 hours in milliseconds\n */\n TWELVE_HOURS: 43200000,\n\n // Default values\n /**\n * Default timeout duration in milliseconds (5 seconds)\n */\n DEFAULT_TIMEOUT: 5000,\n\n /**\n * Default short timeout in milliseconds (1 second)\n */\n DEFAULT_SHORT_TIMEOUT: 1000,\n\n /**\n * Default long timeout in milliseconds (30 seconds)\n */\n DEFAULT_LONG_TIMEOUT: 30000,\n\n /**\n * Default retry delay in milliseconds (100ms)\n */\n DEFAULT_RETRY_DELAY: 100,\n\n /**\n * Default exponential backoff base delay in milliseconds (1 second)\n */\n DEFAULT_BACKOFF_BASE: 1000,\n\n /**\n * Default maximum backoff delay in milliseconds (30 seconds)\n */\n DEFAULT_MAX_BACKOFF: 30000,\n\n /**\n * Default number of retry attempts\n */\n DEFAULT_RETRY_ATTEMPTS: 3,\n\n /**\n * Default debounce delay in milliseconds (50ms)\n */\n DEFAULT_DEBOUNCE_DELAY: 50,\n\n /**\n * Default throttle delay in milliseconds (100ms)\n */\n DEFAULT_THROTTLE_DELAY: 100,\n\n /**\n * Default animation frame duration in milliseconds (~60fps)\n */\n DEFAULT_ANIMATION_FRAME: 16.67,\n\n /**\n * Default transition duration in milliseconds (300ms)\n */\n DEFAULT_TRANSITION_DURATION: 300,\n\n /**\n * Default cache time-to-live in seconds (5 minutes)\n */\n DEFAULT_CACHE_TTL: 300,\n\n /**\n * Default short cache TTL in seconds (1 minute)\n */\n DEFAULT_SHORT_CACHE_TTL: 60,\n\n /**\n * Default long cache TTL in seconds (1 hour)\n */\n DEFAULT_LONG_CACHE_TTL: 3600,\n\n /**\n * Default session timeout in milliseconds (30 minutes)\n */\n DEFAULT_SESSION_TIMEOUT: 1800000,\n\n /**\n * Default idle timeout in milliseconds (15 minutes)\n */\n DEFAULT_IDLE_TIMEOUT: 900000,\n\n /**\n * Default poll interval in milliseconds (5 seconds)\n */\n DEFAULT_POLL_INTERVAL: 5000,\n\n /**\n * Default heartbeat interval in milliseconds (30 seconds)\n */\n DEFAULT_HEARTBEAT_INTERVAL: 30000,\n\n // Network and ports\n /**\n * Default port number for servers\n */\n DEFAULT_PORT: 3000,\n\n /**\n * Default HTTP port\n */\n HTTP_PORT: 80,\n\n /**\n * Default HTTPS port\n */\n HTTPS_PORT: 443,\n\n /**\n * Default WebSocket port\n */\n WEBSOCKET_PORT: 8080,\n\n /**\n * Default database port (PostgreSQL)\n */\n DATABASE_PORT: 5432,\n\n /**\n * Default Redis port\n */\n REDIS_PORT: 6379,\n\n // WebSocket specific\n /**\n * WebSocket normal closure code\n */\n WEBSOCKET_CLOSE_NORMAL: 1000,\n\n /**\n * WebSocket going away code\n */\n WEBSOCKET_CLOSE_GOING_AWAY: 1001,\n\n /**\n * WebSocket protocol error code\n */\n WEBSOCKET_CLOSE_PROTOCOL_ERROR: 1002,\n\n /**\n * WebSocket unsupported data code\n */\n WEBSOCKET_CLOSE_UNSUPPORTED: 1003,\n\n /**\n * WebSocket abnormal closure code\n */\n WEBSOCKET_CLOSE_ABNORMAL: 1006,\n\n /**\n * WebSocket retry delay in milliseconds (500ms)\n */\n WEBSOCKET_RETRY_DELAY: 500,\n\n /**\n * WebSocket ping interval in milliseconds (30 seconds)\n */\n WEBSOCKET_PING_INTERVAL: 30000,\n\n /**\n * WebSocket reconnect delay in milliseconds (1 second)\n */\n WEBSOCKET_RECONNECT_DELAY: 1000,\n\n /**\n * WebSocket max reconnect delay in milliseconds (30 seconds)\n */\n WEBSOCKET_MAX_RECONNECT_DELAY: 30000,\n} as const;\n\n/**\n * Type for time constant values\n */\nexport type TimeConstant = (typeof TIME_CONSTANTS)[keyof typeof TIME_CONSTANTS];\n","/**\n * Mathematical Constants\n *\n * Common mathematical values, number system bases, and calculation constants\n * used throughout the application for various computations.\n *\n * @module math/constants\n */\n\n/**\n * Number system base constants\n */\nexport const NUMBER_SYSTEM = {\n // Number bases\n /**\n * Base 2 - Binary number system\n */\n BINARY_BASE: 2,\n\n /**\n * Base 8 - Octal number system\n */\n OCTAL_BASE: 8,\n\n /**\n * Base 10 - Decimal number system\n */\n DECIMAL_BASE: 10,\n\n /**\n * Base 12 - Duodecimal number system\n */\n DUODECIMAL_BASE: 12,\n\n /**\n * Base 16 - Hexadecimal number system\n */\n HEX_BASE: 16,\n\n /**\n * Base 32 - Base32 encoding\n */\n BASE32: 32,\n\n /**\n * Base 36 - Alphanumeric number system (0-9, a-z)\n */\n BASE36: 36,\n\n /**\n * Base 58 - Bitcoin base58 encoding (excludes similar looking characters)\n */\n BASE58: 58,\n\n /**\n * Base 62 - Alphanumeric with uppercase (0-9, a-z, A-Z)\n */\n BASE62: 62,\n\n /**\n * Base 64 - Base64 encoding\n */\n BASE64: 64,\n\n // Formatting and padding\n /**\n * Default padding length for hexadecimal values (e.g., \"0F\" instead of \"F\")\n */\n HEX_PAD_LENGTH: 2,\n\n /**\n * Padding length for RGB hex colors (6 characters)\n */\n HEX_COLOR_LENGTH: 6,\n\n /**\n * Padding length for RGBA hex colors with alpha (8 characters)\n */\n HEX_COLOR_ALPHA_LENGTH: 8,\n\n /**\n * Standard byte size in bits\n */\n BITS_PER_BYTE: 8,\n\n /**\n * Standard nibble size in bits (half byte)\n */\n BITS_PER_NIBBLE: 4,\n\n /**\n * Number of bytes in a kilobyte (binary)\n */\n BYTES_PER_KB: 1024,\n\n /**\n * Number of bytes in a megabyte (binary)\n */\n BYTES_PER_MB: 1048576,\n\n /**\n * Number of bytes in a gigabyte (binary)\n */\n BYTES_PER_GB: 1073741824,\n\n // Precision and rounding\n /**\n * Default decimal places for currency\n */\n CURRENCY_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for percentages\n */\n PERCENTAGE_DECIMAL_PLACES: 2,\n\n /**\n * Default decimal places for coordinates\n */\n COORDINATE_DECIMAL_PLACES: 6,\n\n /**\n * Maximum safe integer in JavaScript\n */\n MAX_SAFE_INTEGER: 9007199254740991,\n\n /**\n * Minimum safe integer in JavaScript\n */\n MIN_SAFE_INTEGER: -9007199254740991,\n\n /**\n * Maximum 32-bit signed integer\n */\n MAX_INT32: 2147483647,\n\n /**\n * Minimum 32-bit signed integer\n */\n MIN_INT32: -2147483648,\n\n /**\n * Maximum 16-bit unsigned integer\n */\n MAX_UINT16: 65535,\n\n /**\n * Maximum 8-bit unsigned integer\n */\n MAX_UINT8: 255,\n\n // Common angles in degrees\n /**\n * Full circle in degrees\n */\n DEGREES_FULL_CIRCLE: 360,\n\n /**\n * Half circle in degrees\n */\n DEGREES_HALF_CIRCLE: 180,\n\n /**\n * Quarter circle in degrees (right angle)\n */\n DEGREES_RIGHT_ANGLE: 90,\n\n /**\n * Degrees in a radian\n */\n DEGREES_PER_RADIAN: 57.29577951308232,\n\n /**\n * Radians in a degree\n */\n RADIANS_PER_DEGREE: 0.017453292519943295,\n\n // Mathematical constants\n /**\n * Pi (π)\n */\n PI: 3.141592653589793,\n\n /**\n * Two times Pi (2π) - full circle in radians\n */\n TWO_PI: 6.283185307179586,\n\n /**\n * Half Pi (π/2) - quarter circle in radians\n */\n HALF_PI: 1.5707963267948966,\n\n /**\n * Euler's number (e)\n */\n E: 2.718281828459045,\n\n /**\n * Golden ratio (φ)\n */\n GOLDEN_RATIO: 1.618033988749895,\n\n /**\n * Square root of 2\n */\n SQRT2: 1.4142135623730951,\n\n /**\n * Square root of 3\n */\n SQRT3: 1.7320508075688772,\n\n /**\n * Natural logarithm of 2\n */\n LN2: 0.6931471805599453,\n\n /**\n * Natural logarithm of 10\n */\n LN10: 2.302585092994046,\n\n /**\n * Base 2 logarithm of E\n */\n LOG2E: 1.4426950408889634,\n\n /**\n * Base 10 logarithm of E\n */\n LOG10E: 0.4342944819032518,\n} as const;\n\n/**\n * Mathematical and percentage constants\n */\nexport const MATH_CONSTANTS = {\n /**\n * Half value (50%)\n */\n HALF: 0.5,\n\n /**\n * One tenth (10%)\n */\n TENTH: 0.1,\n\n /**\n * One twentieth (5%)\n */\n TWENTIETH: 0.05,\n\n /**\n * 95th percentile\n */\n PERCENT_95: 0.95,\n\n /**\n * 99th percentile\n */\n PERCENT_99: 0.99,\n\n /**\n * Threshold for quadratic algorithm detection\n */\n QUADRATIC_THRESHOLD: 1.5,\n\n /**\n * Threshold for exponential algorithm detection\n */\n EXPONENTIAL_THRESHOLD: 3,\n\n /**\n * Multiplier for variance calculations\n */\n VARIANCE_MULTIPLIER: 4,\n\n /**\n * Offset for variance calculations\n */\n VARIANCE_OFFSET: 2,\n} as const;\n\n/**\n * Type for number system values\n */\nexport type NumberSystemBase = (typeof NUMBER_SYSTEM)[keyof typeof NUMBER_SYSTEM];\n\n/**\n * Type for math constant values\n */\nexport type MathConstant = (typeof MATH_CONSTANTS)[keyof typeof MATH_CONSTANTS];\n","/**\n * Performance Module\n *\n * Performance monitoring and benchmarking constants used for\n * measuring application performance, detecting memory leaks,\n * and configuring performance tests.\n *\n * @module performance\n */\n\n/**\n * Performance measurement constants\n */\nexport const PERFORMANCE_CONSTANTS = {\n /**\n * Threshold for detecting memory leaks (10% growth)\n */\n MEMORY_LEAK_THRESHOLD: 0.1,\n\n /**\n * Default number of benchmark runs for performance testing\n */\n DEFAULT_BENCHMARK_RUNS: 100,\n\n /**\n * Default number of warmup runs before benchmarking\n */\n DEFAULT_WARMUP_RUNS: 10,\n} as const;\n\n/**\n * Type for performance constant values\n */\nexport type PerformanceConstant =\n (typeof PERFORMANCE_CONSTANTS)[keyof typeof PERFORMANCE_CONSTANTS];\n","/**\n * Network-related Constants\n *\n * Constants for network operations including IP addresses,\n * byte ranges, and process identifiers.\n *\n * @module network/constants\n */\n\n/**\n * Network and connection constants\n */\nexport const NETWORK_CONSTANTS = {\n /**\n * Minimum value for an IPv4 octet (excluding 0 for first octet)\n */\n IPV4_OCTET_MIN: 1,\n\n /**\n * Maximum value for an IPv4 octet\n */\n IPV4_OCTET_MAX: 255,\n\n /**\n * Number of octets in an IPv4 address\n */\n IPV4_OCTET_COUNT: 4,\n\n /**\n * Maximum value for a random byte (256 exclusive)\n */\n RANDOM_BYTE_MAX: 256,\n\n /**\n * Default maximum process ID for testing\n */\n DEFAULT_PROCESS_ID_MAX: 10000,\n} as const;\n\n/**\n * Type for network constant values\n */\nexport type NetworkConstant = (typeof NETWORK_CONSTANTS)[keyof typeof NETWORK_CONSTANTS];\n","/**\n * Display and Character Constants\n *\n * Constants for display formatting, charting,\n * and character code operations.\n *\n * @module display/constants\n */\n\n/**\n * Display and chart formatting constants\n */\nexport const DISPLAY_CONSTANTS = {\n /**\n * Maximum length for chart bar display\n */\n CHART_BAR_MAX_LENGTH: 40,\n\n /**\n * Length of chart separator lines\n */\n CHART_SEPARATOR_LENGTH: 60,\n\n /**\n * Number of decimal places for display precision\n */\n DECIMAL_PRECISION: 3,\n} as const;\n\n/**\n * Character code constants\n */\nexport const CHAR_CODES = {\n /**\n * ASCII code for lowercase 'a'\n */\n LOWERCASE_A: 97,\n\n /**\n * Number of letters in the alphabet\n */\n ALPHABET_SIZE: 26,\n\n /**\n * ASCII code for space character\n */\n SPACE: 32,\n} as const;\n\n/**\n * Type for display constant values\n */\nexport type DisplayConstant = (typeof DISPLAY_CONSTANTS)[keyof typeof DISPLAY_CONSTANTS];\n\n/**\n * Type for character code values\n */\nexport type CharCode = (typeof CHAR_CODES)[keyof typeof CHAR_CODES];\n","export const SOCIAL_LINKS = {\n x: 'https://x.com/Plyaz_',\n instagram: 'https://instagram.com/plyaz_',\n linkedin: 'https://linkedin.com/company/plyaz',\n} as const;\n\nexport const PRODUCT_LINKS = {\n docs: 'https://plyaz.gitbook.io/plyaz',\n community: 'https://community.plyaz.co.uk',\n support: 'mailto:help@plyaz.co.uk',\n} as const;\n\nexport const BLOG = {\n INITIAL_POSTS_TO_SHOW: 3,\n POSTS_INCREMENT: 3,\n ANIMATION_DELAY: 100,\n} as const;","/**\n * Accessibility (a11y) Constants\n *\n * WCAG compliance constants, ARIA attributes, color contrast calculations,\n * and other accessibility-related values used throughout the application.\n *\n * @module a11y/constants\n */\n\n/**\n * Core accessibility constants for testing and validation\n */\nexport const A11Y_CONSTANTS = {\n // Focus and interaction timing\n /**\n * Delay before checking focus state (milliseconds)\n */\n FOCUS_CHECK_DELAY: 100,\n\n /**\n * Maximum number of tab key presses for focus testing\n */\n FOCUS_TAB_COUNT: 10,\n\n /**\n * Minimum time for focus to be visible (milliseconds)\n */\n MIN_FOCUS_VISIBLE_TIME: 200,\n\n /**\n * Maximum time to wait for focus change (milliseconds)\n */\n MAX_FOCUS_WAIT_TIME: 3000,\n\n /**\n * Debounce delay for screen reader announcements (milliseconds)\n */\n SCREEN_READER_DEBOUNCE: 150,\n\n // Text size thresholds\n /**\n * Minimum font size for large text (points)\n */\n MIN_LARGE_TEXT_SIZE: 18,\n\n /**\n * Minimum font size for bold large text (points)\n */\n MIN_LARGE_TEXT_BOLD_SIZE: 14,\n\n /**\n * Minimum font size for normal text (points)\n */\n MIN_NORMAL_TEXT_SIZE: 14,\n\n /**\n * Minimum touch target size (pixels) - WCAG 2.5.5\n */\n MIN_TOUCH_TARGET_SIZE: 44,\n\n /**\n * Minimum touch target size for inline elements (pixels)\n */\n MIN_INLINE_TARGET_SIZE: 24,\n\n // Color and contrast calculations\n /**\n * Maximum value for RGB color channels\n */\n COLOR_CHANNEL_MAX: 255,\n\n /**\n * sRGB threshold for luminance calculation\n */\n SRGB_THRESHOLD: 0.03928,\n\n /**\n * sRGB divisor for linear conversion\n */\n SRGB_DIVISOR: 12.92,\n\n /**\n * sRGB offset for gamma correction\n */\n SRGB_OFFSET: 0.055,\n\n /**\n * sRGB scale factor for gamma correction\n */\n SRGB_SCALE: 1.055,\n\n /**\n * sRGB exponent for gamma correction\n */\n SRGB_EXPONENT: 2.4,\n\n /**\n * Red channel weight for luminance calculation\n */\n LUMINANCE_RED: 0.2126,\n\n /**\n * Green channel weight for luminance calculation\n */\n LUMINANCE_GREEN: 0.7152,\n\n /**\n * Blue channel weight for luminance calculation\n */\n LUMINANCE_BLUE: 0.0722,\n\n /**\n * Offset added to luminance for contrast ratio calculation\n */\n LUMINANCE_OFFSET: 0.05,\n\n // WCAG contrast ratios\n /**\n * Minimum contrast ratio for AA compliance (normal text)\n */\n CONTRAST_RATIO_AA: 4.5,\n\n /**\n * Minimum contrast ratio for AA compliance (large text)\n */\n CONTRAST_RATIO_AA_LARGE: 3,\n\n /**\n * Minimum contrast ratio for AAA compliance (normal text)\n */\n CONTRAST_RATIO_AAA: 7,\n\n /**\n * Minimum contrast ratio for AAA compliance (large text)\n */\n CONTRAST_RATIO_AAA_LARGE: 4.5,\n\n /**\n * Minimum contrast ratio for non-text elements (graphics, UI components)\n */\n CONTRAST_RATIO_GRAPHICS: 3,\n\n /**\n * Maximum percentage value\n */\n PERCENTAGE_MAX: 100,\n\n // Animation and motion\n /**\n * Maximum duration for essential animations (milliseconds)\n */\n MAX_ESSENTIAL_ANIMATION_DURATION: 5000,\n\n /**\n * Default duration for reduced motion (milliseconds)\n */\n REDUCED_MOTION_DURATION: 1,\n\n /**\n * Maximum flashes per second to avoid seizures (WCAG 2.3.1)\n */\n MAX_FLASH_RATE: 3,\n\n /**\n * Minimum time between auto-updating content (seconds)\n */\n MIN_AUTO_UPDATE_INTERVAL: 5,\n\n // Timing and session\n /**\n * Minimum warning time before timeout (seconds) - WCAG 2.2.1\n */\n MIN_TIMEOUT_WARNING: 20,\n\n /**\n * Default session timeout (minutes)\n */\n DEFAULT_SESSION_TIMEOUT: 20,\n\n /**\n * Extended session timeout for accessibility (minutes)\n */\n EXTENDED_SESSION_TIMEOUT: 120,\n\n // Audio and video\n /**\n * Maximum background audio level (dB) - WCAG 1.4.7\n */\n MAX_BACKGROUND_AUDIO_LEVEL: -20,\n\n /**\n * Default caption offset from bottom (pixels)\n */\n DEFAULT_CAPTION_OFFSET: 50,\n\n /**\n * Minimum caption font size (pixels)\n */\n MIN_CAPTION_FONT_SIZE: 16,\n\n /**\n * Default audio description delay (milliseconds)\n */\n AUDIO_DESCRIPTION_DELAY: 100,\n\n // Form validation\n /**\n * Delay before showing validation errors (milliseconds)\n */\n VALIDATION_DELAY: 1000,\n\n /**\n * Maximum error message length for screen readers\n */\n MAX_ERROR_MESSAGE_LENGTH: 150,\n\n /**\n * Minimum password length for accessibility\n */\n MIN_PASSWORD_LENGTH: 8,\n\n // Zoom and scaling\n /**\n * Maximum zoom level without horizontal scrolling (percentage)\n */\n MAX_ZOOM_WITHOUT_SCROLL: 200,\n\n /**\n * Minimum zoom level supported (percentage)\n */\n MIN_ZOOM_LEVEL: 50,\n\n /**\n * Maximum zoom level supported (percentage)\n */\n MAX_ZOOM_LEVEL: 500,\n\n // Reading and comprehension\n /**\n * Maximum line length for readability (characters)\n */\n MAX_LINE_LENGTH: 80,\n\n /**\n * Optimal line length for reading (characters)\n */\n OPTIMAL_LINE_LENGTH: 66,\n\n /**\n * Minimum line height for readability\n */\n MIN_LINE_HEIGHT: 1.5,\n\n /**\n * Maximum paragraph width for readability (pixels)\n */\n MAX_PARAGRAPH_WIDTH: 600,\n} as const;\n\n/**\n * ARIA roles for semantic HTML\n */\nexport const ARIA_ROLES = {\n // Landmark roles\n BANNER: 'banner',\n COMPLEMENTARY: 'complementary',\n CONTENTINFO: 'contentinfo',\n FORM: 'form',\n MAIN: 'main',\n NAVIGATION: 'navigation',\n REGION: 'region',\n SEARCH: 'search',\n\n // Structure roles\n APPLICATION: 'application',\n ARTICLE: 'article',\n CELL: 'cell',\n COLUMNHEADER: 'columnheader',\n DEFINITION: 'definition',\n DIRECTORY: 'directory',\n DOCUMENT: 'document',\n FEED: 'feed',\n FIGURE: 'figure',\n GROUP: 'group',\n HEADING: 'heading',\n IMG: 'img',\n LIST: 'list',\n LISTITEM: 'listitem',\n MATH: 'math',\n NOTE: 'note',\n PRESENTATION: 'presentation',\n ROW: 'row',\n ROWGROUP: 'rowgroup',\n ROWHEADER: 'rowheader',\n SEPARATOR: 'separator',\n TABLE: 'table',\n TERM: 'term',\n\n // Widget roles\n ALERT: 'alert',\n ALERTDIALOG: 'alertdialog',\n BUTTON: 'button',\n CHECKBOX: 'checkbox',\n COMBOBOX: 'combobox',\n DIALOG: 'dialog',\n GRIDCELL: 'gridcell',\n LINK: 'link',\n LISTBOX: 'listbox',\n LOG: 'log',\n MARQUEE: 'marquee',\n MENU: 'menu',\n MENUBAR: 'menubar',\n MENUITEM: 'menuitem',\n MENUITEMCHECKBOX: 'menuitemcheckbox',\n MENUITEMRADIO: 'menuitemradio',\n OPTION: 'option',\n PROGRESSBAR: 'progressbar',\n RADIO: 'radio',\n RADIOGROUP: 'radiogroup',\n SCROLLBAR: 'scrollbar',\n SEARCHBOX: 'searchbox',\n SLIDER: 'slider',\n SPINBUTTON: 'spinbutton',\n STATUS: 'status',\n SWITCH: 'switch',\n TAB: 'tab',\n TABLIST: 'tablist',\n TABPANEL: 'tabpanel',\n TEXTBOX: 'textbox',\n TIMER: 'timer',\n TOOLBAR: 'toolbar',\n TOOLTIP: 'tooltip',\n TREE: 'tree',\n TREEGRID: 'treegrid',\n TREEITEM: 'treeitem',\n\n // Abstract roles (should not be used directly)\n COMMAND: 'command',\n COMPOSITE: 'composite',\n INPUT: 'input',\n LANDMARK: 'landmark',\n RANGE: 'range',\n ROLETYPE: 'roletype',\n SECTION: 'section',\n SECTIONHEAD: 'sectionhead',\n SELECT: 'select',\n STRUCTURE: 'structure',\n WIDGET: 'widget',\n WINDOW: 'window',\n} as const;\n\n/**\n * Common ARIA attributes\n */\nexport const ARIA_ATTRIBUTES = {\n // Widget attributes\n ARIA_AUTOCOMPLETE: 'aria-autocomplete',\n ARIA_CHECKED: 'aria-checked',\n ARIA_DISABLED: 'aria-disabled',\n ARIA_ERRORMESSAGE: 'aria-errormessage',\n ARIA_EXPANDED: 'aria-expanded',\n ARIA_HASPOPUP: 'aria-haspopup',\n ARIA_HIDDEN: 'aria-hidden',\n ARIA_INVALID: 'aria-invalid',\n ARIA_LABEL: 'aria-label',\n ARIA_LEVEL: 'aria-level',\n ARIA_MODAL: 'aria-modal',\n ARIA_MULTILINE: 'aria-multiline',\n ARIA_MULTISELECTABLE: 'aria-multiselectable',\n ARIA_ORIENTATION: 'aria-orientation',\n ARIA_PLACEHOLDER: 'aria-placeholder',\n ARIA_PRESSED: 'aria-pressed',\n ARIA_READONLY: 'aria-readonly',\n ARIA_REQUIRED: 'aria-required',\n ARIA_SELECTED: 'aria-selected',\n ARIA_SORT: 'aria-sort',\n ARIA_VALUEMAX: 'aria-valuemax',\n ARIA_VALUEMIN: 'aria-valuemin',\n ARIA_VALUENOW: 'aria-valuenow',\n ARIA_VALUETEXT: 'aria-valuetext',\n\n // Live region attributes\n ARIA_LIVE: 'aria-live',\n ARIA_ATOMIC: 'aria-atomic',\n ARIA_RELEVANT: 'aria-relevant',\n ARIA_BUSY: 'aria-busy',\n\n // Drag and drop attributes\n ARIA_DROPEFFECT: 'aria-dropeffect',\n ARIA_GRABBED: 'aria-grabbed',\n\n // Relationship attributes\n ARIA_ACTIVEDESCENDANT: 'aria-activedescendant',\n ARIA_COLCOUNT: 'aria-colcount',\n ARIA_COLINDEX: 'aria-colindex',\n ARIA_COLSPAN: 'aria-colspan',\n ARIA_CONTROLS: 'aria-controls',\n ARIA_DESCRIBEDBY: 'aria-describedby',\n ARIA_DETAILS: 'aria-details',\n ARIA_FLOWTO: 'aria-flowto',\n ARIA_LABELLEDBY: 'aria-labelledby',\n ARIA_OWNS: 'aria-owns',\n ARIA_POSINSET: 'aria-posinset',\n ARIA_ROWCOUNT: 'aria-rowcount',\n ARIA_ROWINDEX: 'aria-rowindex',\n ARIA_ROWSPAN: 'aria-rowspan',\n ARIA_SETSIZE: 'aria-setsize',\n\n // Global attributes\n ARIA_CURRENT: 'aria-current',\n ARIA_DESCRIPTION: 'aria-description',\n ARIA_KEYSHORTCUTS: 'aria-keyshortcuts',\n ARIA_ROLEDESCRIPTION: 'aria-roledescription',\n} as const;\n\n/**\n * Keyboard navigation constants\n */\nexport const KEYBOARD_CODES = {\n // Navigation keys\n TAB: 'Tab',\n ENTER: 'Enter',\n SPACE: ' ',\n ESCAPE: 'Escape',\n ARROW_UP: 'ArrowUp',\n ARROW_DOWN: 'ArrowDown',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_RIGHT: 'ArrowRight',\n HOME: 'Home',\n END: 'End',\n PAGE_UP: 'PageUp',\n PAGE_DOWN: 'PageDown',\n\n // Legacy key codes (for compatibility)\n TAB_KEYCODE: 9,\n ENTER_KEYCODE: 13,\n ESCAPE_KEYCODE: 27,\n SPACE_KEYCODE: 32,\n ARROW_LEFT_KEYCODE: 37,\n ARROW_UP_KEYCODE: 38,\n ARROW_RIGHT_KEYCODE: 39,\n ARROW_DOWN_KEYCODE: 40,\n} as const;\n\n/**\n * Screen reader announcement priorities\n */\nexport const ANNOUNCEMENT_PRIORITY = {\n /**\n * Polite announcement - waits for current speech to finish\n */\n POLITE: 'polite',\n\n /**\n * Assertive announcement - interrupts current speech\n */\n ASSERTIVE: 'assertive',\n\n /**\n * Off - no announcement\n */\n OFF: 'off',\n} as const;\n\n/**\n * Focus trap configurations\n */\nexport const FOCUS_TRAP = {\n /**\n * Initial focus selector\n */\n INITIAL_FOCUS: '[data-focus-initial], [autofocus]',\n\n /**\n * Focusable elements selector\n */\n FOCUSABLE_ELEMENTS:\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n\n /**\n * Interactive elements selector\n */\n INTERACTIVE_ELEMENTS: 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n\n /**\n * Skip link selector\n */\n SKIP_LINK: '[data-skip-link], .skip-link',\n} as const;\n\n/**\n * Type exports\n */\nexport type A11yConstant = (typeof A11Y_CONSTANTS)[keyof typeof A11Y_CONSTANTS];\nexport type AriaRole = (typeof ARIA_ROLES)[keyof typeof ARIA_ROLES];\nexport type AriaAttribute = (typeof ARIA_ATTRIBUTES)[keyof typeof ARIA_ATTRIBUTES];\nexport type KeyboardCode = (typeof KEYBOARD_CODES)[keyof typeof KEYBOARD_CODES];\nexport type AnnouncementPriority =\n (typeof ANNOUNCEMENT_PRIORITY)[keyof typeof ANNOUNCEMENT_PRIORITY];\n"]}