{"version":3,"file":"parser.mjs","sources":["../../../../../../../../node_modules/@messageformat/parser/lib/parser.js"],"sourcesContent":["\"use strict\";\n/**\n * An AST parser for ICU MessageFormat strings\n *\n * @packageDocumentation\n * @example\n * ```\n * import { parse } from '@messageformat/parser\n *\n * parse('So {wow}.')\n * [ { type: 'content', value: 'So ' },\n *   { type: 'argument', arg: 'wow' },\n *   { type: 'content', value: '.' } ]\n *\n *\n * parse('Such { thing }. { count, selectordinal, one {First} two {Second}' +\n *       '                  few {Third} other {#th} } word.')\n * [ { type: 'content', value: 'Such ' },\n *   { type: 'argument', arg: 'thing' },\n *   { type: 'content', value: '. ' },\n *   { type: 'selectordinal',\n *     arg: 'count',\n *     cases: [\n *       { key: 'one', tokens: [ { type: 'content', value: 'First' } ] },\n *       { key: 'two', tokens: [ { type: 'content', value: 'Second' } ] },\n *       { key: 'few', tokens: [ { type: 'content', value: 'Third' } ] },\n *       { key: 'other',\n *         tokens: [ { type: 'octothorpe' }, { type: 'content', value: 'th' } ] }\n *     ] },\n *   { type: 'content', value: ' word.' } ]\n *\n *\n * parse('Many{type,select,plural{ numbers}selectordinal{ counting}' +\n *                          'select{ choices}other{ some {type}}}.')\n * [ { type: 'content', value: 'Many' },\n *   { type: 'select',\n *     arg: 'type',\n *     cases: [\n *       { key: 'plural', tokens: [ { type: 'content', value: 'numbers' } ] },\n *       { key: 'selectordinal', tokens: [ { type: 'content', value: 'counting' } ] },\n *       { key: 'select', tokens: [ { type: 'content', value: 'choices' } ] },\n *       { key: 'other',\n *         tokens: [ { type: 'content', value: 'some ' }, { type: 'argument', arg: 'type' } ] }\n *     ] },\n *   { type: 'content', value: '.' } ]\n *\n *\n * parse('{Such compliance')\n * // ParseError: invalid syntax at line 1 col 7:\n * //\n * //  {Such compliance\n * //        ^\n *\n *\n * const msg = '{words, plural, zero{No words} one{One word} other{# words}}'\n * parse(msg)\n * [ { type: 'plural',\n *     arg: 'words',\n *     cases: [\n *       { key: 'zero', tokens: [ { type: 'content', value: 'No words' } ] },\n *       { key: 'one', tokens: [ { type: 'content', value: 'One word' } ] },\n *       { key: 'other',\n *         tokens: [ { type: 'octothorpe' }, { type: 'content', value: ' words' } ] }\n *     ] } ]\n *\n *\n * parse(msg, { cardinal: [ 'one', 'other' ], ordinal: [ 'one', 'two', 'few', 'other' ] })\n * // ParseError: The plural case zero is not valid in this locale at line 1 col 17:\n * //\n * //   {words, plural, zero{\n * //                   ^\n * ```\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseError = void 0;\nexports.parse = parse;\nconst lexer_js_1 = require(\"./lexer.js\");\nconst getContext = (lt) => ({\n    offset: lt.offset,\n    line: lt.line,\n    col: lt.col,\n    text: lt.text,\n    lineBreaks: lt.lineBreaks\n});\nconst isSelectType = (type) => type === 'plural' || type === 'select' || type === 'selectordinal';\nfunction strictArgStyleParam(lt, param) {\n    let value = '';\n    let text = '';\n    for (const p of param) {\n        const pText = p.ctx.text;\n        text += pText;\n        switch (p.type) {\n            case 'content':\n                value += p.value;\n                break;\n            case 'argument':\n            case 'function':\n            case 'octothorpe':\n                value += pText;\n                break;\n            default:\n                throw new ParseError(lt, `Unsupported part in strict mode function arg style: ${pText}`);\n        }\n    }\n    const c = {\n        type: 'content',\n        value: value.trim(),\n        ctx: Object.assign({}, param[0].ctx, { text })\n    };\n    return [c];\n}\nconst strictArgTypes = [\n    'number',\n    'date',\n    'time',\n    'spellout',\n    'ordinal',\n    'duration'\n];\nconst defaultPluralKeys = ['zero', 'one', 'two', 'few', 'many', 'other'];\n/**\n * Thrown by {@link parse} on error\n *\n * @public\n */\nclass ParseError extends Error {\n    /** @internal */\n    constructor(lt, msg) {\n        super(lexer_js_1.lexer.formatError(lt, msg));\n    }\n}\nexports.ParseError = ParseError;\nclass Parser {\n    constructor(src, opt) {\n        var _a, _b, _c, _d;\n        this.lexer = lexer_js_1.lexer.reset(src);\n        this.cardinalKeys = (_a = opt === null || opt === void 0 ? void 0 : opt.cardinal) !== null && _a !== void 0 ? _a : defaultPluralKeys;\n        this.ordinalKeys = (_b = opt === null || opt === void 0 ? void 0 : opt.ordinal) !== null && _b !== void 0 ? _b : defaultPluralKeys;\n        this.strict = (_c = opt === null || opt === void 0 ? void 0 : opt.strict) !== null && _c !== void 0 ? _c : false;\n        this.strictPluralKeys = (_d = opt === null || opt === void 0 ? void 0 : opt.strictPluralKeys) !== null && _d !== void 0 ? _d : true;\n    }\n    parse() {\n        return this.parseBody(false, true);\n    }\n    checkSelectKey(lt, type, key) {\n        if (key[0] === '=') {\n            if (type === 'select') {\n                throw new ParseError(lt, `The case ${key} is not valid with select`);\n            }\n        }\n        else if (type !== 'select') {\n            const keys = type === 'plural' ? this.cardinalKeys : this.ordinalKeys;\n            if (this.strictPluralKeys && keys.length > 0 && !keys.includes(key)) {\n                const msg = `The ${type} case ${key} is not valid in this locale`;\n                throw new ParseError(lt, msg);\n            }\n        }\n    }\n    parseSelect({ value: arg }, inPlural, ctx, type) {\n        const sel = { type, arg, cases: [], ctx };\n        if (type === 'plural' || type === 'selectordinal')\n            inPlural = true;\n        else if (this.strict)\n            inPlural = false;\n        for (const lt of this.lexer) {\n            switch (lt.type) {\n                case 'offset':\n                    if (type === 'select') {\n                        throw new ParseError(lt, 'Unexpected plural offset for select');\n                    }\n                    if (sel.cases.length > 0) {\n                        throw new ParseError(lt, 'Plural offset must be set before cases');\n                    }\n                    sel.pluralOffset = Number(lt.value);\n                    ctx.text += lt.text;\n                    ctx.lineBreaks += lt.lineBreaks;\n                    break;\n                case 'case': {\n                    this.checkSelectKey(lt, type, lt.value);\n                    sel.cases.push({\n                        key: lt.value,\n                        tokens: this.parseBody(inPlural),\n                        ctx: getContext(lt)\n                    });\n                    break;\n                }\n                case 'end':\n                    return sel;\n                /* istanbul ignore next: never happens */\n                default:\n                    throw new ParseError(lt, `Unexpected lexer token: ${lt.type}`);\n            }\n        }\n        throw new ParseError(null, 'Unexpected message end');\n    }\n    parseArgToken(lt, inPlural) {\n        const ctx = getContext(lt);\n        const argType = this.lexer.next();\n        if (!argType)\n            throw new ParseError(null, 'Unexpected message end');\n        ctx.text += argType.text;\n        ctx.lineBreaks += argType.lineBreaks;\n        if (this.strict &&\n            (argType.type === 'func-simple' || argType.type === 'func-args') &&\n            !strictArgTypes.includes(argType.value)) {\n            const msg = `Invalid strict mode function arg type: ${argType.value}`;\n            throw new ParseError(lt, msg);\n        }\n        switch (argType.type) {\n            case 'end':\n                return { type: 'argument', arg: lt.value, ctx };\n            case 'func-simple': {\n                const end = this.lexer.next();\n                if (!end)\n                    throw new ParseError(null, 'Unexpected message end');\n                /* istanbul ignore if: never happens */\n                if (end.type !== 'end') {\n                    throw new ParseError(end, `Unexpected lexer token: ${end.type}`);\n                }\n                ctx.text += end.text;\n                if (isSelectType(argType.value.toLowerCase())) {\n                    throw new ParseError(argType, `Invalid type identifier: ${argType.value}`);\n                }\n                return {\n                    type: 'function',\n                    arg: lt.value,\n                    key: argType.value,\n                    ctx\n                };\n            }\n            case 'func-args': {\n                if (isSelectType(argType.value.toLowerCase())) {\n                    const msg = `Invalid type identifier: ${argType.value}`;\n                    throw new ParseError(argType, msg);\n                }\n                let param = this.parseBody(this.strict ? false : inPlural);\n                if (this.strict && param.length > 0) {\n                    param = strictArgStyleParam(lt, param);\n                }\n                return {\n                    type: 'function',\n                    arg: lt.value,\n                    key: argType.value,\n                    param,\n                    ctx\n                };\n            }\n            case 'select':\n                /* istanbul ignore else: never happens */\n                if (isSelectType(argType.value)) {\n                    return this.parseSelect(lt, inPlural, ctx, argType.value);\n                }\n                else {\n                    throw new ParseError(argType, `Unexpected select type ${argType.value}`);\n                }\n            /* istanbul ignore next: never happens */\n            default:\n                throw new ParseError(argType, `Unexpected lexer token: ${argType.type}`);\n        }\n    }\n    parseBody(inPlural, atRoot) {\n        const tokens = [];\n        let content = null;\n        for (const lt of this.lexer) {\n            if (lt.type === 'argument') {\n                if (content)\n                    content = null;\n                tokens.push(this.parseArgToken(lt, inPlural));\n            }\n            else if (lt.type === 'octothorpe' && inPlural) {\n                if (content)\n                    content = null;\n                tokens.push({ type: 'octothorpe', ctx: getContext(lt) });\n            }\n            else if (lt.type === 'end' && !atRoot) {\n                return tokens;\n            }\n            else {\n                let value = lt.value;\n                if (!inPlural && lt.type === 'quoted' && value[0] === '#') {\n                    if (value.includes('{')) {\n                        const errMsg = `Unsupported escape pattern: ${value}`;\n                        throw new ParseError(lt, errMsg);\n                    }\n                    value = lt.text;\n                }\n                if (content) {\n                    content.value += value;\n                    content.ctx.text += lt.text;\n                    content.ctx.lineBreaks += lt.lineBreaks;\n                }\n                else {\n                    content = { type: 'content', value, ctx: getContext(lt) };\n                    tokens.push(content);\n                }\n            }\n        }\n        if (atRoot)\n            return tokens;\n        throw new ParseError(null, 'Unexpected message end');\n    }\n}\n/**\n * Parse an input string into an array of tokens\n *\n * @public\n * @remarks\n * The parser only supports the default `DOUBLE_OPTIONAL`\n * {@link http://www.icu-project.org/apiref/icu4c/messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b | apostrophe mode}.\n */\nfunction parse(src, options = {}) {\n    const parser = new Parser(src, options);\n    return parser.parse();\n}\n"],"names":["require$$0"],"mappings":"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","x_google_ignoreList":[0]}