{"version":3,"file":"static/npm.micromark-extension-gfm-strikethrough.d8adbf6e.js","mappings":"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","sources":["../node_modules/micromark-extension-gfm-strikethrough/index.js"],"sourcesContent":["module.exports = create\n\nvar classifyCharacter = require('micromark/dist/util/classify-character')\nvar chunkedSplice = require('micromark/dist/util/chunked-splice')\nvar resolveAll = require('micromark/dist/util/resolve-all')\nvar shallow = require('micromark/dist/util/shallow')\n\nfunction create(options) {\n var settings = options || {}\n var single = settings.singleTilde\n var tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {text: {126: tokenizer}, insideSpan: {null: tokenizer}}\n\n // Take events and resolve strikethrough.\n function resolveAllStrikethrough(events, context) {\n var index = -1\n var strikethrough\n var text\n var open\n var nextEvents\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n strikethrough = {\n type: 'strikethrough',\n start: shallow(events[open][1].start),\n end: shallow(events[index][1].end)\n }\n\n text = {\n type: 'strikethroughText',\n start: shallow(events[open][1].end),\n end: shallow(events[index][1].start)\n }\n\n // Opening.\n nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n\n // Between.\n chunkedSplice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n chunkedSplice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n\n chunkedSplice(events, open - 1, index - open + 3, nextEvents)\n\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n return removeRemainingSequences(events)\n }\n\n function removeRemainingSequences(events) {\n var index = -1\n var length = events.length\n\n while (++index < length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n\n function tokenizeStrikethrough(effects, ok, nok) {\n var previous = this.previous\n var events = this.events\n var size = 0\n\n return start\n\n function start(code) {\n if (\n code !== 126 ||\n (previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape')\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n function more(code) {\n var before = classifyCharacter(previous)\n var token\n var after\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n token = effects.exit('strikethroughSequenceTemporary')\n after = classifyCharacter(code)\n token._open = !after || (after === 2 && before)\n token._close = !before || (before === 2 && after)\n return ok(code)\n }\n }\n}\n"],"names":["module","exports","options","single","singleTilde","tokenizer","tokenize","effects","ok","nok","previous","this","events","size","start","code","length","type","enter","more","token","after","before","classifyCharacter","consume","exit","_open","_close","resolveAll","context","strikethrough","text","open","nextEvents","index","end","offset","shallow","chunkedSplice","parser","constructs","insideSpan","null","slice","removeRemainingSequences","undefined","require"],"sourceRoot":""}