Astro+Directus(Visual-Editing)+Snipcart Test-Stack

This commit is contained in:
till committed 2026-06-21 06:27:52 +00:00
commit 1459e99cb0
10119 files changed
+1499318

No files matched your search

+122
View File
@@ -0,0 +1,122 @@
type Token = AlternatorToken | AssertionToken | BackreferenceToken | CharacterToken | CharacterClassCloseToken | CharacterClassHyphenToken | CharacterClassIntersectorToken | CharacterClassOpenToken | CharacterSetToken | DirectiveToken | GroupCloseToken | GroupOpenToken | NamedCalloutToken | QuantifierToken | SubroutineToken;
type TokenCharacterSetKind = 'any' | 'digit' | 'dot' | 'hex' | 'newline' | 'posix' | 'property' | 'space' | 'text_segment' | 'word';
type TokenDirectiveKind = 'flags' | 'keep';
type TokenGroupOpenKind = 'absence_repeater' | 'atomic' | 'capturing' | 'group' | 'lookahead' | 'lookbehind';
type TokenQuantifierKind = 'greedy' | 'lazy' | 'possessive';
type TokenNamedCalloutKind = 'count' | 'cmp' | 'error' | 'fail' | 'max' | 'mismatch' | 'skip' | 'total_count' | 'custom';
type TokenizeOptions = {
flags?: string;
rules?: {
captureGroup?: boolean;
singleline?: boolean;
};
};
declare function tokenize(pattern: string, options?: TokenizeOptions): {
tokens: Array<Token>;
flags: FlagProperties;
};
type AlternatorToken = {
type: 'Alternator';
raw: '|';
};
type AssertionToken = {
type: 'Assertion';
kind: string;
raw: string;
};
type BackreferenceToken = {
type: 'Backreference';
raw: string;
};
type CharacterToken = {
type: 'Character';
value: number;
raw: string;
};
type CharacterClassCloseToken = {
type: 'CharacterClassClose';
raw: ']';
};
type CharacterClassHyphenToken = {
type: 'CharacterClassHyphen';
raw: '-';
};
type CharacterClassIntersectorToken = {
type: 'CharacterClassIntersector';
raw: '&&';
};
type CharacterClassOpenToken = {
type: 'CharacterClassOpen';
negate: boolean;
raw: CharacterClassOpener;
};
type CharacterClassOpener = '[' | '[^';
type CharacterSetToken = {
type: 'CharacterSet';
kind: TokenCharacterSetKind;
value?: string;
negate?: boolean;
raw: string;
};
type DirectiveToken = {
type: 'Directive';
raw: string;
} & ({
kind: 'keep';
flags?: never;
} | {
kind: 'flags';
flags: FlagGroupModifiers;
});
type GroupCloseToken = {
type: 'GroupClose';
raw: ')';
};
type GroupOpenToken = {
type: 'GroupOpen';
kind: TokenGroupOpenKind;
flags?: FlagGroupModifiers;
name?: string;
number?: number;
negate?: boolean;
raw: string;
};
type NamedCalloutToken = {
type: 'NamedCallout';
kind: TokenNamedCalloutKind;
tag: string | null;
arguments: Array<string | number> | null;
raw: string;
};
type QuantifierToken = {
type: 'Quantifier';
kind: TokenQuantifierKind;
min: number;
max: number;
raw: string;
};
type SubroutineToken = {
type: 'Subroutine';
raw: string;
};
type FlagProperties = {
ignoreCase: boolean;
dotAll: boolean;
extended: boolean;
digitIsAscii: boolean;
posixIsAscii: boolean;
spaceIsAscii: boolean;
wordIsAscii: boolean;
textSegmentMode: 'grapheme' | 'word' | null;
};
type FlagGroupModifiers = {
enable?: FlagGroupSwitches;
disable?: FlagGroupSwitches;
};
type FlagGroupSwitches = {
ignoreCase?: true;
dotAll?: true;
extended?: true;
};
export { type AlternatorToken, type AssertionToken, type BackreferenceToken, type CharacterToken, type CharacterClassCloseToken, type CharacterClassHyphenToken, type CharacterClassIntersectorToken, type CharacterClassOpenToken, type CharacterSetToken, type DirectiveToken, type FlagGroupModifiers, type FlagProperties, type GroupCloseToken, type GroupOpenToken, type NamedCalloutToken, type QuantifierToken, type SubroutineToken, type Token, type TokenCharacterSetKind, type TokenDirectiveKind, type TokenNamedCalloutKind, type TokenQuantifierKind, tokenize, };
//# sourceMappingURL=tokenize.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../src/tokenizer/tokenize.ts"],"names":[],"mappings":"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"}
+34
View File
@@ -0,0 +1,34 @@
"use strict";import{cpOf as h,PosixClassNames as G,r as p,throwIfNullish as N}from"../utils.js";const m=p`\[\^?`,b=`c.? | C(?:-.?)?|${p`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${p`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${p`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${p`o\{[^\}]*\}?`}|${p`\d{1,3}`}`,y=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,C=new RegExp(p`
\\ (?:
${b}
| [gk]<[^>]*>?
| [gk]'[^']*'?
| .
)
| \( (?:
\? (?:
[:=!>({]
| <[=!]
| <[^>]*>
| '[^']*'
| ~\|?
| #(?:[^)\\]|\\.?)*
| [^:)]*[:)]
)?
| \*[^\)]*\)?
)?
| (?:${y.source})+
| ${m}
| .
`.replace(/\s+/g,""),"gsu"),T=new RegExp(p`
\\ (?:
${b}
| .
)
| \[:(?:\^?\p{Alpha}+|\^):\]
| ${m}
| &&
| .
`.replace(/\s+/g,""),"gsu");function M(e,n={}){const t={flags:"",...n,rules:{captureGroup:!1,singleline:!1,...n.rules}};if(typeof e!="string")throw new Error("String expected as pattern");const o=Y(t.flags),s=[o.extended],a={captureGroup:t.rules.captureGroup,getCurrentModX(){return s.at(-1)},numOpenGroups:0,popModX(){s.pop()},pushModX(u){s.push(u)},replaceCurrentModX(u){s[s.length-1]=u},singleline:t.rules.singleline};let r=[],i;for(C.lastIndex=0;i=C.exec(e);){const u=F(a,e,i[0],C.lastIndex);u.tokens?r.push(...u.tokens):u.token&&r.push(u.token),u.lastIndex!==void 0&&(C.lastIndex=u.lastIndex)}const l=[];let c=0;r.filter(u=>u.type==="GroupOpen").forEach(u=>{u.kind==="capturing"?u.number=++c:u.raw==="("&&l.push(u)}),c||l.forEach((u,S)=>{u.kind="capturing",u.number=S+1});const g=c||l.length;return{tokens:r.map(u=>u.type==="EscapedNumber"?ee(u,g):u).flat(),flags:o}}function F(e,n,t,o){const[s,a]=t;if(t==="["||t==="[^"){const r=K(n,t,o);return{tokens:r.tokens,lastIndex:r.lastIndex}}if(s==="\\"){if("AbBGyYzZ".includes(a))return{token:w(t,t)};if(/^\\g[<']/.test(t)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name "${t}"`);return{token:R(t)}}if(/^\\k[<']/.test(t)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(t))throw new Error(`Invalid group name "${t}"`);return{token:A(t)}}if(a==="K")return{token:I("keep",t)};if(a==="N"||a==="R")return{token:k("newline",t,{negate:a==="N"})};if(a==="O")return{token:k("any",t)};if(a==="X")return{token:k("text_segment",t)};const r=x(t,{inCharClass:!1});return Array.isArray(r)?{tokens:r}:{token:r}}if(s==="("){if(a==="*")return{token:j(t)};if(t==="(?{")throw new Error(`Unsupported callout "${t}"`);if(t.startsWith("(?#")){if(n[o]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:o+1}}if(/^\(\?[-imx]+[:)]$/.test(t))return{token:L(t,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,t==="("&&!e.captureGroup||t==="(?:")return{token:f("group",t)};if(t==="(?>")return{token:f("atomic",t)};if(t==="(?="||t==="(?!"||t==="(?<="||t==="(?<!")return{token:f(t[2]==="<"?"lookbehind":"lookahead",t,{negate:t.endsWith("!")})};if(t==="("&&e.captureGroup||t.startsWith("(?<")&&t.endsWith(">")||t.startsWith("(?'")&&t.endsWith("'"))return{token:f("capturing",t,{...t!=="("&&{name:t.slice(3,-1)}})};if(t.startsWith("(?~")){if(t==="(?~|")throw new Error(`Unsupported absence function kind "${t}"`);return{token:f("absence_repeater",t)}}throw t==="(?("?new Error(`Unsupported conditional "${t}"`):new Error(`Invalid or unsupported group option "${t}"`)}if(t===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:Q(t)}}if(e.getCurrentModX()){if(t==="#"){const r=n.indexOf(`
`,o);return{lastIndex:r===-1?n.length:r}}if(/^\s$/.test(t)){const r=/\s+/y;return r.lastIndex=o,{lastIndex:r.exec(n)?r.lastIndex:o}}}if(t===".")return{token:k("dot",t)};if(t==="^"||t==="$"){const r=e.singleline?{"^":p`\A`,$:p`\Z`}[t]:t;return{token:w(r,t)}}return t==="|"?{token:P(t)}:y.test(t)?{tokens:te(t)}:{token:d(h(t),t)}}function K(e,n,t){const o=[E(n[1]==="^",n)];let s=1,a;for(T.lastIndex=t;a=T.exec(e);){const r=a[0];if(r[0]==="["&&r[1]!==":")s++,o.push(E(r[1]==="^",r));else if(r==="]"){if(o.at(-1).type==="CharacterClassOpen")o.push(d(93,r));else if(s--,o.push(z(r)),!s)break}else{const i=X(r);Array.isArray(i)?o.push(...i):o.push(i)}}return{tokens:o,lastIndex:T.lastIndex||e.length}}function X(e){if(e[0]==="\\")return x(e,{inCharClass:!0});if(e[0]==="["){const n=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!n||!G.has(n.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return k("posix",e,{value:n.groups.name,negate:!!n.groups.negate})}return e==="-"?U(e):e==="&&"?H(e):d(h(e),e)}function x(e,{inCharClass:n}){const t=e[1];if(t==="c"||t==="C")return Z(e);if("dDhHsSwW".includes(t))return q(e);if(e.startsWith(p`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return V(e)}if(/^\\x[89A-Fa-f]\p{AHex}/u.test(e))try{const o=e.split(/\\x/).slice(1).map(i=>parseInt(i,16)),s=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(o)),a=new TextEncoder;return[...s].map(i=>{const l=[...a.encode(i)].map(c=>`\\x${c.toString(16)}`).join("");return d(h(i),l)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(t==="u"||t==="x")return d(J(e),e);if($.has(t))return d($.get(t),e);if(/\d/.test(t))return W(n,e);if(e==="\\")throw new Error(p`Incomplete escape "\"`);if(t==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return d(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function P(e){return{type:"Alternator",raw:e}}function w(e,n){return{type:"Assertion",kind:e,raw:n}}function A(e){return{type:"Backreference",raw:e}}function d(e,n){return{type:"Character",value:e,raw:n}}function z(e){return{type:"CharacterClassClose",raw:e}}function U(e){return{type:"CharacterClassHyphen",raw:e}}function H(e){return{type:"CharacterClassIntersector",raw:e}}function E(e,n){return{type:"CharacterClassOpen",negate:e,raw:n}}function k(e,n,t={}){return{type:"CharacterSet",kind:e,...t,raw:n}}function I(e,n,t={}){return e==="keep"?{type:"Directive",kind:e,raw:n}:{type:"Directive",kind:e,flags:N(t.flags),raw:n}}function W(e,n){return{type:"EscapedNumber",inCharClass:e,raw:n}}function Q(e){return{type:"GroupClose",raw:e}}function f(e,n,t={}){return{type:"GroupOpen",kind:e,...t,raw:n}}function D(e,n,t,o){return{type:"NamedCallout",kind:e,tag:n,arguments:t,raw:o}}function _(e,n,t,o){return{type:"Quantifier",kind:e,min:n,max:t,raw:o}}function R(e){return{type:"Subroutine",raw:e}}const B=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),$=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function Z(e){const n=e[1]==="c"?e[2]:e[3];if(!n||!/[A-Za-z]/.test(n))throw new Error(`Unsupported control character "${e}"`);return d(h(n.toUpperCase())-64,e)}function L(e,n){let{on:t,off:o}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;o??="";const s=(n.getCurrentModX()||t.includes("x"))&&!o.includes("x"),a=v(t),r=v(o),i={};if(a&&(i.enable=a),r&&(i.disable=r),e.endsWith(")"))return n.replaceCurrentModX(s),I("flags",e,{flags:i});if(e.endsWith(":"))return n.pushModX(s),n.numOpenGroups++,f("group",e,{...(a||r)&&{flags:i}});throw new Error(`Unexpected flag modifier "${e}"`)}function j(e){const n=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);if(!n)throw new Error(`Incomplete or invalid named callout "${e}"`);const{name:t,tag:o,args:s}=n.groups;if(!t)throw new Error(`Invalid named callout "${e}"`);if(o==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);const a=s?s.split(",").filter(g=>g!=="").map(g=>/^[+-]?\d+$/.test(g)?+g:g):[],[r,i,l]=a,c=B.has(t)?t.toLowerCase():"custom";switch(c){case"fail":case"mismatch":case"skip":if(a.length>0)throw new Error(`Named callout arguments not allowed "${a}"`);break;case"error":if(a.length>1)throw new Error(`Named callout allows only one argument "${a}"`);if(typeof r=="string")throw new Error(`Named callout argument must be a number "${r}"`);break;case"max":if(!a.length||a.length>2)throw new Error(`Named callout must have one or two arguments "${a}"`);if(typeof r=="string"&&!/^[A-Za-z_]\w*$/.test(r))throw new Error(`Named callout argument one must be a tag or number "${r}"`);if(a.length===2&&(typeof i=="number"||!/^[<>X]$/.test(i)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${i}"`);break;case"count":case"total_count":if(a.lengtLine truncated
//# sourceMappingURL=tokenize.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../src/tokenizer/tokenize.ts"],
"sourcesContent": ["import {cpOf, PosixClassNames, r, throwIfNullish} from '../utils.js';\n\ntype Token =\n AlternatorToken |\n AssertionToken |\n BackreferenceToken |\n CharacterToken |\n CharacterClassCloseToken |\n CharacterClassHyphenToken |\n CharacterClassIntersectorToken |\n CharacterClassOpenToken |\n CharacterSetToken |\n DirectiveToken |\n GroupCloseToken |\n GroupOpenToken |\n NamedCalloutToken |\n QuantifierToken |\n SubroutineToken;\n\ntype IntermediateToken =\n EscapedNumberToken;\n\ntype TokenCharacterSetKind =\n 'any' |\n 'digit' |\n 'dot' |\n 'hex' |\n 'newline' |\n 'posix' |\n 'property' |\n 'space' |\n 'text_segment' |\n 'word';\n\ntype TokenDirectiveKind =\n 'flags' |\n 'keep';\n\ntype TokenGroupOpenKind =\n 'absence_repeater' |\n 'atomic' |\n 'capturing' |\n 'group' |\n 'lookahead' |\n 'lookbehind';\n\ntype TokenQuantifierKind =\n 'greedy' |\n 'lazy' |\n 'possessive';\n\ntype TokenNamedCalloutKind =\n 'count' |\n 'cmp' |\n 'error' |\n 'fail' |\n 'max' |\n 'mismatch' |\n 'skip' |\n 'total_count' |\n 'custom';\n\nconst charClassOpenPattern = r`\\[\\^?`;\nconst sharedEscapesPattern = `${\n // Control char\n 'c.? | C(?:-.?)?'\n}|${\n // Unicode property; Onig considers `\\p` an identity escape, but e.g. `\\p{`, `\\p{ ^L}`, and\n // `\\p{gc=L}` are invalid\n r`[pP]\\{(?:\\^?[-\\x20_]*[A-Za-z][-\\x20\\w]*\\})?`\n}|${\n // Hex encoded byte sequence; attempt match before other `\\xNN` hex char\n r`x[89A-Fa-f]\\p{AHex}(?:\\\\x[89A-Fa-f]\\p{AHex})*`\n}|${\n // Hex char\n r`u(?:\\p{AHex}{4})? | x\\{[^\\}]*\\}? | x\\p{AHex}{0,2}`\n}|${\n // Enclosed octal code point\n r`o\\{[^\\}]*\\}?`\n}|${\n // Escaped number\n r`\\d{1,3}`\n}`;\n// Even with flag x, Onig doesn't allow whitespace to separate a quantifier from the `?` or `+`\n// that makes it lazy or possessive. Possessive suffixes don't apply to interval quantifiers\nconst quantifierRe = /[?*+][?+]?|\\{(?:\\d+(?:,\\d*)?|,\\d+)\\}\\??/;\nconst tokenRe = new RegExp(r`\n \\\\ (?:\n ${sharedEscapesPattern}\n | [gk]<[^>]*>?\n | [gk]'[^']*'?\n | .\n )\n | \\( (?:\n \\? (?:\n [:=!>({]\n | <[=!]\n | <[^>]*>\n | '[^']*'\n | ~\\|?\n | #(?:[^)\\\\]|\\\\.?)*\n | [^:)]*[:)]\n )?\n | \\*[^\\)]*\\)?\n )?\n | (?:${quantifierRe.source})+\n | ${charClassOpenPattern}\n | .\n`.replace(/\\s+/g, ''), 'gsu');\nconst charClassTokenRe = new RegExp(r`\n \\\\ (?:\n ${sharedEscapesPattern}\n | .\n )\n | \\[:(?:\\^?\\p{Alpha}+|\\^):\\]\n | ${charClassOpenPattern}\n | &&\n | .\n`.replace(/\\s+/g, ''), 'gsu');\n\ntype Context = {\n captureGroup: boolean;\n getCurrentModX(): boolean;\n numOpenGroups: number;\n popModX(): void;\n pushModX(isXOn: boolean): void;\n replaceCurrentModX(isXOn: boolean): void;\n singleline: boolean;\n};\n\ntype TokenizeOptions = {\n flags?: string;\n rules?: {\n captureGroup?: boolean;\n singleline?: boolean;\n };\n};\n\nfunction tokenize(pattern: string, options: TokenizeOptions = {}): {\n tokens: Array<Token>;\n flags: FlagProperties;\n} {\n const opts = {\n flags: '',\n ...options,\n rules: {\n captureGroup: false, // `ONIG_OPTION_CAPTURE_GROUP`\n singleline: false, // `ONIG_OPTION_SINGLELINE`\n ...options.rules,\n },\n };\n if (typeof pattern !== 'string') {\n throw new Error('String expected as pattern');\n }\n const flagProperties = getFlagProperties(opts.flags);\n const xStack = [flagProperties.extended];\n const context: Context = {\n captureGroup: opts.rules.captureGroup,\n // Always at least has the top-level flag x\n getCurrentModX() {return xStack.at(-1)!},\n numOpenGroups: 0,\n popModX() {xStack.pop()},\n pushModX(isXOn) {xStack.push(isXOn)},\n replaceCurrentModX(isXOn) {xStack[xStack.length - 1] = isXOn},\n singleline: opts.rules.singleline,\n };\n let tokens: Array<Token | IntermediateToken> = [];\n let match: RegExpExecArray | null;\n tokenRe.lastIndex = 0;\n while ((match = tokenRe.exec(pattern))) {\n const result = getTokenWithDetails(context, pattern, match[0], tokenRe.lastIndex);\n if (result.tokens) {\n tokens.push(...result.tokens);\n } else if (result.token) {\n tokens.push(result.token);\n }\n if (result.lastIndex !== undefined) {\n tokenRe.lastIndex = result.lastIndex;\n }\n }\n\n const potentialUnnamedCaptureTokens: Array<GroupOpenToken> = [];\n let numNamedAndOptInUnnamedCaptures = 0;\n tokens.filter(t => t.type === 'GroupOpen').forEach(t => {\n if (t.kind === 'capturing') {\n t.number = ++numNamedAndOptInUnnamedCaptures;\n } else if (t.raw === '(') {\n potentialUnnamedCaptureTokens.push(t);\n }\n });\n // Enable unnamed capturing groups if no named captures (when `captureGroup` not enabled)\n if (!numNamedAndOptInUnnamedCaptures) {\n potentialUnnamedCaptureTokens.forEach((t, i) => {\n t.kind = 'capturing';\n t.number = i + 1;\n });\nLine truncated
"mappings": "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 truncated
"names": ["cpOf", "PosixClassNames", "r", "throwIfNullish", "charClassOpenPattern", "sharedEscapesPattern", "quantifierRe", "tokenRe", "charClassTokenRe", "tokenize", "pattern", "options", "opts", "flagProperties", "getFlagProperties", "xStack", "context", "isXOn", "tokens", "match", "result", "getTokenWithDetails", "potentialUnnamedCaptureTokens", "numNamedAndOptInUnnamedCaptures", "t", "i", "numCaptures", "splitEscapedNumberToken", "m", "lastIndex", "m0", "m1", "getAllTokensForCharClass", "createAssertionToken", "createSubroutineToken", "createBackreferenceToken", "createDirectiveToken", "createCharacterSetToken", "tokenizeSharedEscape", "tokenizeNamedCallout", "tokenizeFlagModifier", "createGroupOpenToken", "createGroupCloseToken", "end", "re", "kind", "createAlternatorToken", "splitQuantifierMatch", "createCharacterToken", "opener", "createCharacterClassOpenToken", "numCharClassesOpen", "createCharacterClassCloseToken", "tokenizeAnyTokenWithinCharClass", "raw", "posix", "createCharacterClassHyphenToken", "createCharacterClassIntersectorToken", "inCharClass", "char1", "tokenizeControlCharacter", "tokenizeShorthand", "tokenizeUnicodeProperty", "bytes", "hex", "decoded", "encoder", "char", "byte", "getValidatedHexCharCode", "EscapeCharCodes", "createEscapedNumberToken", "value", "negate", "createNamedCalloutToken", "tag", "args", "createQuantifierToken", "min", "max", "CalloutNames", "on", "off", "enabledFlags", "getFlagGroupSwitches", "disabledFlags", "flagChanges", "callout", "name", "argsArray", "arg", "arg0", "arg1", "arg2", "tokenizeQuantifier", "minStr", "maxStr", "limit", "lower", "p", "neg", "flags", "obj", "token", "matches", "str", "withG", "parts"]
}