async inlineContent(content, domains) {
        for (const domain of domains) {
            const matches = this.constructor.findMatches(content, domain);

            for (const src of matches) {
                const response = await this.getRemoteMedia(src);

                let media;
                if (response) {
                    media = await this.extractFileDataFromResponse(src, response);
                }

                if (media) {
                    const filePath = await this.storeMediaLocally(media);

                    if (filePath) {
                        const inlinedSrc = `__GHOST_URL__${filePath}`;

                        // NOTE: does not account for duplicate images in content
                        //       in those cases would be processed twice
                        content = content.replace(src, inlinedSrc);
                        logging.info(`Inlined media: ${src} -> ${inlinedSrc}`);
                    }
                }
            }
        }

        return content;
    }
Find & inline external media from a JSON sting.
This works with both Lexical & Mobiledoc, so no separate methods are needed here.

@param {string} content - stringified JSON of post Lexical or Mobiledoc content
@param {String[]} domains - domains to inline media from
@returns {Promise<string>} - updated stringified JSON of post content