/**
 * Minified by jsDelivr using Terser v5.48.0.
 * Original file: /npm/@formatjs/ts-transformer@4.4.17/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{parse}from"@formatjs/icu-messageformat-parser";import{hoistSelectors}from"@formatjs/icu-messageformat-parser/manipulator.js";import{printAST}from"@formatjs/icu-messageformat-parser/printer.js";import*as stringifyNs from"json-stable-stringify";import*as typescript from"typescript";import{format,styleText}from"node:util";import{createHash}from"crypto";import*as path from"path";const LEVEL_COLORS={debug:"green",warn:"yellow",error:"red"};function label(e,t){return`[@formatjs/ts-transformer] [${styleText(LEVEL_COLORS[e],e.toUpperCase())}] ${t}`}async function debug(e,...t){"debug"===process.env.LOG_LEVEL&&(console.error(format(label("debug",e),...t)),console.error("\n"))}function getHashDigest(e,t="md5",s="hex",r=9999){const i=createHash(t);return i.update(e),i.digest(s).slice(0,r)}function interpolateName(e,t,s){let r;const i=e.resourceQuery&&e.resourceQuery.length>1;r="function"==typeof t?t(e.resourcePath,i?e.resourceQuery:void 0):t||"[hash].[ext]";const a=s.context,n=s.content,o=s.regExp;let c="bin",l="file",p="",u="",f="";if(e.resourcePath){const t=path.parse(e.resourcePath);let s=e.resourcePath;t.ext&&(c=t.ext.slice(1)),t.dir&&(l=t.name,s=t.dir+path.sep),void 0!==a?(p=path.relative(a,s+"_").replace(/\\/g,"/").replace(/\.\.(\/)?/g,"_$1"),p=p.slice(0,-1)):p=s.replace(/\\/g,"/").replace(/\.\.(\/)?/g,"_$1"),1===p.length?p="":p.length>1&&(u=path.basename(p))}if(e.resourceQuery&&e.resourceQuery.length>1){f=e.resourceQuery;const t=f.indexOf("#");t>=0&&(f=f.slice(0,t))}let d=r;if(n&&(d=d.replace(/\[(?:([^:\]]+):)?(?:hash|contenthash)(?::([a-z]+\d*[a-z]*))?(?::(\d+))?\]/gi,(e,t,s,r)=>getHashDigest(n,t,s,parseInt(r,10)))),d=d.replace(/\[ext\]/gi,()=>c).replace(/\[name\]/gi,()=>l).replace(/\[path\]/gi,()=>p).replace(/\[folder\]/gi,()=>u).replace(/\[query\]/gi,()=>f),o&&e.resourcePath){const t=e.resourcePath.match(new RegExp(o));t&&t.forEach((e,t)=>{d=d.replace(new RegExp("\\["+t+"\\]","ig"),e)})}return"object"==typeof e.options&&"function"==typeof e.options.customInterpolateName&&(d=e.options.customInterpolateName.call(e,d,t,s)),d}const TRIM_UNICODE_WHITE_SPACE_RE=/^\p{White_Space}+|\p{White_Space}+$/gu,UNICODE_WHITE_SPACE_RE=/\p{White_Space}+/gu;function normalizeMessageWhitespace(e){return e.replace(TRIM_UNICODE_WHITE_SPACE_RE,"").replace(UNICODE_WHITE_SPACE_RE," ")}const stringify=stringifyNs.default||stringifyNs,MESSAGE_DESC_KEYS=["id","defaultMessage","description"];function primitiveToTSNode(e,t){return"string"==typeof t?e.createStringLiteral(t):"number"==typeof t?e.createNumericLiteral(t+""):"boolean"==typeof t?t?e.createTrue():e.createFalse():void 0}function isValidIdentifier(e){try{return new Function(`return {${e}:1}`),!0}catch{return!1}}function objToTSNode(e,t){if("object"==typeof t&&!t)return e.createNull();const s=Object.entries(t).filter(([e,t])=>void 0!==t).map(([t,s])=>e.createPropertyAssignment(isValidIdentifier(t)?t:e.createStringLiteral(t),primitiveToTSNode(e,s)||(Array.isArray(s)?e.createArrayLiteralExpression(s.filter(e=>void 0!==e).map(t=>objToTSNode(e,t))):objToTSNode(e,s))));return e.createObjectLiteralExpression(s)}function messageASTToTSNode(e,t){return e.createArrayLiteralExpression(t.map(t=>objToTSNode(e,t)))}function literalToObj(e,t){return e.isNumericLiteral(t)?+t.text:e.isStringLiteral(t)?t.text:t.kind===e.SyntaxKind.TrueKeyword||t.kind!==e.SyntaxKind.FalseKeyword&&void 0}function objectLiteralExpressionToObj(e,t){return t.properties.reduce((t,s)=>(e.isPropertyAssignment(s)&&s.name&&(e.isIdentifier(s.name)?t[s.name.escapedText.toString()]=literalToObj(e,s.initializer):e.isStringLiteral(s.name)&&(t[s.name.text]=literalToObj(e,s.initializer))),t),{})}const DEFAULT_OPTS={onMsgExtracted:()=>{},onMetaExtracted:()=>{}};function isMultipleMessageDecl(e,t){return e.isIdentifier(t.expression)&&"defineMessages"===t.expression.text}function isSingularMessageDecl(e,t,s){const r=new Set(["FormattedMessage","defineMessage","formatMessage","$formatMessage","$t",...s]);let i="";return e.isCallExpression(t)&&e.isIdentifier(t.expression)?i=t.expression.text:(e.isJsxOpeningElement(t)&&e.isIdentifier(t.tagName)||e.isJsxSelfClosingElement(t)&&e.isIdentifier(t.tagName))&&(i=t.tagName.text),r.has(i)}function evaluateStringConcat(e,t){const s=unwrapTransparentTypeScriptExpression(e,t.right),r=unwrapTransparentTypeScriptExpression(e,t.left);if(!e.isStringLiteral(s))return["",!1];if(e.isStringLiteral(r))return[r.text+s.text,!0];if(e.isBinaryExpression(r)){const[t,i]=evaluateStringConcat(e,r);return[t+s.text,i]}return["",!1]}function unwrapTransparentTypeScriptExpression(e,t){let s=t;for(;e.isAsExpression(s)||e.isSatisfiesExpression(s)||e.isNonNullExpression(s)||e.isTypeAssertionExpression(s);)s=s.expression;return s}function unwrapObjectLiteralExpression(e,t){const s=unwrapTransparentTypeScriptExpression(e,t);return e.isObjectLiteralExpression(s)?s:void 0}function extractMessageDescriptor(e,t,{overrideIdFn:s,extractSourceLocation:r,preserveWhitespace:i,flatten:a,throws:n=!0,onMsgError:o},c){let l,p=null;function u(t,s){let r=t;if(s){const{line:i,character:a}=e.getLineAndCharacterOfPosition(c,s.getStart(c));r=`${c.fileName}:${i+1}:${a+1} ${t}`}const i=new Error(r);if(n)throw i;p=i,o&&o(c.fileName,i)}e.isObjectLiteralExpression(t)?l=t.properties:(e.isJsxOpeningElement(t)||e.isJsxSelfClosingElement(t))&&(l=t.attributes.properties);const f={id:""};if(l&&(l.forEach(t=>{const{name:s}=t,r=e.isPropertyAssignment(t)||e.isJsxAttribute(t)?t.initializer:void 0;if(s&&e.isIdentifier(s)&&r){const i=e.isPropertyAssignment(t)?unwrapTransparentTypeScriptExpression(e,t.initializer):r;if(e.isStringLiteral(i))switch(s.text){case"id":f.id=i.text;break;case"defaultMessage":f.defaultMessage=i.text;break;case"description":f.description=i.text}else if(e.isNoSubstitutionTemplateLiteral(i))switch(s.text){case"id":f.id=i.text;break;case"defaultMessage":f.defaultMessage=i.text;break;case"description":f.description=i.text}else if(e.isTaggedTemplateExpression(i)){if("id"!==s.text&&"defaultMessage"!==s.text&&"description"!==s.text)return;const{template:r}=i;if(!e.isNoSubstitutionTemplateLiteral(r))return void u("[FormatJS] Tagged template expression must be no substitution",t);switch(s.text){case"id":f.id=r.text;break;case"defaultMessage":f.defaultMessage=r.text;break;case"description":f.description=r.text}}else if(e.isJsxExpression(i)&&i.expression){const r=unwrapTransparentTypeScriptExpression(e,i.expression);if(e.isStringLiteral(r))switch(s.text){case"id":f.id=r.text;break;case"defaultMessage":f.defaultMessage=r.text;break;case"description":f.description=r.text}else if(e.isObjectLiteralExpression(r)&&"description"===s.text)f.description=objectLiteralExpressionToObj(e,r);else if(e.isNoSubstitutionTemplateLiteral(r))switch(s.text){case"id":f.id=r.text;break;case"defaultMessage":f.defaultMessage=r.text;break;case"description":f.description=r.text}else if(e.isTaggedTemplateExpression(r)){if("id"!==s.text&&"defaultMessage"!==s.text&&"description"!==s.text)return;const{template:i}=r;if(!e.isNoSubstitutionTemplateLiteral(i))return void u("[FormatJS] Tagged template expression must be no substitution",t);switch(s.text){case"id":f.id=i.text;break;case"defaultMessage":f.defaultMessage=i.text;break;case"description":f.description=i.text}}else if(e.isBinaryExpression(r)){const[i,a]=evaluateStringConcat(e,r);if(a)switch(s.text){case"id":f.id=i;break;case"defaultMessage":f.defaultMessage=i;break;case"description":f.description=i}else if(MESSAGE_DESC_KEYS.includes(s.text)&&"description"!==s.text)return void u(`[FormatJS] \`${s.text}\` must be a string literal or statically evaluable expression to be extracted.`,t)}else if(MESSAGE_DESC_KEYS.includes(s.text)&&"description"!==s.text)return void u(`[FormatJS] \`${s.text}\` must be a string literal to be extracted.`,t)}else if(e.isBinaryExpression(i)){const[r,a]=evaluateStringConcat(e,i);if(a)switch(s.text){case"id":f.id=r;break;case"defaultMessage":f.defaultMessage=r;break;case"description":f.description=r}else if(MESSAGE_DESC_KEYS.includes(s.text)&&"description"!==s.text)return void u(`[FormatJS] \`${s.text}\` must be a string literal or statically evaluable expression to be extracted.`,t)}else if(e.isObjectLiteralExpression(i)&&"description"===s.text)f.description=objectLiteralExpressionToObj(e,i);else if(MESSAGE_DESC_KEYS.includes(s.text)&&"description"!==s.text)return void u(`[FormatJS] \`${s.text}\` must be a string literal to be extracted.`,t)}}),!p&&(f.defaultMessage||f.id))){if(f.defaultMessage&&!i&&(f.defaultMessage=normalizeMessageWhitespace(f.defaultMessage)),a&&f.defaultMessage)try{f.defaultMessage=printAST(hoistSelectors(parse(f.defaultMessage)))}catch(e){const{line:s,character:r}=c.getLineAndCharacterOfPosition(t.pos);throw new Error(`[formatjs] Cannot flatten message in file "${c.fileName}" at line ${s+1}, column ${r+1}${f.id?` with id "${f.id}"`:""}: ${e.message}\nMessage: ${f.defaultMessage}`)}if(f.defaultMessage&&s)switch(typeof s){case"string":f.id||(f.id=interpolateName({resourcePath:c.fileName},s,{content:f.description?`${f.defaultMessage}#${"string"==typeof f.description?f.description:stringify(f.description)}`:f.defaultMessage}));break;case"function":f.id=s(f.id,f.defaultMessage,f.description,c.fileName)}return r?{...f,file:c.fileName,start:t.pos,end:t.end}:f}}function isMemberMethodFormatMessageCall(e,t,s){const r=new Set(["formatMessage","$formatMessage",...s]),i=t.expression;if(e.isPropertyAccessExpression(i))return r.has(i.name.text);if(e.isExpressionWithTypeArguments&&e.isExpressionWithTypeArguments(i)){const t=i.expression;if(e.isPropertyAccessExpression(t))return r.has(t.name.text)}return e.isIdentifier(i)&&r.has(i.text)}function extractMessageFromJsxComponent(e,t,s,r,i){const{onMsgExtracted:a}=r;if(!isSingularMessageDecl(e,s,r.additionalComponentNames||[]))return s;const n=extractMessageDescriptor(e,s,r,i);if(!n)return s;"function"==typeof a&&a(i.fileName,[n]);const o=generateNewProperties(e,t,s.attributes,{defaultMessage:r.removeDefaultMessage?void 0:n.defaultMessage,id:n.id},r.ast);return e.isJsxOpeningElement(s)?t.updateJsxOpeningElement(s,s.tagName,s.typeArguments,t.createJsxAttributes(o)):t.updateJsxSelfClosingElement(s,s.tagName,s.typeArguments,t.createJsxAttributes(o))}function setAttributesInObject(e,t,s,r,i){const a=[t.createPropertyAssignment("id",t.createStringLiteral(r.id)),...r.defaultMessage?[t.createPropertyAssignment("defaultMessage",i?messageASTToTSNode(t,parse(r.defaultMessage)):t.createStringLiteral(r.defaultMessage))]:[]];for(const t of s.properties)e.isPropertyAssignment(t)&&e.isIdentifier(t.name)&&MESSAGE_DESC_KEYS.includes(t.name.text)||e.isPropertyAssignment(t)&&a.push(t);return t.createObjectLiteralExpression(t.createNodeArray(a))}function generateNewProperties(e,t,s,r,i){const a=[t.createJsxAttribute(t.createIdentifier("id"),t.createStringLiteral(r.id)),...r.defaultMessage?[t.createJsxAttribute(t.createIdentifier("defaultMessage"),i?t.createJsxExpression(void 0,messageASTToTSNode(t,parse(r.defaultMessage))):t.createStringLiteral(r.defaultMessage))]:[]];for(const t of s.properties)e.isJsxAttribute(t)&&e.isIdentifier(t.name)&&MESSAGE_DESC_KEYS.includes(t.name.text)||e.isJsxAttribute(t)&&a.push(t);return a}function extractMessagesFromCallExpression(e,t,s,r,i){const{onMsgExtracted:a,additionalFunctionNames:n}=r;if(isMultipleMessageDecl(e,s)){const[n,...o]=s.arguments,c=unwrapObjectLiteralExpression(e,n);if(c){const n=c.properties,l=n.filter(t=>e.isPropertyAssignment(t)).map(t=>{const s=unwrapObjectLiteralExpression(e,t.initializer);return s&&extractMessageDescriptor(e,s,r,i)}).filter(e=>!!e);if(!l.length)return s;debug('Multiple messages extracted from "%s": %s',i.fileName,l),"function"==typeof a&&a(i.fileName,l);const p=t.createNodeArray(n.map((s,i)=>e.isPropertyAssignment(s)&&e.isObjectLiteralExpression(s.initializer)?t.createPropertyAssignment(s.name,setAttributesInObject(e,t,s.initializer,{defaultMessage:r.removeDefaultMessage?void 0:l[i].defaultMessage,id:l[i]?l[i].id:""},r.ast)):s)),u=t.createObjectLiteralExpression(p);return t.updateCallExpression(s,s.expression,s.typeArguments,[u,...o])}}else if(isSingularMessageDecl(e,s,r.additionalComponentNames||[])||isMemberMethodFormatMessageCall(e,s,n||[])){const[n,...o]=s.arguments,c=unwrapObjectLiteralExpression(e,n);if(c){const n=extractMessageDescriptor(e,c,r,i);return n?(debug('Message extracted from "%s": %s',i.fileName,n),"function"==typeof a&&a(i.fileName,[n]),t.updateCallExpression(s,s.expression,s.typeArguments,[setAttributesInObject(e,t,c,{defaultMessage:r.removeDefaultMessage?void 0:n.defaultMessage,id:n.id},r.ast),...o])):s}}return s}const PRAGMA_REGEX=/^\/\/ @([^\s]*) (.*)$/m;function getVisitor(e,t,s,r){const i=a=>{const n=e.isCallExpression(a)?extractMessagesFromCallExpression(e,t.factory,a,r,s):e.isJsxOpeningElement(a)||e.isJsxSelfClosingElement(a)?extractMessageFromJsxComponent(e,t.factory,a,r,s):a;return e.visitEachChild(n,i,t)};return i}function transformWithTs(e,t){debug("Transforming options",t={...DEFAULT_OPTS,...t});return s=>r=>{const i=PRAGMA_REGEX.exec(r.text);if(i){debug("Pragma found",i);const[,e,s]=i;if(e===t.pragma){const e=s.split(" "),i={};for(const t of e){const[e,s]=t.split(":");i[e]=s}debug("Pragma extracted",i),"function"==typeof t.onMetaExtracted&&t.onMetaExtracted(r.fileName,i)}}return e.visitEachChild(r,getVisitor(e,s,r,t),s)}}function transform(e){return transformWithTs(typescript,e)}export{interpolateName,normalizeMessageWhitespace,transform,transformWithTs};
//# sourceMappingURL=/sm/9ed37d95f759be01467f76acf07f4c7a10f855d4472aa995763d5c2f6953f756.map