Server : nginx/1.20.1 System : Linux ccpf-production-2021 5.4.0-148-generic #165-Ubuntu SMP Tue Apr 18 08:53:12 UTC 2023 x86_64 User : forge ( 1000) PHP Version : 7.4.21 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /lib/node_modules/pm2/node_modules/fast-printf/dist/src/ |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tokenize = void 0;
const TokenRule = /(?:%(?<flag>([+0-]|-\+))?(?<width>\d+)?(?<position>\d+\$)?(?<precision>\.\d+)?(?<conversion>[%BCESb-iosux]))|(\\%)/g;
const tokenize = (subject) => {
let matchResult;
const tokens = [];
let argumentIndex = 0;
let lastIndex = 0;
let lastToken = null;
while ((matchResult = TokenRule.exec(subject)) !== null) {
if (matchResult.index > lastIndex) {
lastToken = {
literal: subject.slice(lastIndex, matchResult.index),
type: 'literal',
};
tokens.push(lastToken);
}
const match = matchResult[0];
lastIndex = matchResult.index + match.length;
if (match === '\\%' || match === '%%') {
if (lastToken && lastToken.type === 'literal') {
lastToken.literal += '%';
}
else {
lastToken = {
literal: '%',
type: 'literal',
};
tokens.push(lastToken);
}
}
else if (matchResult.groups) {
lastToken = {
conversion: matchResult.groups.conversion,
flag: matchResult.groups.flag || null,
placeholder: match,
position: matchResult.groups.position ? Number.parseInt(matchResult.groups.position, 10) - 1 : argumentIndex++,
precision: matchResult.groups.precision ? Number.parseInt(matchResult.groups.precision.slice(1), 10) : null,
type: 'placeholder',
width: matchResult.groups.width ? Number.parseInt(matchResult.groups.width, 10) : null,
};
tokens.push(lastToken);
}
}
if (lastIndex <= subject.length - 1) {
if (lastToken && lastToken.type === 'literal') {
lastToken.literal += subject.slice(lastIndex);
}
else {
tokens.push({
literal: subject.slice(lastIndex),
type: 'literal',
});
}
}
return tokens;
};
exports.tokenize = tokenize;