PageSourceSearch

https://www.sistic.com.sg/_next/static/chunks/9049-38d123913013ea47.js

js sistic.com.sg collected 2026-10-01 10:30:51 UTC 16,956 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9049],{9049:(e,i,t)=>{t.d(i,{DT:()=>v,FY:()=>z,Hh:()=>j,Mq:()=>A,QE:()=>P,ZV:()=>w,c4:()=>k,ck:()=>_,cp:()=>D,dD:()=>F,fe:()=>N,gN:()=>C,h4:()=>Z,jX:()=>T,kc:()=>$,nJ:()=>L,vH:()=>O,vb:()=>I,wb:()=>M,yS:()=>E});let r=[/(\b(SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC|EXECUTE|UNION|SCRIPT)\b)/i,/(\b(OR|AND)\s+\d+\s*=\s*\d+)/i,/('|(\\')|(;)|(--)|(\/\*)|(\*\/)|(\%27))/i,/(xp_\w+|sp_\w+|fn_\w+)/i,/(\b(SLEEP|WAITFOR|DELAY|BENCHMARK)\b)/i],n=[/<script[^>]*>.*?<\/script>/gi,/<iframe[^>]*>.*?<\/iframe>/gi,/javascript:/i,/on\w+\s*=\s*["'][^"']*["']/i,/<img[^>]*src\s*=\s*["']?javascript:/i,/<svg[^>]*on\w+\s*=/i,/data:text\/html/i,/vbscript:/i,/expression\s*\(/i],a=[/(\||&&|\|\||`|\$\(|\${)/,/(\b(cat|ls|pwd|whoami|id|uname|ps|kill|rm|cp|mv|chmod|chown)\b)/i,/(\/\w+\/\w+)/,/(cmd|command|powershell|bash|sh|zsh)\s*[;&|]/i],s=[/\.\.(\/|\\)/,/(%2e%2e%2f|%2e%2e%5c)/i,/(\.\.\/|\.\.\\)/,/(^|\/)(etc|proc|sys|dev|boot|root|home|usr|var|tmp|opt)(\/|$)/i],l=[/\x00/,/\x08/,/\x0b/,/\x0c/],o=[/.{1000,}/,/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]/,/(\r\n|\r|\n){10,}/,/[^\x20-\x7e]{50,}/];function c(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"moderate";for(let i of r)if(i.test(e))return{isSuspicious:!0,threatType:"SQL Injection",pattern:i.toString()};for(let i of n)if(i.test(e))return{isSuspicious:!0,threatType:"XSS/Script Injection",pattern:i.toString()};for(let i of a)if(i.test(e))return{isSuspicious:!0,threatType:"Command Injection",pattern:i.toString()};for(let i of s)if(i.test(e))return{isSuspicious:!0,threatType:"Path Traversal",pattern:i.toString()};for(let i of l)if(i.test(e))return{isSuspicious:!0,threatType:"Null Byte Injection",pattern:i.toString()};if("strict"===i||"moderate"===i){let i=e.match(/%[0-9a-f]{2}/gi);if(i&&i.length>5)return{isSuspicious:!0,threatType:"Suspicious Encoding",pattern:"Excessive URL encoding"};let t=e.match(/&#x?[0-9a-f]+;/gi);if(t&&t.length>5)return{isSuspicious:!0,threatType:"Suspicious Encoding",pattern:"Excessive HTML entities"}}if("strict"===i){for(let i of o)if(i.test(e))return{isSuspicious:!0,threatType:"Malformed Input",pattern:i.toString()}}return{isSuspicious:!1}}let u=/^[a-zA-Z0-9](?:[a-zA-Z0-9._-]*[a-zA-Z0-9])?@[a-zA-Z0-9](?:[a-zA-Z0-9.-]*[a-zA-Z0-9])?\.[a-zA-Z]{2,}$/,d=/^[0-9]{8,15}$/,m=/^[a-zA-Z\s'-]+$/,f=/^[a-zA-Z0-9\s'-.&]+$/,p=/^[a-zA-Z0-9\s.,?!:;'-]+$/,g=RegExp("^[\\p{L}\\p{N}\\s'-]*$","u"),V=/^[0-9]+$/,h=/^\d{4}-\d{2}-\d{2}$/,b=/^\d{2}\/\d{2}\/\d{4}$/,y=/^[0-9]+(\.[0-9]{1,2})?$/,x=/^[a-z0-9-]+$/;function S(e){return e.replace(/[\x00-\x1F\x7F]/g,"")}function v(e){if("string"!=typeof e)return{isValid:!1,error:"Email must be a string"};if(c(e,"strict").isSuspicious)return{isValid:!1,error:"Invalid email format: suspicious pattern detected",isSuspicious:!0};let i=e.trim();if(0===i.length)return{isValid:!1,error:"Email cannot be empty"};if(i.length>254)return{isValid:!1,error:"Email exceeds maximum length of ".concat(254," characters")};if(!u.test(i)||i.includes(".."))return{isValid:!1,error:"Invalid email format"};let[t]=i.split("@");return t&&(t.startsWith(".")||t.endsWith("."))?{isValid:!1,error:"Invalid email format"}:{isValid:!0,sanitized:i.toLowerCase()}}function z(e){if("string"!=typeof e)return{isValid:!1,error:"Phone must be a string"};if(c(e,"moderate").isSuspicious)return{isValid:!1,error:"Invalid phone number format",isSuspicious:!0};let i=e.replace(/[\s\-()\+]/g,"");return 0===i.length?{isValid:!1,error:"Phone number cannot be empty"}:d.test(i)?{isValid:!0,sanitized:i}:{isValid:!1,error:"Phone number must contain 8-15 digits only"}}function E(e){if("string"!=typeof e)return{isValid:!1,error:"Name must be a string"};if(c(e,"moderate").isSuspicious)return{isValid:!1,error:"Invalid name format",isSuspicious:!0};let i=S(e.trim());return i.length<1?{isValid:!1,error:"Name must be at least ".concat(1," character")}:i.length>100?{isValid:!1,error:"Name exceeds maximum length of ".concat(100," characters")}:m.test(i)?i.match(/[a-zA-Z]/)?{isValid:!0,sanitized:i}:{isValid:!1,error:"Name must contain at least one letter"}
1:{isValid:!1,error:"Name can only contain letters, spaces, hyphens, and apostrophes"}}function I(e){if("string"!=typeof e)return{isValid:!1,error:"Company name must be a string"};if(c(e,"moderate").isSuspicious)return{isValid:!1,error:"Company name contains invalid characters",isSuspicious:!0};let i=S(e.trim());return 0===i.length?{isValid:!1,error:"Company name cannot be empty"}:i.length>200?{isValid:!1,error:"Company name exceeds maximum length of ".concat(200," characters")}:f.test(i)?{isValid:!0,sanitized:i}:{isValid:!1,error:"Company name contains invalid characters"}}function A(e){if("string"!=typeof e)return{isValid:!1,error:"Message must be a string"};if(c(e,"lenient").isSuspicious)return{isValid:!1,error:"Message contains potentially harmful content",isSuspicious:!0};let i=S(e.trim());return 0===i.length?{isValid:!1,error:"Message cannot be empty"}:i.length>5e3?{isValid:!1,error:"Message exceeds maximum length of ".concat(5e3," characters")}:p.test(i)?{isValid:!0,sanitized:i}:{isValid:!1,error:"Message contains invalid characters"}}function F(e){if(null==e)return{isValid:!1,error:"ID cannot be null or undefined"};let i=String(e);return 0===i.length?{isValid:!1,error:"ID cannot be empty"}:i.length>20?{isValid:!1,error:"ID exceeds maximum length of ".concat(20," characters")}:V.test(i)?{isValid:!0,sanitized:i}:{isValid:!1,error:"ID must contain only digits"}}function w(e){if("string"!=typeof e)return{isValid:!1,error:"Date must be a string"};let i=e.trim();if(0===i.length)return{isValid:!1,error:"Date cannot be empty"};if(h.test(i))return isNaN(new Date(i).getTime())?{isValid:!1,error:"Invalid date"}:{isValid:!0,sanitized:i};if(b.test(i)){let[e,t,r]=i.split("/");return isNaN(new Date("".concat(r,"-").concat(t,"-").concat(e)).getTime())?{isValid:!1,error:"Invalid date"}:{isValid:!0,sanitized:i}}return{isValid:!1,error:"Date must be in YYYY-MM-DD or DD/MM/YYYY format"}}function D(e){if(null==e)return{isValid:!1,error:"Price cannot be null or undefined"};let i=String(e).trim();if(0===i.length)return{isValid:!1,error:"Price cannot be empty"};if(!y.test(i))return{isValid:!1,error:"Price must be a valid number with up to 2 decimal places"};let t=parseFloat(i);return t<0?{isValid:!1,error:"Price cannot be negative"}:t>999999.99?{isValid:!1,error:"Price exceeds maximum value of ".concat(999999.99)}:{isValid:!0,sanitized:i}}function T(e){if(null==e)return{isValid:!1,error:"Alias cannot be null or undefined"};if("string"!=typeof e)return{isValid:!1,error:"Alias must be a string"};if(c(e,"strict").isSuspicious)return{isValid:!1,error:"Invalid alias format: potentially malicious",isSuspicious:!0};let i=e.trim().toLowerCase();return 0===i.length?{isValid:!1,error:"Alias cannot be empty"}:i.length>200?{isValid:!1,error:"Alias exceeds maximum length of ".concat(200," characters")}:x.test(i)?{isValid:!0,sanitized:i}:{isValid:!1,error:"Alias can only contain lowercase letters, numbers, and hyphens"}}function C(e){if(null==e||""===e)return{isValid:!0,sanitized:""};if("string"!=typeof e)return{isValid:!1,error:"Genre IDs must be a string"};let i=e.trim();if(""===i)return{isValid:!0,sanitized:""};let t=i.split(","),r=[];for(let e of t){let i=e.trim();if(""===i)continue;let t=F(i);if(!t.isValid)return{isValid:!1,error:"Invalid genre ID: ".concat(t.error)};r.push(t.sanitized)}return{isValid:!0,sanitized:r.join(",")}}function N(e){let i={},t=[],r=[];for(let[n,a]of Object.entries(e)){let e;if(!/^[a-zA-Z0-9_]+$/.test(n)){t.push("Invalid parameter name: ".concat(n));continue}if(c(n,"strict").isSuspicious){t.push("Invalid parameter name: ".concat(n," (suspicious pattern detected)")),r.push(n);continue}if(null==a)continue;let s=String(a);if("query"===n||"search"===n)e=function(e){if(null==e)return{isValid:!0,sanitized:""};if("string"!=typeof e)return{isValid:!1,error:"Search query must be a string"};let i=c(e,"moderate");if(console.log("denyCheck: ",i),i.isSuspicious)return{isValid:!1,error:"Search query contains invalid characters",isSuspicious:!0};let t=S(e.trim());return t.length>200?{isValid:!1,error:"Search query exceeds maximum length of ".concat(200," characters")}:t.length>
10&&!g.test(t)?{isValid:!1,error:"Search query contains invalid characters"}:{isValid:!0,sanitized:t}}(s);else if("id"===n||"client"===n||"first"===n||"limit"===n)e=F(s);else if("genre"===n||"category"===n||"tags"===n)e=C(s);else if("start_date"===n||"end_date"===n||"eventDate"===n)e=w(s);else if("min_price"===n||"max_price"===n)e=D(s);else if("alias"===n)e=T(s);else{if(c(s,"moderate").isSuspicious){t.push("Parameter ".concat(n,": potentially malicious content detected")),r.push(n);continue}let e=S(s);if(e.length>500){t.push("Parameter ".concat(n," exceeds maximum length"));continue}i[n]=e;continue}e.isValid?i[n]=e.sanitized:(t.push("".concat(n,": ").concat(e.error)),e.isSuspicious&&r.push(n))}let n={isValid:0===t.length,sanitized:i,errors:t};return r.length>0&&(n.suspiciousParams=r),n}function j(e,i){let t={},r={},n=[];for(let[a,s]of Object.entries(e)){let e=i[a];if(!e){r[a]="Unknown field";continue}let l=e(s);l.isValid?t[a]=l.sanitized:(r[a]=l.error||"Invalid value",l.isSuspicious&&n.push(a))}let a={isValid:0===Object.keys(r).length,sanitized:t,errors:r};return n.length>0&&(a.suspiciousFields=n),a}function M(e,i){let t,r,n=w(e),a=w(i);if(!n.isValid)return{isValid:!1,error:"Start date: ".concat(n.error)};if(!a.isValid)return{isValid:!1,error:"End date: ".concat(a.error)};if(n.sanitized.includes("/")){let[e,i,r]=n.sanitized.split("/");t=new Date("".concat(r,"-").concat(i,"-").concat(e))}else t=new Date(n.sanitized);if(a.sanitized.includes("/")){let[e,i,t]=a.sanitized.split("/");r=new Date("".concat(t,"-").concat(i,"-").concat(e))}else r=new Date(a.sanitized);return isNaN(t.getTime())||isNaN(r.getTime())?{isValid:!1,error:"Invalid date format"}:t>r?{isValid:!1,error:"Start date must be before or equal to end date"}:{isValid:!0,sanitized:"".concat(n.sanitized," to ").concat(a.sanitized)}}function _(e,i,t){var r,n,a;let s={},l={},o=[],c=[],u=[],d={},m=null!=(r=null==t?void 0:t.allowExtraFields)&&r,f=null==(n=null==t?void 0:t.strictMissingFields)||n;for(let[t,r]of Object.entries(i)){let i=r.context,n=null!=(a=null==i?void 0:i.required)&&a,s=e[t];n&&(null==s||"string"==typeof s&&""===s.trim())&&(o.push(t),f&&(l[t]="".concat(t," is required")))}for(let[t,r]of Object.entries(i)){let i=e[t],n=r.context,a=r.validator;if((null==i||"string"==typeof i&&""===i.trim())&&!(null==n?void 0:n.required))continue;if((null==n?void 0:n.acceptableValues)&&i){let e=function(e,i){let t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!=typeof e)return{isValid:!1,error:"Value must be a string"};let r=e.trim(),n=t?r:r.toLowerCase();return i.map(e=>t?String(e):String(e).toLowerCase()).includes(n)?{isValid:!0,sanitized:r}:{isValid:!1,error:"Value must be one of: ".concat(i.join(", "))}}(String(i),n.acceptableValues);if(!e.isValid){l[t]=e.error;continue}}if(((null==n?void 0:n.minValue)!==void 0||(null==n?void 0:n.maxValue)!==void 0)&&i){let e=function(e,i,t){let r="string"==typeof e?parseFloat(e):e;return isNaN(r)?{isValid:!1,error:"Value must be a valid number"}:void 0!==i&&r<i?{isValid:!1,error:"Value must be at least ".concat(i)}:void 0!==t&&r>t?{isValid:!1,error:"Value must be at most ".concat(t)}:{isValid:!0,sanitized:String(r)}}(i,n.minValue,n.maxValue);if(!e.isValid){l[t]=e.error;continue}}if((null==n?void 0:n.customRule)&&i){let e=n.customRule(i,n);if(!e.isValid){l[t]=e.error;continue}}let o=a(i);o.isValid?void 0!==o.sanitized?s[t]=o.sanitized:s[t]=i:(l[t]=o.error||"Invalid value",o.isSuspicious&&u.push(t))}if(!m)for(let t of Object.keys(e))t in i||(c.push(t),l[t]="Unknown field");if(s.startDate&&s.endDate){let e=M(s.startDate,s.endDate);e.isValid||(d.dateRange=e.error)}if(s.min_price&&s.max_price){let e=function(e,i){let t=D(e),r=D(i);return t.isValid?r.isValid?parseFloat(t.sanitized)>parseFloat(r.sanitized)?{isValid:!1,error:"Minimum price must be less than or equal to maximum price"}:{isValid:!0,sanitized:"".concat(t.sanitized,"-").concat(r.sanitized)}:{isValid:!1,error:"Max price: ".concat(r.error)}:{isValid:!1,error:"Min price: ".concat(t.error)}}(s.min_price,s.max_price);e.isValid||(d.priceRange=e.error)}for(let[t,r]of Object.entries(i)){let i=r.context,n=s[t]||e[t];if((null==i?void 0:i.dependsOn)&&n){let r={};for(let[t]of Object.keys(i.dependsOn))r[t]=s[t]||e[t];let a=function(e,i,t){if(!e||"string"==typeof e&&""===e.trim())return{isValid:!0,sanitized:e};let r=[];for(let[e,i]of Object.entries(t))i&&("string"!=typeof i||""!==i.trim())||r.push(e);return r.length>0?{isValid:!1,error:"".concat(i," requires the following fields to be provided: ").concat(r.join(", "))}:{isValid:!0,sanitized:e}}(n,t,r);a.isValid||(d[t]=a.error)}}if(s.genre||s.primary_genre){let e=function(e){let i=["CONCERT","THEATRE","MUSICAL","LIFESTYLE","COMEDY","SPORTS","ORCHESTRA","FAMILY_ENTERTAINMENT","FAMILY_DANCE"];if(Array.isArray(e)){let t=e.filter(e=>!i.includes(e.toUpperCase()));return t.length>0?{isValid:!1,error:"Invalid genres: ".concat(t.join(", "),". Valid genres are: ").concat(i.join(", "))}:{isValid:!0,sanitized:e.map(e=>e.toUpperCase()).join(",")}}let t=e.toUpperCase();return i.includes(t)?{isValid:!0,sanitized:t}:{isValid:!1,error:"Genre must be one of: ".concat(i.join(", "))}}(s.genre||s.primary_genre);e.isValid?s.genre=e.sanitized:l.genre=e.error}return{isValid:0===Object.keys(l).length&&0===Object.keys(d).length,sanitized:s,errors:{...l,...d},missingFields:o,extraFields:c,suspiciousFields:u.length>0?u:void 0,consistencyErrors:Object.keys(d).length>0?d:void 0}}let O=["pdf","doc","docx","txt","jpg","jpeg","png"];function R(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:255,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O;if("string"!=typeof e)return{isValid:!1,error:"Filename must be a string"};let r=function(e){let i=e;try{i=decodeURIComponent(e)}catch(t){i=e,console.log("e: ",t)}return(i=(i=i.replace(/[\x00-\x1F\x7F]/g,"")).replace(/[/\\]/g,"")).trim()}(e);if(0===r.length)return{isValid:!1,error:"Filename cannot be empty"};if(r.length>i)return{isValid:!1,error:"Filename exceeds maximum length of ".concat(i," characters")};if(c(r,"strict").isSuspicious)return{isValid:!1,error:"Filename contains potentially malicious content",isSuspicious:!0};let n=(r.match(/\./g)||[]).length;if(0===n)return{isValid:!1,error:"Filename must include a file extension"};if(n>1)return{isValid:!1,error:"Filename can only contain one dot (.) character",isSuspicious:!0};let a=r.lastIndexOf("."),s=r.substring(0,a),l=r.substring(a+1).toLowerCase();return/^[a-zA-Z0-9_-]+$/.test(s)?0===s.length?{isValid:!1,error:"Filename basename cannot be empty"}:s.length>200?{isValid:!1,error:"Filename basename exceeds maximum length"}:t.includes(l)?r.includes("/")||r.includes("\\")?{isValid:!1,error:"Filename cannot contain directory separators",isSuspicious:!0}:{isValid:!0,sanitized:"".concat(s,".").concat(l),extension:l,basename:s}:{isValid:!1,error:"File extension must be one of: ".concat(t.join(", "))}:{isValid:!1,error:"Filename can only contain letters, numbers, hyphens, and underscores",isSuspicious:!0}}function L(e,i){var t,r,n;let a=null!=(t=null==i?void 0:i.maxSizeMB)?t:5,s=null!=(r=null==i?void 0:i.maxLength)?r:255,l=null!=(n=null==i?void 0:i.allowedExtensions)?n:O,o=R(e.name,s,l),c=e.size/1048576<=a;return{...o,sizeValid:c,sizeError:c?void 0:"File size exceeds maximum of ".concat(a,"MB"),isValid:o.isValid&&c}}
1function P(e,i){let t=R(e);if(!t.isValid)return t;let r=i||new Date().toISOString().replace(/[:.]/g,"-").slice(0,19),n=t.basename.replace(/[^a-zA-Z0-9_-]/g,"_"),a=R("".concat(n,"_").concat(r,".").concat(t.extension));return a.isValid?{...t,generatedFilename:a.sanitized}:{...t,error:"Generated filename is invalid: ".concat(a.error),isValid:!1}}function k(e,i){if("string"!=typeof e)return{isValid:!1,error:"File path must be a string"};let t=e;try{t=decodeURIComponent(e)}catch(i){t=e,console.log("e: ",i)}return(t=t.replace(/\x00/g,"")).includes("..")||t.includes("../")||t.includes("..\\")?{isValid:!1,error:"File path contains directory traversal attempts",isSuspicious:!0}:t.startsWith("/")&&!i.startsWith("/")?{isValid:!1,error:"File path cannot be absolute",isSuspicious:!0}:{isValid:!0,sanitized:t}}function $(e,i){var t;let r=null!=(t=null==i?void 0:i.maxFiles)?t:3,n=Array.from(e),a=[],s=[],l=[];if(n.length>r)return s.push({filename:"multiple",error:"Maximum ".concat(r," files allowed")}),{isValid:!1,validFiles:a,errors:s,suspiciousFiles:l};for(let e of n){let t=L(e,i);t.isValid?t.sizeValid?a.push(e):s.push({filename:e.name,error:t.sizeError||"File size exceeds limit"}):(s.push({filename:e.name,error:t.error||t.sizeError||"Invalid file"}),t.isSuspicious&&l.push(e.name))}return{isValid:0===s.length,validFiles:a,errors:s,suspiciousFiles:l}}function Z(e){}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.