From aa9251cd8b97b2f7b7703738b96d200bd1a07c36 Mon Sep 17 00:00:00 2001 From: Dane Sabo Date: Wed, 4 Sep 2024 10:51:11 -0400 Subject: [PATCH] vault backup: 2024-09-04 10:51:11 --- .../plugins/nl-syntax-highlighting/main.js | 16755 ---------------- .../nl-syntax-highlighting/manifest.json | 11 - .../plugins/nl-syntax-highlighting/styles.css | 19 - .../plugins/obsidian-enhancing-export/main.js | 30 + .../obsidian-enhancing-export/manifest.json | 10 + .../obsidian-enhancing-export/styles.css | 1 + .obsidian/workspace.json | 2 +- 200. Library Papers/My Library.bib | 12633 ++++++++++++ 8 files changed, 12675 insertions(+), 16786 deletions(-) delete mode 100644 .obsidian/plugins/nl-syntax-highlighting/main.js delete mode 100644 .obsidian/plugins/nl-syntax-highlighting/manifest.json delete mode 100644 .obsidian/plugins/nl-syntax-highlighting/styles.css create mode 100644 .obsidian/plugins/obsidian-enhancing-export/main.js create mode 100644 .obsidian/plugins/obsidian-enhancing-export/manifest.json create mode 100644 .obsidian/plugins/obsidian-enhancing-export/styles.css create mode 100644 200. Library Papers/My Library.bib diff --git a/.obsidian/plugins/nl-syntax-highlighting/main.js b/.obsidian/plugins/nl-syntax-highlighting/main.js deleted file mode 100644 index 1f71aea4e..000000000 --- a/.obsidian/plugins/nl-syntax-highlighting/main.js +++ /dev/null @@ -1,16755 +0,0 @@ -/* -THIS IS A GENERATED/BUNDLED FILE BY ESBUILD -if you want to view the source, please visit the github repository of this plugin -*/ - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all4) => { - for (var name in all4) - __defProp(target, name, { get: all4[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// main.ts -var main_exports = {}; -__export(main_exports, { - default: () => NLSyntaxHighlightPlugin -}); -module.exports = __toCommonJS(main_exports); -var import_obsidian2 = require("obsidian"); - -// syntaxHighlight.ts -var import_view = require("@codemirror/view"); - -// node_modules/compromise/src/API/world.js -var methods = { - one: {}, - two: {}, - three: {}, - four: {} -}; -var model = { - one: {}, - two: {}, - three: {} -}; -var compute = {}; -var hooks = []; -var world_default = { methods, model, compute, hooks }; - -// node_modules/compromise/src/API/methods/compute.js -var isArray = (input) => Object.prototype.toString.call(input) === "[object Array]"; -var fns = { - compute: function(input) { - const { world: world2 } = this; - const compute4 = world2.compute; - if (typeof input === "string" && compute4.hasOwnProperty(input)) { - compute4[input](this); - } else if (isArray(input)) { - input.forEach((name) => { - if (world2.compute.hasOwnProperty(name)) { - compute4[name](this); - } else { - console.warn("no compute:", input); - } - }); - } else if (typeof input === "function") { - input(this); - } else { - console.warn("no compute:", input); - } - return this; - } -}; -var compute_default = fns; - -// node_modules/compromise/src/API/methods/loops.js -var forEach = function(cb) { - let ptrs = this.fullPointer; - ptrs.forEach((ptr, i3) => { - let view = this.update([ptr]); - cb(view, i3); - }); - return this; -}; -var map = function(cb, empty) { - let ptrs = this.fullPointer; - let res = ptrs.map((ptr, i3) => { - let view = this.update([ptr]); - let out2 = cb(view, i3); - if (out2 === void 0) { - return this.none(); - } - return out2; - }); - if (res.length === 0) { - return empty || this.update([]); - } - if (res[0] !== void 0) { - if (typeof res[0] === "string") { - return res; - } - if (typeof res[0] === "object" && (res[0] === null || !res[0].isView)) { - return res; - } - } - let all4 = []; - res.forEach((ptr) => { - all4 = all4.concat(ptr.fullPointer); - }); - return this.toView(all4); -}; -var filter = function(cb) { - let ptrs = this.fullPointer; - ptrs = ptrs.filter((ptr, i3) => { - let view = this.update([ptr]); - return cb(view, i3); - }); - let res = this.update(ptrs); - return res; -}; -var find = function(cb) { - let ptrs = this.fullPointer; - let found = ptrs.find((ptr, i3) => { - let view = this.update([ptr]); - return cb(view, i3); - }); - return this.update([found]); -}; -var some = function(cb) { - let ptrs = this.fullPointer; - return ptrs.some((ptr, i3) => { - let view = this.update([ptr]); - return cb(view, i3); - }); -}; -var random = function(n3 = 1) { - let ptrs = this.fullPointer; - let r2 = Math.floor(Math.random() * ptrs.length); - if (r2 + n3 > this.length) { - r2 = this.length - n3; - r2 = r2 < 0 ? 0 : r2; - } - ptrs = ptrs.slice(r2, r2 + n3); - return this.update(ptrs); -}; -var loops_default = { forEach, map, filter, find, some, random }; - -// node_modules/compromise/src/API/methods/utils.js -var utils = { - termList: function() { - return this.methods.one.termList(this.docs); - }, - terms: function(n3) { - let m3 = this.match("."); - return typeof n3 === "number" ? m3.eq(n3) : m3; - }, - groups: function(group) { - if (group || group === 0) { - return this.update(this._groups[group] || []); - } - let res = {}; - Object.keys(this._groups).forEach((k2) => { - res[k2] = this.update(this._groups[k2]); - }); - return res; - }, - eq: function(n3) { - let ptr = this.pointer; - if (!ptr) { - ptr = this.docs.map((_doc, i3) => [i3]); - } - if (ptr[n3]) { - return this.update([ptr[n3]]); - } - return this.none(); - }, - first: function() { - return this.eq(0); - }, - last: function() { - let n3 = this.fullPointer.length - 1; - return this.eq(n3); - }, - firstTerms: function() { - return this.match("^."); - }, - lastTerms: function() { - return this.match(".$"); - }, - slice: function(min2, max3) { - let pntrs = this.pointer || this.docs.map((_o, n3) => [n3]); - pntrs = pntrs.slice(min2, max3); - return this.update(pntrs); - }, - all: function() { - return this.update().toView(); - }, - fullSentences: function() { - let ptrs = this.fullPointer.map((a2) => [a2[0]]); - return this.update(ptrs).toView(); - }, - none: function() { - return this.update([]); - }, - isDoc: function(b) { - if (!b || !b.isView) { - return false; - } - let aPtr = this.fullPointer; - let bPtr = b.fullPointer; - if (!aPtr.length === bPtr.length) { - return false; - } - return aPtr.every((ptr, i3) => { - if (!bPtr[i3]) { - return false; - } - return ptr[0] === bPtr[i3][0] && ptr[1] === bPtr[i3][1] && ptr[2] === bPtr[i3][2]; - }); - }, - wordCount: function() { - return this.docs.reduce((count, terms) => { - count += terms.filter((t2) => t2.text !== "").length; - return count; - }, 0); - }, - isFull: function() { - let ptrs = this.pointer; - if (!ptrs) { - return true; - } - let document2 = this.document; - for (let i3 = 0; i3 < ptrs.length; i3 += 1) { - let [n3, start2, end2] = ptrs[i3]; - if (n3 !== i3 || start2 !== 0) { - return false; - } - if (document2[n3].length > end2) { - return false; - } - } - return true; - }, - getNth: function(n3) { - if (typeof n3 === "number") { - return this.eq(n3); - } else if (typeof n3 === "string") { - return this.if(n3); - } - return this; - } -}; -utils.group = utils.groups; -utils.fullSentence = utils.fullSentences; -utils.sentence = utils.fullSentences; -utils.lastTerm = utils.lastTerms; -utils.firstTerm = utils.firstTerms; -var utils_default = utils; - -// node_modules/compromise/src/API/methods/index.js -var methods2 = Object.assign({}, utils_default, compute_default, loops_default); -methods2.get = methods2.eq; -var methods_default = methods2; - -// node_modules/compromise/src/API/View.js -var View = class { - constructor(document2, pointer, groups = {}) { - [ - ["document", document2], - ["world", world_default], - ["_groups", groups], - ["_cache", null], - ["viewType", "View"] - ].forEach((a2) => { - Object.defineProperty(this, a2[0], { - value: a2[1], - writable: true - }); - }); - this.ptrs = pointer; - } - get docs() { - let docs = this.document; - if (this.ptrs) { - docs = world_default.methods.one.getDoc(this.ptrs, this.document); - } - return docs; - } - get pointer() { - return this.ptrs; - } - get methods() { - return this.world.methods; - } - get model() { - return this.world.model; - } - get hooks() { - return this.world.hooks; - } - get isView() { - return true; - } - get found() { - return this.docs.length > 0; - } - get length() { - return this.docs.length; - } - get fullPointer() { - let { docs, ptrs, document: document2 } = this; - let pointers = ptrs || docs.map((_d, n3) => [n3]); - return pointers.map((a2) => { - let [n3, start2, end2, id, endId] = a2; - start2 = start2 || 0; - end2 = end2 || (document2[n3] || []).length; - if (document2[n3] && document2[n3][start2]) { - id = id || document2[n3][start2].id; - if (document2[n3][end2 - 1]) { - endId = endId || document2[n3][end2 - 1].id; - } - } - return [n3, start2, end2, id, endId]; - }); - } - update(pointer) { - let m3 = new View(this.document, pointer); - if (this._cache && pointer && pointer.length > 0) { - let cache2 = []; - pointer.forEach((ptr, i3) => { - let [n3, start2, end2] = ptr; - if (ptr.length === 1) { - cache2[i3] = this._cache[n3]; - } else if (start2 === 0 && this.document[n3].length === end2) { - cache2[i3] = this._cache[n3]; - } - }); - if (cache2.length > 0) { - m3._cache = cache2; - } - } - m3.world = this.world; - return m3; - } - toView(pointer) { - return new View(this.document, pointer || this.pointer); - } - fromText(input) { - const { methods: methods16 } = this; - let document2 = methods16.one.tokenize.fromString(input, this.world); - let doc = new View(document2); - doc.world = this.world; - doc.compute(["normal", "lexicon"]); - if (this.world.compute.preTagger) { - doc.compute("preTagger"); - } - return doc; - } - clone() { - let document2 = this.document.slice(0); - document2 = document2.map((terms) => { - return terms.map((term) => { - term = Object.assign({}, term); - term.tags = new Set(term.tags); - return term; - }); - }); - let m3 = this.update(this.pointer); - m3.document = document2; - m3._cache = this._cache; - return m3; - } -}; -Object.assign(View.prototype, methods_default); -var View_default = View; - -// node_modules/compromise/src/_version.js -var version_default = "14.8.1"; - -// node_modules/compromise/src/API/extend.js -var isObject = function(item) { - return item && typeof item === "object" && !Array.isArray(item); -}; -function mergeDeep(model5, plugin5) { - if (isObject(plugin5)) { - for (const key in plugin5) { - if (isObject(plugin5[key])) { - if (!model5[key]) - Object.assign(model5, { [key]: {} }); - mergeDeep(model5[key], plugin5[key]); - } else { - Object.assign(model5, { [key]: plugin5[key] }); - } - } - } - return model5; -} -function mergeQuick(model5, plugin5) { - for (const key in plugin5) { - model5[key] = model5[key] || {}; - Object.assign(model5[key], plugin5[key]); - } - return model5; -} -var addIrregulars = function(model5, conj) { - let m3 = model5.two.models || {}; - Object.keys(conj).forEach((k2) => { - if (conj[k2].pastTense) { - if (m3.toPast) { - m3.toPast.exceptions[k2] = conj[k2].pastTense; - } - if (m3.fromPast) { - m3.fromPast.exceptions[conj[k2].pastTense] = k2; - } - } - if (conj[k2].presentTense) { - if (m3.toPresent) { - m3.toPresent.exceptions[k2] = conj[k2].presentTense; - } - if (m3.fromPresent) { - m3.fromPresent.exceptions[conj[k2].presentTense] = k2; - } - } - if (conj[k2].gerund) { - if (m3.toGerund) { - m3.toGerund.exceptions[k2] = conj[k2].gerund; - } - if (m3.fromGerund) { - m3.fromGerund.exceptions[conj[k2].gerund] = k2; - } - } - if (conj[k2].comparative) { - if (m3.toComparative) { - m3.toComparative.exceptions[k2] = conj[k2].comparative; - } - if (m3.fromComparative) { - m3.fromComparative.exceptions[conj[k2].comparative] = k2; - } - } - if (conj[k2].superlative) { - if (m3.toSuperlative) { - m3.toSuperlative.exceptions[k2] = conj[k2].superlative; - } - if (m3.fromSuperlative) { - m3.fromSuperlative.exceptions[conj[k2].superlative] = k2; - } - } - }); -}; -var extend = function(plugin5, world2, View2, nlp2) { - const { methods: methods16, model: model5, compute: compute4, hooks: hooks2 } = world2; - if (plugin5.methods) { - mergeQuick(methods16, plugin5.methods); - } - if (plugin5.model) { - mergeDeep(model5, plugin5.model); - } - if (plugin5.irregulars) { - addIrregulars(model5, plugin5.irregulars); - } - if (plugin5.compute) { - Object.assign(compute4, plugin5.compute); - } - if (hooks2) { - world2.hooks = hooks2.concat(plugin5.hooks || []); - } - if (plugin5.api) { - plugin5.api(View2); - } - if (plugin5.lib) { - Object.keys(plugin5.lib).forEach((k2) => nlp2[k2] = plugin5.lib[k2]); - } - if (plugin5.tags) { - nlp2.addTags(plugin5.tags); - } - if (plugin5.words) { - nlp2.addWords(plugin5.words); - } - if (plugin5.mutate) { - plugin5.mutate(world2); - } -}; -var extend_default = extend; - -// node_modules/compromise/src/API/_lib.js -var verbose = function(set) { - const env2 = typeof process === "undefined" || !process.env ? self.env || {} : process.env; - env2.DEBUG_TAGS = set === "tagger" || set === true ? true : ""; - env2.DEBUG_MATCH = set === "match" || set === true ? true : ""; - env2.DEBUG_CHUNKS = set === "chunker" || set === true ? true : ""; - return this; -}; - -// node_modules/compromise/src/API/inputs.js -var isObject2 = (val) => { - return Object.prototype.toString.call(val) === "[object Object]"; -}; -var isArray2 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var fromJson = function(json) { - return json.map((o2) => { - return o2.terms.map((term) => { - if (isArray2(term.tags)) { - term.tags = new Set(term.tags); - } - return term; - }); - }); -}; -var preTokenized = function(arr) { - return arr.map((a2) => { - return a2.map((str) => { - return { - text: str, - normal: str, - pre: "", - post: " ", - tags: /* @__PURE__ */ new Set() - }; - }); - }); -}; -var inputs = function(input, View2, world2) { - const { methods: methods16 } = world2; - let doc = new View2([]); - doc.world = world2; - if (typeof input === "number") { - input = String(input); - } - if (!input) { - return doc; - } - if (typeof input === "string") { - let document2 = methods16.one.tokenize.fromString(input, world2); - return new View2(document2); - } - if (isObject2(input) && input.isView) { - return new View2(input.document, input.ptrs); - } - if (isArray2(input)) { - if (isArray2(input[0])) { - let document3 = preTokenized(input); - return new View2(document3); - } - let document2 = fromJson(input); - return new View2(document2); - } - return doc; -}; -var inputs_default = inputs; - -// node_modules/compromise/src/nlp.js -var world = Object.assign({}, world_default); -var nlp = function(input, lex) { - if (lex) { - nlp.addWords(lex); - } - let doc = inputs_default(input, View_default, world); - if (input) { - doc.compute(world.hooks); - } - return doc; -}; -Object.defineProperty(nlp, "_world", { - value: world, - writable: true -}); -nlp.tokenize = function(input, lex) { - const { compute: compute4 } = this._world; - if (lex) { - nlp.addWords(lex); - } - let doc = inputs_default(input, View_default, world); - if (compute4.contractions) { - doc.compute(["alias", "normal", "machine", "contractions"]); - } - return doc; -}; -nlp.plugin = function(plugin5) { - extend_default(plugin5, this._world, View_default, this); - return this; -}; -nlp.extend = nlp.plugin; -nlp.world = function() { - return this._world; -}; -nlp.model = function() { - return this._world.model; -}; -nlp.methods = function() { - return this._world.methods; -}; -nlp.hooks = function() { - return this._world.hooks; -}; -nlp.verbose = verbose; -nlp.version = version_default; -var nlp_default = nlp; - -// node_modules/compromise/src/1-one/cache/methods/cacheDoc.js -var createCache = function(document2) { - let cache2 = document2.map((terms) => { - let stuff = /* @__PURE__ */ new Set(); - terms.forEach((term) => { - if (term.normal !== "") { - stuff.add(term.normal); - } - if (term.switch) { - stuff.add(`%${term.switch}%`); - } - if (term.implicit) { - stuff.add(term.implicit); - } - if (term.machine) { - stuff.add(term.machine); - } - if (term.root) { - stuff.add(term.root); - } - if (term.alias) { - term.alias.forEach((str) => stuff.add(str)); - } - let tags = Array.from(term.tags); - for (let t2 = 0; t2 < tags.length; t2 += 1) { - stuff.add("#" + tags[t2]); - } - }); - return stuff; - }); - return cache2; -}; -var cacheDoc_default = createCache; - -// node_modules/compromise/src/1-one/cache/methods/index.js -var methods_default2 = { - one: { - cacheDoc: cacheDoc_default - } -}; - -// node_modules/compromise/src/1-one/cache/api.js -var methods3 = { - cache: function() { - this._cache = this.methods.one.cacheDoc(this.document); - return this; - }, - uncache: function() { - this._cache = null; - return this; - } -}; -var addAPI = function(View2) { - Object.assign(View2.prototype, methods3); -}; -var api_default = addAPI; - -// node_modules/compromise/src/1-one/cache/compute.js -var compute_default2 = { - cache: function(view) { - view._cache = view.methods.one.cacheDoc(view.document); - } -}; - -// node_modules/compromise/src/1-one/cache/plugin.js -var plugin_default = { - api: api_default, - compute: compute_default2, - methods: methods_default2 -}; - -// node_modules/compromise/src/1-one/change/api/case.js -var case_default = { - toLowerCase: function() { - this.termList().forEach((t2) => { - t2.text = t2.text.toLowerCase(); - }); - return this; - }, - toUpperCase: function() { - this.termList().forEach((t2) => { - t2.text = t2.text.toUpperCase(); - }); - return this; - }, - toTitleCase: function() { - this.termList().forEach((t2) => { - t2.text = t2.text.replace(/^ *[a-z\u00C0-\u00FF]/, (x) => x.toUpperCase()); - }); - return this; - }, - toCamelCase: function() { - this.docs.forEach((terms) => { - terms.forEach((t2, i3) => { - if (i3 !== 0) { - t2.text = t2.text.replace(/^ *[a-z\u00C0-\u00FF]/, (x) => x.toUpperCase()); - } - if (i3 !== terms.length - 1) { - t2.post = ""; - } - }); - }); - return this; - } -}; - -// node_modules/compromise/src/1-one/change/api/lib/insert.js -var isTitleCase = (str) => /^\p{Lu}[\p{Ll}'’]/u.test(str) || /^\p{Lu}$/u.test(str); -var toTitleCase = (str) => str.replace(/^\p{Ll}/u, (x) => x.toUpperCase()); -var toLowerCase = (str) => str.replace(/^\p{Lu}/u, (x) => x.toLowerCase()); -var spliceArr = (parent, index3, child) => { - child.forEach((term) => term.dirty = true); - if (parent) { - let args = [index3, 0].concat(child); - Array.prototype.splice.apply(parent, args); - } - return parent; -}; -var endSpace = function(terms) { - const hasSpace2 = / $/; - const hasDash4 = /[-–—]/; - let lastTerm = terms[terms.length - 1]; - if (lastTerm && !hasSpace2.test(lastTerm.post) && !hasDash4.test(lastTerm.post)) { - lastTerm.post += " "; - } -}; -var movePunct = (source, end2, needle) => { - const juicy = /[-.?!,;:)–—'"]/g; - let wasLast = source[end2 - 1]; - if (!wasLast) { - return; - } - let post = wasLast.post; - if (juicy.test(post)) { - let punct = post.match(juicy).join(""); - let last = needle[needle.length - 1]; - last.post = punct + last.post; - wasLast.post = wasLast.post.replace(juicy, ""); - } -}; -var moveTitleCase = function(home, start2, needle) { - let from = home[start2]; - if (start2 !== 0 || !isTitleCase(from.text)) { - return; - } - needle[0].text = toTitleCase(needle[0].text); - let old = home[start2]; - if (old.tags.has("ProperNoun") || old.tags.has("Acronym")) { - return; - } - if (isTitleCase(old.text) && old.text.length > 1) { - old.text = toLowerCase(old.text); - } -}; -var cleanPrepend = function(home, ptr, needle, document2) { - let [n3, start2, end2] = ptr; - if (start2 === 0) { - endSpace(needle); - } else if (end2 === document2[n3].length) { - endSpace(needle); - } else { - endSpace(needle); - endSpace([home[ptr[1]]]); - } - moveTitleCase(home, start2, needle); - spliceArr(home, start2, needle); -}; -var cleanAppend = function(home, ptr, needle, document2) { - let [n3, , end2] = ptr; - let total = (document2[n3] || []).length; - if (end2 < total) { - movePunct(home, end2, needle); - endSpace(needle); - } else if (total === end2) { - endSpace(home); - movePunct(home, end2, needle); - if (document2[n3 + 1]) { - needle[needle.length - 1].post += " "; - } - } - spliceArr(home, ptr[2], needle); - ptr[4] = needle[needle.length - 1].id; -}; - -// node_modules/compromise/src/1-one/change/compute/uuid.js -var index = 0; -var pad3 = (str) => { - str = str.length < 3 ? "0" + str : str; - return str.length < 3 ? "0" + str : str; -}; -var toId = function(term) { - let [n3, i3] = term.index || [0, 0]; - index += 1; - index = index > 46655 ? 0 : index; - n3 = n3 > 46655 ? 0 : n3; - i3 = i3 > 1294 ? 0 : i3; - let id = pad3(index.toString(36)); - id += pad3(n3.toString(36)); - let tx = i3.toString(36); - tx = tx.length < 2 ? "0" + tx : tx; - id += tx; - let r2 = parseInt(Math.random() * 36, 10); - id += r2.toString(36); - return term.normal + "|" + id.toUpperCase(); -}; -var uuid_default = toId; - -// node_modules/compromise/src/1-one/change/api/insert.js -var expand = function(m3) { - if (m3.has("@hasContraction") && typeof m3.contractions === "function") { - let more = m3.grow("@hasContraction"); - more.contractions().expand(); - } -}; -var isArray3 = (arr) => Object.prototype.toString.call(arr) === "[object Array]"; -var addIds = function(terms) { - terms = terms.map((term) => { - term.id = uuid_default(term); - return term; - }); - return terms; -}; -var getTerms = function(input, world2) { - const { methods: methods16 } = world2; - if (typeof input === "string") { - return methods16.one.tokenize.fromString(input, world2)[0]; - } - if (typeof input === "object" && input.isView) { - return input.clone().docs[0] || []; - } - if (isArray3(input)) { - return isArray3(input[0]) ? input[0] : input; - } - return []; -}; -var insert = function(input, view, prepend) { - const { document: document2, world: world2 } = view; - view.uncache(); - let ptrs = view.fullPointer; - let selfPtrs = view.fullPointer; - view.forEach((m3, i3) => { - let ptr = m3.fullPointer[0]; - let [n3] = ptr; - let home = document2[n3]; - let terms = getTerms(input, world2); - if (terms.length === 0) { - return; - } - terms = addIds(terms); - if (prepend) { - expand(view.update([ptr]).firstTerm()); - cleanPrepend(home, ptr, terms, document2); - } else { - expand(view.update([ptr]).lastTerm()); - cleanAppend(home, ptr, terms, document2); - } - if (document2[n3] && document2[n3][ptr[1]]) { - ptr[3] = document2[n3][ptr[1]].id; - } - selfPtrs[i3] = ptr; - ptr[2] += terms.length; - ptrs[i3] = ptr; - }); - let doc = view.toView(ptrs); - view.ptrs = selfPtrs; - doc.compute(["id", "index", "lexicon"]); - if (doc.world.compute.preTagger) { - doc.compute("preTagger"); - } - return doc; -}; -var fns2 = { - insertAfter: function(input) { - return insert(input, this, false); - }, - insertBefore: function(input) { - return insert(input, this, true); - } -}; -fns2.append = fns2.insertAfter; -fns2.prepend = fns2.insertBefore; -fns2.insert = fns2.insertAfter; -var insert_default = fns2; - -// node_modules/compromise/src/1-one/change/api/replace.js -var dollarStub = /\$[0-9a-z]+/g; -var fns3 = {}; -var titleCase = function(str) { - return str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase()); -}; -var replaceByFn = function(main, fn) { - main.forEach((m3) => { - let out2 = fn(m3); - m3.replaceWith(out2); - }); - return main; -}; -var subDollarSign = function(input, main) { - if (typeof input !== "string") { - return input; - } - let groups = main.groups(); - input = input.replace(dollarStub, (a2) => { - let num = a2.replace(/\$/, ""); - if (groups.hasOwnProperty(num)) { - return groups[num].text(); - } - return a2; - }); - return input; -}; -fns3.replaceWith = function(input, keep9 = {}) { - let ptrs = this.fullPointer; - let main = this; - this.uncache(); - if (typeof input === "function") { - return replaceByFn(main, input); - } - input = subDollarSign(input, main); - let original = this.update(ptrs); - ptrs = ptrs.map((ptr) => ptr.slice(0, 3)); - let oldTags = (original.docs[0] || []).map((term) => Array.from(term.tags)); - if (typeof input === "string") { - input = this.fromText(input).compute("id"); - } - main.insertAfter(input); - if (original.has("@hasContraction") && main.contractions) { - let more = main.grow("@hasContraction+"); - more.contractions().expand(); - } - main.delete(original); - let m3 = main.toView(ptrs).compute(["index", "lexicon"]); - if (m3.world.compute.preTagger) { - m3.compute("preTagger"); - } - if (keep9.tags) { - m3.terms().forEach((term, i3) => { - term.tagSafe(oldTags[i3]); - }); - } - if (keep9.case && m3.docs[0] && m3.docs[0][0] && m3.docs[0][0].index[1] === 0) { - m3.docs[0][0].text = titleCase(m3.docs[0][0].text); - } - return m3; -}; -fns3.replace = function(match2, input, keep9) { - if (match2 && !input) { - return this.replaceWith(match2, keep9); - } - let m3 = this.match(match2); - if (!m3.found) { - return this; - } - this.soften(); - return m3.replaceWith(input, keep9); -}; -var replace_default = fns3; - -// node_modules/compromise/src/1-one/change/api/lib/remove.js -var repairPunct = function(terms, len) { - let last = terms.length - 1; - let from = terms[last]; - let to = terms[last - len]; - if (to && from) { - to.post += from.post; - to.post = to.post.replace(/ +([.?!,;:])/, "$1"); - to.post = to.post.replace(/[,;:]+([.?!])/, "$1"); - } -}; -var pluckOut = function(document2, nots) { - nots.forEach((ptr) => { - let [n3, start2, end2] = ptr; - let len = end2 - start2; - if (!document2[n3]) { - return; - } - if (end2 === document2[n3].length && end2 > 1) { - repairPunct(document2[n3], len); - } - document2[n3].splice(start2, len); - }); - for (let i3 = document2.length - 1; i3 >= 0; i3 -= 1) { - if (document2[i3].length === 0) { - document2.splice(i3, 1); - if (i3 === document2.length && document2[i3 - 1]) { - let terms = document2[i3 - 1]; - let lastTerm = terms[terms.length - 1]; - if (lastTerm) { - lastTerm.post = lastTerm.post.trimEnd(); - } - } - } - } - return document2; -}; -var remove_default = pluckOut; - -// node_modules/compromise/src/1-one/change/api/remove.js -var fixPointers = function(ptrs, gonePtrs) { - ptrs = ptrs.map((ptr) => { - let [n3] = ptr; - if (!gonePtrs[n3]) { - return ptr; - } - gonePtrs[n3].forEach((no) => { - let len = no[2] - no[1]; - if (ptr[1] <= no[1] && ptr[2] >= no[2]) { - ptr[2] -= len; - } - }); - return ptr; - }); - ptrs.forEach((ptr, i3) => { - if (ptr[1] === 0 && ptr[2] == 0) { - for (let n3 = i3 + 1; n3 < ptrs.length; n3 += 1) { - ptrs[n3][0] -= 1; - if (ptrs[n3][0] < 0) { - ptrs[n3][0] = 0; - } - } - } - }); - ptrs = ptrs.filter((ptr) => ptr[2] - ptr[1] > 0); - ptrs = ptrs.map((ptr) => { - ptr[3] = null; - ptr[4] = null; - return ptr; - }); - return ptrs; -}; -var methods4 = { - remove: function(reg) { - const { indexN: indexN2 } = this.methods.one.pointer; - this.uncache(); - let self2 = this.all(); - let not = this; - if (reg) { - self2 = this; - not = this.match(reg); - } - let isFull = !self2.ptrs; - if (not.has("@hasContraction") && not.contractions) { - let more = not.grow("@hasContraction"); - more.contractions().expand(); - } - let ptrs = self2.fullPointer; - let nots = not.fullPointer.reverse(); - let document2 = remove_default(this.document, nots); - let gonePtrs = indexN2(nots); - ptrs = fixPointers(ptrs, gonePtrs); - self2.ptrs = ptrs; - self2.document = document2; - self2.compute("index"); - if (isFull) { - self2.ptrs = void 0; - } - if (!reg) { - this.ptrs = []; - return self2.none(); - } - let res = self2.toView(ptrs); - return res; - } -}; -methods4.delete = methods4.remove; -var remove_default2 = methods4; - -// node_modules/compromise/src/1-one/change/api/whitespace.js -var methods5 = { - pre: function(str, concat) { - if (str === void 0 && this.found) { - return this.docs[0][0].pre; - } - this.docs.forEach((terms) => { - let term = terms[0]; - if (concat === true) { - term.pre += str; - } else { - term.pre = str; - } - }); - return this; - }, - post: function(str, concat) { - if (str === void 0) { - let last = this.docs[this.docs.length - 1]; - return last[last.length - 1].post; - } - this.docs.forEach((terms) => { - let term = terms[terms.length - 1]; - if (concat === true) { - term.post += str; - } else { - term.post = str; - } - }); - return this; - }, - trim: function() { - if (!this.found) { - return this; - } - let docs = this.docs; - let start2 = docs[0][0]; - start2.pre = start2.pre.trimStart(); - let last = docs[docs.length - 1]; - let end2 = last[last.length - 1]; - end2.post = end2.post.trimEnd(); - return this; - }, - hyphenate: function() { - this.docs.forEach((terms) => { - terms.forEach((t2, i3) => { - if (i3 !== 0) { - t2.pre = ""; - } - if (terms[i3 + 1]) { - t2.post = "-"; - } - }); - }); - return this; - }, - dehyphenate: function() { - const hasHyphen3 = /[-–—]/; - this.docs.forEach((terms) => { - terms.forEach((t2) => { - if (hasHyphen3.test(t2.post)) { - t2.post = " "; - } - }); - }); - return this; - }, - toQuotations: function(start2, end2) { - start2 = start2 || `"`; - end2 = end2 || `"`; - this.docs.forEach((terms) => { - terms[0].pre = start2 + terms[0].pre; - let last = terms[terms.length - 1]; - last.post = end2 + last.post; - }); - return this; - }, - toParentheses: function(start2, end2) { - start2 = start2 || `(`; - end2 = end2 || `)`; - this.docs.forEach((terms) => { - terms[0].pre = start2 + terms[0].pre; - let last = terms[terms.length - 1]; - last.post = end2 + last.post; - }); - return this; - } -}; -methods5.deHyphenate = methods5.dehyphenate; -methods5.toQuotation = methods5.toQuotations; -var whitespace_default = methods5; - -// node_modules/compromise/src/1-one/change/api/lib/_sort.js -var alpha = (a2, b) => { - if (a2.normal < b.normal) { - return -1; - } - if (a2.normal > b.normal) { - return 1; - } - return 0; -}; -var length = (a2, b) => { - let left = a2.normal.trim().length; - let right = b.normal.trim().length; - if (left < right) { - return 1; - } - if (left > right) { - return -1; - } - return 0; -}; -var wordCount = (a2, b) => { - if (a2.words < b.words) { - return 1; - } - if (a2.words > b.words) { - return -1; - } - return 0; -}; -var sequential = (a2, b) => { - if (a2[0] < b[0]) { - return 1; - } - if (a2[0] > b[0]) { - return -1; - } - return a2[1] > b[1] ? 1 : -1; -}; -var byFreq = function(arr) { - let counts = {}; - arr.forEach((o2) => { - counts[o2.normal] = counts[o2.normal] || 0; - counts[o2.normal] += 1; - }); - arr.sort((a2, b) => { - let left = counts[a2.normal]; - let right = counts[b.normal]; - if (left < right) { - return 1; - } - if (left > right) { - return -1; - } - return 0; - }); - return arr; -}; -var sort_default = { alpha, length, wordCount, sequential, byFreq }; - -// node_modules/compromise/src/1-one/change/api/sort.js -var seqNames = /* @__PURE__ */ new Set(["index", "sequence", "seq", "sequential", "chron", "chronological"]); -var freqNames = /* @__PURE__ */ new Set(["freq", "frequency", "topk", "repeats"]); -var alphaNames = /* @__PURE__ */ new Set(["alpha", "alphabetical"]); -var customSort = function(view, fn) { - let ptrs = view.fullPointer; - ptrs = ptrs.sort((a2, b) => { - a2 = view.update([a2]); - b = view.update([b]); - return fn(a2, b); - }); - view.ptrs = ptrs; - return view; -}; -var sort = function(input) { - let { docs, pointer } = this; - this.uncache(); - if (typeof input === "function") { - return customSort(this, input); - } - input = input || "alpha"; - let ptrs = pointer || docs.map((_d, n3) => [n3]); - let arr = docs.map((terms, n3) => { - return { - index: n3, - words: terms.length, - normal: terms.map((t2) => t2.machine || t2.normal || "").join(" "), - pointer: ptrs[n3] - }; - }); - if (seqNames.has(input)) { - input = "sequential"; - } - if (alphaNames.has(input)) { - input = "alpha"; - } - if (freqNames.has(input)) { - arr = sort_default.byFreq(arr); - return this.update(arr.map((o2) => o2.pointer)); - } - if (typeof sort_default[input] === "function") { - arr = arr.sort(sort_default[input]); - return this.update(arr.map((o2) => o2.pointer)); - } - return this; -}; -var reverse = function() { - let ptrs = this.pointer || this.docs.map((_d, n3) => [n3]); - ptrs = [].concat(ptrs); - ptrs = ptrs.reverse(); - if (this._cache) { - this._cache = this._cache.reverse(); - } - return this.update(ptrs); -}; -var unique = function() { - let already = /* @__PURE__ */ new Set(); - let res = this.filter((m3) => { - let txt = m3.text("machine"); - if (already.has(txt)) { - return false; - } - already.add(txt); - return true; - }); - return res; -}; -var sort_default2 = { unique, reverse, sort }; - -// node_modules/compromise/src/1-one/change/api/concat.js -var isArray4 = (arr) => Object.prototype.toString.call(arr) === "[object Array]"; -var combineDocs = function(homeDocs, inputDocs) { - if (homeDocs.length > 0) { - let end2 = homeDocs[homeDocs.length - 1]; - let last = end2[end2.length - 1]; - if (/ /.test(last.post) === false) { - last.post += " "; - } - } - homeDocs = homeDocs.concat(inputDocs); - return homeDocs; -}; -var combineViews = function(home, input) { - if (home.document === input.document) { - let ptrs2 = home.fullPointer.concat(input.fullPointer); - return home.toView(ptrs2).compute("index"); - } - let ptrs = input.fullPointer; - ptrs.forEach((a2) => { - a2[0] += home.document.length; - }); - home.document = combineDocs(home.document, input.docs); - return home.all(); -}; -var concat_default = { - concat: function(input) { - if (typeof input === "string") { - let more = this.fromText(input); - if (!this.found || !this.ptrs) { - this.document = this.document.concat(more.document); - } else { - let ptrs = this.fullPointer; - let at = ptrs[ptrs.length - 1][0]; - this.document.splice(at, 0, ...more.document); - } - return this.all().compute("index"); - } - if (typeof input === "object" && input.isView) { - return combineViews(this, input); - } - if (isArray4(input)) { - let docs = combineDocs(this.document, input); - this.document = docs; - return this.all(); - } - return this; - } -}; - -// node_modules/compromise/src/1-one/change/api/harden.js -var harden = function() { - this.ptrs = this.fullPointer; - return this; -}; -var soften = function() { - let ptr = this.ptrs; - if (!ptr || ptr.length < 1) { - return this; - } - ptr = ptr.map((a2) => a2.slice(0, 3)); - this.ptrs = ptr; - return this; -}; -var harden_default = { harden, soften }; - -// node_modules/compromise/src/1-one/change/api/index.js -var methods6 = Object.assign({}, case_default, insert_default, replace_default, remove_default2, whitespace_default, sort_default2, concat_default, harden_default); -var addAPI2 = function(View2) { - Object.assign(View2.prototype, methods6); -}; -var api_default2 = addAPI2; - -// node_modules/compromise/src/1-one/change/compute/index.js -var compute2 = { - id: function(view) { - let docs = view.docs; - for (let n3 = 0; n3 < docs.length; n3 += 1) { - for (let i3 = 0; i3 < docs[n3].length; i3 += 1) { - let term = docs[n3][i3]; - term.id = term.id || uuid_default(term); - } - } - } -}; -var compute_default3 = compute2; - -// node_modules/compromise/src/1-one/change/plugin.js -var plugin_default2 = { - api: api_default2, - compute: compute_default3 -}; - -// node_modules/compromise/src/1-one/contraction-one/model/contractions.js -var contractions_default = [ - { word: "@", out: ["at"] }, - { word: "alot", out: ["a", "lot"] }, - { word: "brb", out: ["be", "right", "back"] }, - { word: "cannot", out: ["can", "not"] }, - { word: "cant", out: ["can", "not"] }, - { word: "dont", out: ["do", "not"] }, - { word: "dun", out: ["do", "not"] }, - { word: "wont", out: ["will", "not"] }, - { word: "can't", out: ["can", "not"] }, - { word: "shan't", out: ["should", "not"] }, - { word: "won't", out: ["will", "not"] }, - { word: "that's", out: ["that", "is"] }, - { word: "what's", out: ["what", "is"] }, - { word: "let's", out: ["let", "us"] }, - { word: "there's", out: ["there", "is"] }, - { word: "dunno", out: ["do", "not", "know"] }, - { word: "gonna", out: ["going", "to"] }, - { word: "gotta", out: ["have", "got", "to"] }, - { word: "gimme", out: ["give", "me"] }, - { word: "tryna", out: ["trying", "to"] }, - { word: "gtg", out: ["got", "to", "go"] }, - { word: "im", out: ["i", "am"] }, - { word: "imma", out: ["I", "will"] }, - { word: "imo", out: ["in", "my", "opinion"] }, - { word: "irl", out: ["in", "real", "life"] }, - { word: "ive", out: ["i", "have"] }, - { word: "rn", out: ["right", "now"] }, - { word: "tbh", out: ["to", "be", "honest"] }, - { word: "wanna", out: ["want", "to"] }, - { word: `c'mere`, out: ["come", "here"] }, - { word: `c'mon`, out: ["come", "on"] }, - { word: "howd", out: ["how", "did"] }, - { word: "whatd", out: ["what", "did"] }, - { word: "whend", out: ["when", "did"] }, - { word: "whered", out: ["where", "did"] }, - { word: "shoulda", out: ["should", "have"] }, - { word: "coulda", out: ["coulda", "have"] }, - { word: "woulda", out: ["woulda", "have"] }, - { word: "musta", out: ["must", "have"] }, - { word: "tis", out: ["it", "is"] }, - { word: "twas", out: ["it", "was"] }, - { word: `y'know`, out: ["you", "know"] }, - { word: "ne'er", out: ["never"] }, - { word: "o'er", out: ["over"] }, - { after: "ll", out: ["will"] }, - { after: "ve", out: ["have"] }, - { after: "re", out: ["are"] }, - { after: "m", out: ["am"] }, - { before: "c", out: ["ce"] }, - { before: "m", out: ["me"] }, - { before: "n", out: ["ne"] }, - { before: "qu", out: ["que"] }, - { before: "s", out: ["se"] }, - { before: "t", out: ["tu"] } -]; - -// node_modules/compromise/src/1-one/contraction-one/model/index.js -var model_default = { one: { contractions: contractions_default } }; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/_splice.js -var insertContraction = function(document2, point, words) { - let [n3, w] = point; - if (!words || words.length === 0) { - return; - } - words = words.map((word, i3) => { - word.implicit = word.text; - word.machine = word.text; - word.pre = ""; - word.post = ""; - word.text = ""; - word.normal = ""; - word.index = [n3, w + i3]; - return word; - }); - if (words[0]) { - words[0].pre = document2[n3][w].pre; - words[words.length - 1].post = document2[n3][w].post; - words[0].text = document2[n3][w].text; - words[0].normal = document2[n3][w].normal; - } - document2[n3].splice(w, 1, ...words); -}; -var splice_default = insertContraction; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/apostrophe-d.js -var hasContraction = /'/; -var alwaysDid = /* @__PURE__ */ new Set([ - "what", - "how", - "when", - "where", - "why" -]); -var useWould = /* @__PURE__ */ new Set([ - "be", - "go", - "start", - "think", - "need" -]); -var useHad = /* @__PURE__ */ new Set([ - "been", - "gone" -]); -var _apostropheD = function(terms, i3) { - let before2 = terms[i3].normal.split(hasContraction)[0]; - if (alwaysDid.has(before2)) { - return [before2, "did"]; - } - if (terms[i3 + 1]) { - if (useHad.has(terms[i3 + 1].normal)) { - return [before2, "had"]; - } - if (useWould.has(terms[i3 + 1].normal)) { - return [before2, "would"]; - } - } - return null; -}; -var apostrophe_d_default = _apostropheD; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/apostrophe-t.js -var apostropheT = function(terms, i3) { - if (terms[i3].normal === "ain't" || terms[i3].normal === "aint") { - return null; - } - let before2 = terms[i3].normal.replace(/n't/, ""); - return [before2, "not"]; -}; -var apostrophe_t_default = apostropheT; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/french.js -var hasContraction2 = /'/; -var preL = (terms, i3) => { - let after2 = terms[i3].normal.split(hasContraction2)[1]; - if (after2 && after2.endsWith("e")) { - return ["la", after2]; - } - return ["le", after2]; -}; -var preD = (terms, i3) => { - let after2 = terms[i3].normal.split(hasContraction2)[1]; - if (after2 && after2.endsWith("e")) { - return ["du", after2]; - } else if (after2 && after2.endsWith("s")) { - return ["des", after2]; - } - return ["de", after2]; -}; -var preJ = (terms, i3) => { - let after2 = terms[i3].normal.split(hasContraction2)[1]; - return ["je", after2]; -}; -var french_default = { - preJ, - preL, - preD -}; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/number-range.js -var isRange = /^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i; -var timeRange = /^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i; -var phoneNum = /^[0-9]{3}-[0-9]{4}$/; -var numberRange = function(terms, i3) { - let term = terms[i3]; - let parts = term.text.match(isRange); - if (parts !== null) { - if (term.tags.has("PhoneNumber") === true || phoneNum.test(term.text)) { - return null; - } - return [parts[1], "to", parts[2]]; - } else { - parts = term.text.match(timeRange); - if (parts !== null) { - return [parts[1], "to", parts[4]]; - } - } - return null; -}; -var number_range_default = numberRange; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/number-unit.js -var numUnit = /^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/; -var notUnit = /* @__PURE__ */ new Set([ - "st", - "nd", - "rd", - "th", - "am", - "pm", - "max", - "\xB0", - "s", - "e" -]); -var numberUnit = function(terms, i3) { - let term = terms[i3]; - let parts = term.text.match(numUnit); - if (parts !== null) { - let unit = parts[2].toLowerCase().trim(); - if (notUnit.has(unit)) { - return null; - } - return [parts[1], unit]; - } - return null; -}; -var number_unit_default = numberUnit; - -// node_modules/compromise/src/1-one/contraction-one/compute/contractions/index.js -var byApostrophe = /'/; -var numDash = /^[0-9][^-–—]*[-–—].*?[0-9]/; -var reTag = function(terms, view, start2, len) { - let tmp = view.update(); - tmp.document = [terms]; - let end2 = start2 + len; - if (start2 > 0) { - start2 -= 1; - } - if (terms[end2]) { - end2 += 1; - } - tmp.ptrs = [[0, start2, end2]]; -}; -var byEnd = { - t: (terms, i3) => apostrophe_t_default(terms, i3), - d: (terms, i3) => apostrophe_d_default(terms, i3) -}; -var byStart = { - j: (terms, i3) => french_default.preJ(terms, i3), - l: (terms, i3) => french_default.preL(terms, i3), - d: (terms, i3) => french_default.preD(terms, i3) -}; -var knownOnes = function(list4, term, before2, after2) { - for (let i3 = 0; i3 < list4.length; i3 += 1) { - let o2 = list4[i3]; - if (o2.word === term.normal) { - return o2.out; - } else if (after2 !== null && after2 === o2.after) { - return [before2].concat(o2.out); - } else if (before2 !== null && before2 === o2.before) { - return o2.out.concat(after2); - } - } - return null; -}; -var toDocs = function(words, view) { - let doc = view.fromText(words.join(" ")); - doc.compute(["id", "alias"]); - return doc.docs[0]; -}; -var contractions = (view) => { - let { world: world2, document: document2 } = view; - const { model: model5, methods: methods16 } = world2; - let list4 = model5.one.contractions || []; - let units = new Set(model5.one.units || []); - document2.forEach((terms, n3) => { - for (let i3 = terms.length - 1; i3 >= 0; i3 -= 1) { - let before2 = null; - let after2 = null; - if (byApostrophe.test(terms[i3].normal) === true) { - [before2, after2] = terms[i3].normal.split(byApostrophe); - } - let words = knownOnes(list4, terms[i3], before2, after2); - if (!words && byEnd.hasOwnProperty(after2)) { - words = byEnd[after2](terms, i3, world2); - } - if (!words && byStart.hasOwnProperty(before2)) { - words = byStart[before2](terms, i3); - } - if (words) { - words = toDocs(words, view); - splice_default(document2, [n3, i3], words); - reTag(document2[n3], view, i3, words.length); - continue; - } - if (numDash.test(terms[i3].normal)) { - words = number_range_default(terms, i3); - if (words) { - words = toDocs(words, view); - splice_default(document2, [n3, i3], words); - methods16.one.setTag(words, "NumberRange", world2); - if (words[2] && words[2].tags.has("Time")) { - methods16.one.setTag([words[0]], "Time", world2, null, "time-range"); - } - reTag(document2[n3], view, i3, words.length); - } - continue; - } - words = number_unit_default(terms, i3, units); - if (words) { - words = toDocs(words, view); - splice_default(document2, [n3, i3], words); - methods16.one.setTag([words[1]], "Unit", world2, null, "contraction-unit"); - } - } - }); -}; -var contractions_default2 = contractions; - -// node_modules/compromise/src/1-one/contraction-one/compute/index.js -var compute_default4 = { contractions: contractions_default2 }; - -// node_modules/compromise/src/1-one/contraction-one/plugin.js -var plugin = { - model: model_default, - compute: compute_default4, - hooks: ["contractions"] -}; -var plugin_default3 = plugin; - -// node_modules/compromise/src/1-one/lexicon/compute/multi-word.js -var checkMulti = function(terms, i3, lexicon4, setTag3, world2) { - let max3 = i3 + 4 > terms.length ? terms.length - i3 : 4; - let str = terms[i3].machine || terms[i3].normal; - for (let skip = 1; skip < max3; skip += 1) { - let t2 = terms[i3 + skip]; - let word = t2.machine || t2.normal; - str += " " + word; - if (lexicon4.hasOwnProperty(str) === true) { - let tag = lexicon4[str]; - let ts = terms.slice(i3, i3 + skip + 1); - setTag3(ts, tag, world2, false, "1-multi-lexicon"); - if (tag && tag.length === 2 && (tag[0] === "PhrasalVerb" || tag[1] === "PhrasalVerb")) { - setTag3([ts[1]], "Particle", world2, false, "1-phrasal-particle"); - } - return true; - } - } - return false; -}; -var multiWord = function(terms, i3, world2) { - const { model: model5, methods: methods16 } = world2; - const setTag3 = methods16.one.setTag; - const multi = model5.one._multiCache || {}; - const lexicon4 = model5.one.lexicon || {}; - let t2 = terms[i3]; - let word = t2.machine || t2.normal; - if (terms[i3 + 1] !== void 0 && multi[word] === true) { - return checkMulti(terms, i3, lexicon4, setTag3, world2); - } - return null; -}; -var multi_word_default = multiWord; - -// node_modules/compromise/src/1-one/lexicon/compute/single-word.js -var prefix = /^(under|over|mis|re|un|dis|semi|pre|post)-?/; -var allowPrefix = /* @__PURE__ */ new Set(["Verb", "Infinitive", "PastTense", "Gerund", "PresentTense", "Adjective", "Participle"]); -var checkLexicon = function(terms, i3, world2) { - const { model: model5, methods: methods16 } = world2; - const setTag3 = methods16.one.setTag; - const lexicon4 = model5.one.lexicon; - let t2 = terms[i3]; - let word = t2.machine || t2.normal; - if (lexicon4[word] !== void 0 && lexicon4.hasOwnProperty(word)) { - let tag = lexicon4[word]; - setTag3([t2], tag, world2, false, "1-lexicon"); - return true; - } - if (t2.alias) { - let found = t2.alias.find((str) => lexicon4.hasOwnProperty(str)); - if (found) { - let tag = lexicon4[found]; - setTag3([t2], tag, world2, false, "1-lexicon-alias"); - return true; - } - } - if (prefix.test(word) === true) { - let stem = word.replace(prefix, ""); - if (lexicon4.hasOwnProperty(stem) && stem.length > 3) { - if (allowPrefix.has(lexicon4[stem])) { - setTag3([t2], lexicon4[stem], world2, false, "1-lexicon-prefix"); - return true; - } - } - } - return null; -}; -var single_word_default = checkLexicon; - -// node_modules/compromise/src/1-one/lexicon/compute/index.js -var lexicon = function(view) { - const world2 = view.world; - view.docs.forEach((terms) => { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - if (terms[i3].tags.size === 0) { - let found = null; - found = found || multi_word_default(terms, i3, world2); - found = found || single_word_default(terms, i3, world2); - } - } - }); -}; -var compute_default5 = { - lexicon -}; - -// node_modules/compromise/src/1-one/lexicon/methods/expand.js -var expand2 = function(words) { - let lex = {}; - let _multi = {}; - Object.keys(words).forEach((word) => { - let tag = words[word]; - word = word.toLowerCase().trim(); - word = word.replace(/'s\b/, ""); - let split3 = word.split(/ /); - if (split3.length > 1) { - _multi[split3[0]] = true; - } - lex[word] = lex[word] || tag; - }); - delete lex[""]; - delete lex[null]; - delete lex[" "]; - return { lex, _multi }; -}; -var expand_default = expand2; - -// node_modules/compromise/src/1-one/lexicon/methods/index.js -var methods_default3 = { - one: { - expandLexicon: expand_default - } -}; - -// node_modules/compromise/src/1-one/lexicon/lib.js -var addWords = function(words) { - const world2 = this.world(); - const { methods: methods16, model: model5 } = world2; - if (!words) { - return; - } - Object.keys(words).forEach((k2) => { - if (typeof words[k2] === "string" && words[k2].startsWith("#")) { - words[k2] = words[k2].replace(/^#/, ""); - } - }); - if (methods16.two.expandLexicon) { - let { lex, _multi } = methods16.two.expandLexicon(words, world2); - Object.assign(model5.one.lexicon, lex); - Object.assign(model5.one._multiCache, _multi); - } else if (methods16.one.expandLexicon) { - let { lex, _multi } = methods16.one.expandLexicon(words, world2); - Object.assign(model5.one.lexicon, lex); - Object.assign(model5.one._multiCache, _multi); - } else { - Object.assign(model5.one.lexicon, words); - } -}; -var lib_default = { addWords }; - -// node_modules/compromise/src/1-one/lexicon/plugin.js -var model2 = { - one: { - lexicon: {}, - _multiCache: {} - } -}; -var plugin_default4 = { - model: model2, - methods: methods_default3, - compute: compute_default5, - lib: lib_default, - hooks: ["lexicon"] -}; - -// node_modules/compromise/src/1-one/lookup/api/buildTrie/index.js -var tokenize = function(phrase, world2) { - const { methods: methods16, model: model5 } = world2; - let terms = methods16.one.tokenize.splitTerms(phrase, model5).map((t2) => methods16.one.tokenize.splitWhitespace(t2, model5)); - return terms.map((term) => term.text.toLowerCase()); -}; -var buildTrie = function(phrases, world2) { - let goNext = [{}]; - let endAs = [null]; - let failTo = [0]; - let xs = []; - let n3 = 0; - phrases.forEach(function(phrase) { - let curr = 0; - let words = tokenize(phrase, world2); - for (let i3 = 0; i3 < words.length; i3++) { - let word = words[i3]; - if (goNext[curr] && goNext[curr].hasOwnProperty(word)) { - curr = goNext[curr][word]; - } else { - n3++; - goNext[curr][word] = n3; - goNext[n3] = {}; - curr = n3; - endAs[n3] = null; - } - } - endAs[curr] = [words.length]; - }); - for (let word in goNext[0]) { - n3 = goNext[0][word]; - failTo[n3] = 0; - xs.push(n3); - } - while (xs.length) { - let r2 = xs.shift(); - let keys = Object.keys(goNext[r2]); - for (let i3 = 0; i3 < keys.length; i3 += 1) { - let word = keys[i3]; - let s3 = goNext[r2][word]; - xs.push(s3); - n3 = failTo[r2]; - while (n3 > 0 && !goNext[n3].hasOwnProperty(word)) { - n3 = failTo[n3]; - } - if (goNext.hasOwnProperty(n3)) { - let fs = goNext[n3][word]; - failTo[s3] = fs; - if (endAs[fs]) { - endAs[s3] = endAs[s3] || []; - endAs[s3] = endAs[s3].concat(endAs[fs]); - } - } else { - failTo[s3] = 0; - } - } - } - return { goNext, endAs, failTo }; -}; -var buildTrie_default = buildTrie; - -// node_modules/compromise/src/1-one/lookup/api/scan.js -var scanWords = function(terms, trie, opts2) { - let n3 = 0; - let results = []; - for (let i3 = 0; i3 < terms.length; i3++) { - let word = terms[i3][opts2.form] || terms[i3].normal; - while (n3 > 0 && (trie.goNext[n3] === void 0 || !trie.goNext[n3].hasOwnProperty(word))) { - n3 = trie.failTo[n3] || 0; - } - if (!trie.goNext[n3].hasOwnProperty(word)) { - continue; - } - n3 = trie.goNext[n3][word]; - if (trie.endAs[n3]) { - let arr = trie.endAs[n3]; - for (let o2 = 0; o2 < arr.length; o2++) { - let len = arr[o2]; - let term = terms[i3 - len + 1]; - let [no, start2] = term.index; - results.push([no, start2, start2 + len, term.id]); - } - } - } - return results; -}; -var cacheMiss = function(words, cache2) { - for (let i3 = 0; i3 < words.length; i3 += 1) { - if (cache2.has(words[i3]) === true) { - return false; - } - } - return true; -}; -var scan = function(view, trie, opts2) { - let results = []; - opts2.form = opts2.form || "normal"; - let docs = view.docs; - if (!trie.goNext || !trie.goNext[0]) { - console.error("Compromise invalid lookup trie"); - return view.none(); - } - let firstWords = Object.keys(trie.goNext[0]); - for (let i3 = 0; i3 < docs.length; i3++) { - if (view._cache && view._cache[i3] && cacheMiss(firstWords, view._cache[i3]) === true) { - continue; - } - let terms = docs[i3]; - let found = scanWords(terms, trie, opts2); - if (found.length > 0) { - results = results.concat(found); - } - } - return view.update(results); -}; -var scan_default = scan; - -// node_modules/compromise/src/1-one/lookup/api/index.js -var isObject3 = (val) => { - return Object.prototype.toString.call(val) === "[object Object]"; -}; -function api_default3(View2) { - View2.prototype.lookup = function(input, opts2 = {}) { - if (!input) { - return this.none(); - } - if (typeof input === "string") { - input = [input]; - } - let trie = isObject3(input) ? input : buildTrie_default(input, this.world); - let res = scan_default(this, trie, opts2); - res = res.settle(); - return res; - }; -} - -// node_modules/compromise/src/1-one/lookup/api/buildTrie/compress.js -var truncate = (list4, val) => { - for (let i3 = list4.length - 1; i3 >= 0; i3 -= 1) { - if (list4[i3] !== val) { - list4 = list4.slice(0, i3 + 1); - return list4; - } - } - return list4; -}; -var compress = function(trie) { - trie.goNext = trie.goNext.map((o2) => { - if (Object.keys(o2).length === 0) { - return void 0; - } - return o2; - }); - trie.goNext = truncate(trie.goNext, void 0); - trie.failTo = truncate(trie.failTo, 0); - trie.endAs = truncate(trie.endAs, null); - return trie; -}; -var compress_default = compress; - -// node_modules/compromise/src/1-one/lookup/plugin.js -var lib = { - buildTrie: function(input) { - const trie = buildTrie_default(input, this.world()); - return compress_default(trie); - } -}; -lib.compile = lib.buildTrie; -var plugin_default5 = { - api: api_default3, - lib -}; - -// node_modules/compromise/src/1-one/match/api/_lib.js -var relPointer = function(ptrs, parent) { - if (!parent) { - return ptrs; - } - ptrs.forEach((ptr) => { - let n3 = ptr[0]; - if (parent[n3]) { - ptr[0] = parent[n3][0]; - ptr[1] += parent[n3][1]; - ptr[2] += parent[n3][1]; - } - }); - return ptrs; -}; -var fixPointers2 = function(res, parent) { - let { ptrs, byGroup } = res; - ptrs = relPointer(ptrs, parent); - Object.keys(byGroup).forEach((k2) => { - byGroup[k2] = relPointer(byGroup[k2], parent); - }); - return { ptrs, byGroup }; -}; -var isObject4 = (val) => { - return Object.prototype.toString.call(val) === "[object Object]"; -}; -var isView = (val) => val && isObject4(val) && val.isView === true; -var isNet = (val) => val && isObject4(val) && val.isNet === true; - -// node_modules/compromise/src/1-one/match/api/match.js -var parseRegs = function(regs, opts2, world2) { - const one = world2.methods.one; - if (typeof regs === "number") { - regs = String(regs); - } - if (typeof regs === "string") { - regs = one.killUnicode(regs, world2); - regs = one.parseMatch(regs, opts2, world2); - } - return regs; -}; -var match = function(regs, group, opts2) { - const one = this.methods.one; - if (isView(regs)) { - return this.intersection(regs); - } - if (isNet(regs)) { - return this.sweep(regs, { tagger: false }).view.settle(); - } - regs = parseRegs(regs, opts2, this.world); - let todo = { regs, group }; - let res = one.match(this.docs, todo, this._cache); - let { ptrs, byGroup } = fixPointers2(res, this.fullPointer); - let view = this.toView(ptrs); - view._groups = byGroup; - return view; -}; -var matchOne = function(regs, group, opts2) { - const one = this.methods.one; - if (isView(regs)) { - return this.intersection(regs).eq(0); - } - if (isNet(regs)) { - return this.sweep(regs, { tagger: false, matchOne: true }).view; - } - regs = parseRegs(regs, opts2, this.world); - let todo = { regs, group, justOne: true }; - let res = one.match(this.docs, todo, this._cache); - let { ptrs, byGroup } = fixPointers2(res, this.fullPointer); - let view = this.toView(ptrs); - view._groups = byGroup; - return view; -}; -var has = function(regs, group, opts2) { - const one = this.methods.one; - if (isView(regs)) { - let ptrs2 = regs.fullPointer; - return ptrs2.length > 0; - } - if (isNet(regs)) { - return this.sweep(regs, { tagger: false }).view.found; - } - regs = parseRegs(regs, opts2, this.world); - let todo = { regs, group, justOne: true }; - let ptrs = one.match(this.docs, todo, this._cache).ptrs; - return ptrs.length > 0; -}; -var ifFn = function(regs, group, opts2) { - const one = this.methods.one; - if (isView(regs)) { - return this.filter((m3) => m3.intersection(regs).found); - } - if (isNet(regs)) { - let m3 = this.sweep(regs, { tagger: false }).view.settle(); - return this.if(m3); - } - regs = parseRegs(regs, opts2, this.world); - let todo = { regs, group, justOne: true }; - let ptrs = this.fullPointer; - let cache2 = this._cache || []; - ptrs = ptrs.filter((ptr, i3) => { - let m3 = this.update([ptr]); - let res = one.match(m3.docs, todo, cache2[i3]).ptrs; - return res.length > 0; - }); - let view = this.update(ptrs); - if (this._cache) { - view._cache = ptrs.map((ptr) => cache2[ptr[0]]); - } - return view; -}; -var ifNo = function(regs, group, opts2) { - const { methods: methods16 } = this; - const one = methods16.one; - if (isView(regs)) { - return this.filter((m3) => !m3.intersection(regs).found); - } - if (isNet(regs)) { - let m3 = this.sweep(regs, { tagger: false }).view.settle(); - return this.ifNo(m3); - } - regs = parseRegs(regs, opts2, this.world); - let cache2 = this._cache || []; - let view = this.filter((m3, i3) => { - let todo = { regs, group, justOne: true }; - let ptrs = one.match(m3.docs, todo, cache2[i3]).ptrs; - return ptrs.length === 0; - }); - if (this._cache) { - view._cache = view.ptrs.map((ptr) => cache2[ptr[0]]); - } - return view; -}; -var match_default = { matchOne, match, has, if: ifFn, ifNo }; - -// node_modules/compromise/src/1-one/match/api/lookaround.js -var before = function(regs, group, opts2) { - const { indexN: indexN2 } = this.methods.one.pointer; - let pre = []; - let byN = indexN2(this.fullPointer); - Object.keys(byN).forEach((k2) => { - let first = byN[k2].sort((a2, b) => a2[1] > b[1] ? 1 : -1)[0]; - if (first[1] > 0) { - pre.push([first[0], 0, first[1]]); - } - }); - let preWords = this.toView(pre); - if (!regs) { - return preWords; - } - return preWords.match(regs, group, opts2); -}; -var after = function(regs, group, opts2) { - const { indexN: indexN2 } = this.methods.one.pointer; - let post = []; - let byN = indexN2(this.fullPointer); - let document2 = this.document; - Object.keys(byN).forEach((k2) => { - let last = byN[k2].sort((a2, b) => a2[1] > b[1] ? -1 : 1)[0]; - let [n3, , end2] = last; - if (end2 < document2[n3].length) { - post.push([n3, end2, document2[n3].length]); - } - }); - let postWords = this.toView(post); - if (!regs) { - return postWords; - } - return postWords.match(regs, group, opts2); -}; -var growLeft = function(regs, group, opts2) { - if (typeof regs === "string") { - regs = this.world.methods.one.parseMatch(regs, opts2, this.world); - } - regs[regs.length - 1].end = true; - let ptrs = this.fullPointer; - this.forEach((m3, n3) => { - let more = m3.before(regs, group); - if (more.found) { - let terms = more.terms(); - ptrs[n3][1] -= terms.length; - ptrs[n3][3] = terms.docs[0][0].id; - } - }); - return this.update(ptrs); -}; -var growRight = function(regs, group, opts2) { - if (typeof regs === "string") { - regs = this.world.methods.one.parseMatch(regs, opts2, this.world); - } - regs[0].start = true; - let ptrs = this.fullPointer; - this.forEach((m3, n3) => { - let more = m3.after(regs, group); - if (more.found) { - let terms = more.terms(); - ptrs[n3][2] += terms.length; - ptrs[n3][4] = null; - } - }); - return this.update(ptrs); -}; -var grow = function(regs, group, opts2) { - return this.growRight(regs, group, opts2).growLeft(regs, group, opts2); -}; -var lookaround_default = { before, after, growLeft, growRight, grow }; - -// node_modules/compromise/src/1-one/match/api/split.js -var combine = function(left, right) { - return [left[0], left[1], right[2]]; -}; -var isArray5 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var getDoc = (reg, view, group) => { - if (typeof reg === "string" || isArray5(reg)) { - return view.match(reg, group); - } - if (!reg) { - return view.none(); - } - return reg; -}; -var addIds2 = function(ptr, view) { - let [n3, start2, end2] = ptr; - if (view.document[n3] && view.document[n3][start2]) { - ptr[3] = ptr[3] || view.document[n3][start2].id; - if (view.document[n3][end2 - 1]) { - ptr[4] = ptr[4] || view.document[n3][end2 - 1].id; - } - } - return ptr; -}; -var methods7 = {}; -methods7.splitOn = function(m3, group) { - const { splitAll: splitAll2 } = this.methods.one.pointer; - let splits = getDoc(m3, this, group).fullPointer; - let all4 = splitAll2(this.fullPointer, splits); - let res = []; - all4.forEach((o2) => { - res.push(o2.passthrough); - res.push(o2.before); - res.push(o2.match); - res.push(o2.after); - }); - res = res.filter((p4) => p4); - res = res.map((p4) => addIds2(p4, this)); - return this.update(res); -}; -methods7.splitBefore = function(m3, group) { - const { splitAll: splitAll2 } = this.methods.one.pointer; - let splits = getDoc(m3, this, group).fullPointer; - let all4 = splitAll2(this.fullPointer, splits); - let res = []; - all4.forEach((o2) => { - res.push(o2.passthrough); - res.push(o2.before); - if (o2.match && o2.after) { - res.push(combine(o2.match, o2.after)); - } else { - res.push(o2.match); - res.push(o2.after); - } - }); - res = res.filter((p4) => p4); - res = res.map((p4) => addIds2(p4, this)); - return this.update(res); -}; -methods7.splitAfter = function(m3, group) { - const { splitAll: splitAll2 } = this.methods.one.pointer; - let splits = getDoc(m3, this, group).fullPointer; - let all4 = splitAll2(this.fullPointer, splits); - let res = []; - all4.forEach((o2) => { - res.push(o2.passthrough); - if (o2.before && o2.match) { - res.push(combine(o2.before, o2.match)); - } else { - res.push(o2.before); - res.push(o2.match); - } - res.push(o2.after); - }); - res = res.filter((p4) => p4); - res = res.map((p4) => addIds2(p4, this)); - return this.update(res); -}; -methods7.split = methods7.splitAfter; -var split_default = methods7; - -// node_modules/compromise/src/1-one/match/api/index.js -var methods8 = Object.assign({}, match_default, lookaround_default, split_default); -methods8.lookBehind = methods8.before; -methods8.lookBefore = methods8.before; -methods8.lookAhead = methods8.after; -methods8.lookAfter = methods8.after; -methods8.notIf = methods8.ifNo; -var matchAPI = function(View2) { - Object.assign(View2.prototype, methods8); -}; -var api_default4 = matchAPI; - -// node_modules/compromise/src/1-one/match/methods/parseMatch/01-parseBlocks.js -var bySlashes = /(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/; -var byParentheses = /([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/; -var byWord = / /g; -var isBlock = (str) => { - return /^[![^]*(<[^<]*>)?\(/.test(str) && /\)[?\]+*$~]*$/.test(str); -}; -var isReg = (str) => { - return /^[![^]*(<[^<]*>)?\//.test(str) && /\/[?\]+*$~]*$/.test(str); -}; -var cleanUp = function(arr) { - arr = arr.map((str) => str.trim()); - arr = arr.filter((str) => str); - return arr; -}; -var parseBlocks = function(txt) { - let arr = txt.split(bySlashes); - let res = []; - arr.forEach((str) => { - if (isReg(str)) { - res.push(str); - return; - } - res = res.concat(str.split(byParentheses)); - }); - res = cleanUp(res); - let final = []; - res.forEach((str) => { - if (isBlock(str)) { - final.push(str); - } else if (isReg(str)) { - final.push(str); - } else { - final = final.concat(str.split(byWord)); - } - }); - final = cleanUp(final); - return final; -}; -var parseBlocks_default = parseBlocks; - -// node_modules/compromise/src/1-one/match/methods/parseMatch/02-parseToken.js -var hasMinMax = /\{([0-9]+)?(, *[0-9]*)?\}/; -var andSign = /&&/; -var captureName = new RegExp(/^<\s*(\S+)\s*>/); -var titleCase2 = (str) => str.charAt(0).toUpperCase() + str.substring(1); -var end = (str) => str.charAt(str.length - 1); -var start = (str) => str.charAt(0); -var stripStart = (str) => str.substring(1); -var stripEnd = (str) => str.substring(0, str.length - 1); -var stripBoth = function(str) { - str = stripStart(str); - str = stripEnd(str); - return str; -}; -var parseToken = function(w, opts2) { - let obj = {}; - for (let i3 = 0; i3 < 2; i3 += 1) { - if (end(w) === "$") { - obj.end = true; - w = stripEnd(w); - } - if (start(w) === "^") { - obj.start = true; - w = stripStart(w); - } - if (start(w) === "[" || end(w) === "]") { - obj.group = null; - if (start(w) === "[") { - obj.groupStart = true; - } - if (end(w) === "]") { - obj.groupEnd = true; - } - w = w.replace(/^\[/, ""); - w = w.replace(/\]$/, ""); - if (start(w) === "<") { - const res = captureName.exec(w); - if (res.length >= 2) { - obj.group = res[1]; - w = w.replace(res[0], ""); - } - } - } - if (end(w) === "+") { - obj.greedy = true; - w = stripEnd(w); - } - if (w !== "*" && end(w) === "*" && w !== "\\*") { - obj.greedy = true; - w = stripEnd(w); - } - if (end(w) === "?") { - obj.optional = true; - w = stripEnd(w); - } - if (start(w) === "!") { - obj.negative = true; - w = stripStart(w); - } - if (start(w) === "~" && end(w) === "~" && w.length > 2) { - w = stripBoth(w); - obj.fuzzy = true; - obj.min = opts2.fuzzy || 0.85; - if (/\(/.test(w) === false) { - obj.word = w; - return obj; - } - } - if (start(w) === "(" && end(w) === ")") { - if (andSign.test(w)) { - obj.choices = w.split(andSign); - obj.operator = "and"; - } else { - obj.choices = w.split("|"); - obj.operator = "or"; - } - obj.choices[0] = stripStart(obj.choices[0]); - let last = obj.choices.length - 1; - obj.choices[last] = stripEnd(obj.choices[last]); - obj.choices = obj.choices.map((s3) => s3.trim()); - obj.choices = obj.choices.filter((s3) => s3); - obj.choices = obj.choices.map((str) => { - return str.split(/ /g).map((s3) => parseToken(s3, opts2)); - }); - w = ""; - } - if (start(w) === "/" && end(w) === "/") { - w = stripBoth(w); - if (opts2.caseSensitive) { - obj.use = "text"; - } - obj.regex = new RegExp(w); - return obj; - } - if (start(w) === "{" && end(w) === "}") { - w = stripBoth(w); - obj.root = w; - if (/\//.test(w)) { - let split3 = obj.root.split(/\//); - obj.root = split3[0]; - obj.pos = split3[1]; - if (obj.pos === "adj") { - obj.pos = "Adjective"; - } - obj.pos = obj.pos.charAt(0).toUpperCase() + obj.pos.substr(1).toLowerCase(); - if (split3[2] !== void 0) { - obj.sense = split3[2]; - } - } - return obj; - } - if (start(w) === "<" && end(w) === ">") { - w = stripBoth(w); - obj.chunk = titleCase2(w); - obj.greedy = true; - return obj; - } - if (start(w) === "%" && end(w) === "%") { - w = stripBoth(w); - obj.switch = w; - return obj; - } - } - if (hasMinMax.test(w) === true) { - w = w.replace(hasMinMax, (_a, b, c2) => { - if (c2 === void 0) { - obj.min = Number(b); - obj.max = Number(b); - } else { - c2 = c2.replace(/, */, ""); - if (b === void 0) { - obj.min = 0; - obj.max = Number(c2); - } else { - obj.min = Number(b); - obj.max = Number(c2 || 999); - } - } - obj.greedy = true; - if (!obj.min) { - obj.optional = true; - } - return ""; - }); - } - if (start(w) === "#") { - obj.tag = stripStart(w); - obj.tag = titleCase2(obj.tag); - return obj; - } - if (start(w) === "@") { - obj.method = stripStart(w); - return obj; - } - if (w === ".") { - obj.anything = true; - return obj; - } - if (w === "*") { - obj.anything = true; - obj.greedy = true; - obj.optional = true; - return obj; - } - if (w) { - w = w.replace("\\*", "*"); - w = w.replace("\\.", "."); - if (opts2.caseSensitive) { - obj.use = "text"; - } else { - w = w.toLowerCase(); - } - obj.word = w; - } - return obj; -}; -var parseToken_default = parseToken; - -// node_modules/compromise/src/1-one/match/methods/parseMatch/03-splitHyphens.js -var hasDash = /[a-z0-9][-–—][a-z]/i; -var splitHyphens = function(regs, world2) { - let prefixes2 = world2.model.one.prefixes; - for (let i3 = regs.length - 1; i3 >= 0; i3 -= 1) { - let reg = regs[i3]; - if (reg.word && hasDash.test(reg.word)) { - let words = reg.word.split(/[-–—]/g); - if (prefixes2.hasOwnProperty(words[0])) { - continue; - } - words = words.filter((w) => w).reverse(); - regs.splice(i3, 1); - words.forEach((w) => { - let obj = Object.assign({}, reg); - obj.word = w; - regs.splice(i3, 0, obj); - }); - } - } - return regs; -}; -var splitHyphens_default = splitHyphens; - -// node_modules/compromise/src/1-one/match/methods/parseMatch/04-inflect-root.js -var addVerbs = function(token, world2) { - let { all: all4 } = world2.methods.two.transform.verb || {}; - let str = token.root; - if (!all4) { - return []; - } - return all4(str, world2.model); -}; -var addNoun = function(token, world2) { - let { all: all4 } = world2.methods.two.transform.noun || {}; - if (!all4) { - return [token.root]; - } - return all4(token.root, world2.model); -}; -var addAdjective = function(token, world2) { - let { all: all4 } = world2.methods.two.transform.adjective || {}; - if (!all4) { - return [token.root]; - } - return all4(token.root, world2.model); -}; -var inflectRoot = function(regs, world2) { - regs = regs.map((token) => { - if (token.root) { - if (world2.methods.two && world2.methods.two.transform) { - let choices = []; - if (token.pos) { - if (token.pos === "Verb") { - choices = choices.concat(addVerbs(token, world2)); - } else if (token.pos === "Noun") { - choices = choices.concat(addNoun(token, world2)); - } else if (token.pos === "Adjective") { - choices = choices.concat(addAdjective(token, world2)); - } - } else { - choices = choices.concat(addVerbs(token, world2)); - choices = choices.concat(addNoun(token, world2)); - choices = choices.concat(addAdjective(token, world2)); - } - choices = choices.filter((str) => str); - if (choices.length > 0) { - token.operator = "or"; - token.fastOr = new Set(choices); - } - } else { - token.machine = token.root; - delete token.id; - delete token.root; - } - } - return token; - }); - return regs; -}; -var inflect_root_default = inflectRoot; - -// node_modules/compromise/src/1-one/match/methods/parseMatch/05-postProcess.js -var nameGroups = function(regs) { - let index3 = 0; - let inGroup = null; - for (let i3 = 0; i3 < regs.length; i3++) { - const token = regs[i3]; - if (token.groupStart === true) { - inGroup = token.group; - if (inGroup === null) { - inGroup = String(index3); - index3 += 1; - } - } - if (inGroup !== null) { - token.group = inGroup; - } - if (token.groupEnd === true) { - inGroup = null; - } - } - return regs; -}; -var doFastOrMode = function(tokens) { - return tokens.map((token) => { - if (token.choices !== void 0) { - if (token.operator !== "or") { - return token; - } - if (token.fuzzy === true) { - return token; - } - let shouldPack = token.choices.every((block) => { - if (block.length !== 1) { - return false; - } - let reg = block[0]; - if (reg.fuzzy === true) { - return false; - } - if (reg.start || reg.end) { - return false; - } - if (reg.word !== void 0 && reg.negative !== true && reg.optional !== true && reg.method !== true) { - return true; - } - return false; - }); - if (shouldPack === true) { - token.fastOr = /* @__PURE__ */ new Set(); - token.choices.forEach((block) => { - token.fastOr.add(block[0].word); - }); - delete token.choices; - } - } - return token; - }); -}; -var fuzzyOr = function(regs) { - return regs.map((reg) => { - if (reg.fuzzy && reg.choices) { - reg.choices.forEach((r2) => { - if (r2.length === 1 && r2[0].word) { - r2[0].fuzzy = true; - r2[0].min = reg.min; - } - }); - } - return reg; - }); -}; -var postProcess = function(regs) { - regs = nameGroups(regs); - regs = doFastOrMode(regs); - regs = fuzzyOr(regs); - return regs; -}; -var postProcess_default = postProcess; - -// node_modules/compromise/src/1-one/match/methods/parseMatch/index.js -var syntax = function(input, opts2, world2) { - if (input === null || input === void 0 || input === "") { - return []; - } - opts2 = opts2 || {}; - if (typeof input === "number") { - input = String(input); - } - let tokens = parseBlocks_default(input); - tokens = tokens.map((str) => parseToken_default(str, opts2)); - tokens = splitHyphens_default(tokens, world2); - tokens = inflect_root_default(tokens, world2); - tokens = postProcess_default(tokens, opts2); - return tokens; -}; -var parseMatch_default = syntax; - -// node_modules/compromise/src/1-one/match/methods/match/01-failFast.js -var anyIntersection = function(setA, setB) { - for (let elem of setB) { - if (setA.has(elem)) { - return true; - } - } - return false; -}; -var failFast = function(regs, cache2) { - for (let i3 = 0; i3 < regs.length; i3 += 1) { - let reg = regs[i3]; - if (reg.optional === true || reg.negative === true || reg.fuzzy === true) { - continue; - } - if (reg.word !== void 0 && cache2.has(reg.word) === false) { - return true; - } - if (reg.tag !== void 0 && cache2.has("#" + reg.tag) === false) { - return true; - } - if (reg.fastOr && anyIntersection(reg.fastOr, cache2) === false) { - return false; - } - } - return false; -}; -var failFast_default = failFast; - -// node_modules/compromise/src/1-one/match/methods/match/term/_fuzzy.js -var editDistance = function(strA, strB) { - let aLength = strA.length, bLength = strB.length; - if (aLength === 0) { - return bLength; - } - if (bLength === 0) { - return aLength; - } - let limit = (bLength > aLength ? bLength : aLength) + 1; - if (Math.abs(aLength - bLength) > (limit || 100)) { - return limit || 100; - } - let matrix = []; - for (let i3 = 0; i3 < limit; i3++) { - matrix[i3] = [i3]; - matrix[i3].length = limit; - } - for (let i3 = 0; i3 < limit; i3++) { - matrix[0][i3] = i3; - } - let j2, a_index, b_index, cost, min2, t2; - for (let i3 = 1; i3 <= aLength; ++i3) { - a_index = strA[i3 - 1]; - for (j2 = 1; j2 <= bLength; ++j2) { - if (i3 === j2 && matrix[i3][j2] > 4) { - return aLength; - } - b_index = strB[j2 - 1]; - cost = a_index === b_index ? 0 : 1; - min2 = matrix[i3 - 1][j2] + 1; - if ((t2 = matrix[i3][j2 - 1] + 1) < min2) - min2 = t2; - if ((t2 = matrix[i3 - 1][j2 - 1] + cost) < min2) - min2 = t2; - let shouldUpdate = i3 > 1 && j2 > 1 && a_index === strB[j2 - 2] && strA[i3 - 2] === b_index && (t2 = matrix[i3 - 2][j2 - 2] + cost) < min2; - if (shouldUpdate) { - matrix[i3][j2] = t2; - } else { - matrix[i3][j2] = min2; - } - } - } - return matrix[aLength][bLength]; -}; -var fuzzyMatch = function(strA, strB, minLength = 3) { - if (strA === strB) { - return 1; - } - if (strA.length < minLength || strB.length < minLength) { - return 0; - } - const steps = editDistance(strA, strB); - let length2 = Math.max(strA.length, strB.length); - let relative2 = length2 === 0 ? 0 : steps / length2; - let similarity = 1 - relative2; - return similarity; -}; -var fuzzy_default = fuzzyMatch; - -// node_modules/compromise/src/1-one/match/methods/termMethods.js -var startQuote = /([\u0022\uFF02\u0027\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F])/; -var endQuote = /([\u0022\uFF02\u0027\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4])/; -var hasHyphen = /^[-–—]$/; -var hasDash2 = / [-–—]{1,3} /; -var hasPost = (term, punct) => term.post.indexOf(punct) !== -1; -var hasPre = (term, punct) => term.pre.indexOf(punct) !== -1; -var methods9 = { - hasQuote: (term) => startQuote.test(term.pre) || endQuote.test(term.post), - hasComma: (term) => hasPost(term, ","), - hasPeriod: (term) => hasPost(term, ".") === true && hasPost(term, "...") === false, - hasExclamation: (term) => hasPost(term, "!"), - hasQuestionMark: (term) => hasPost(term, "?") || hasPost(term, "\xBF"), - hasEllipses: (term) => hasPost(term, "..") || hasPost(term, "\u2026") || hasPre(term, "..") || hasPre(term, "\u2026"), - hasSemicolon: (term) => hasPost(term, ";"), - hasColon: (term) => hasPost(term, ":"), - hasSlash: (term) => /\//.test(term.text), - hasHyphen: (term) => hasHyphen.test(term.post) || hasHyphen.test(term.pre), - hasDash: (term) => hasDash2.test(term.post) || hasDash2.test(term.pre), - hasContraction: (term) => Boolean(term.implicit), - isAcronym: (term) => term.tags.has("Acronym"), - isKnown: (term) => term.tags.size > 0, - isTitleCase: (term) => /^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(term.text), - isUpperCase: (term) => /^\p{Lu}+$/u.test(term.text) -}; -methods9.hasQuotation = methods9.hasQuote; -var termMethods_default = methods9; - -// node_modules/compromise/src/1-one/match/methods/match/term/doesMatch.js -var wrapMatch = function() { -}; -var doesMatch = function(term, reg, index3, length2) { - if (reg.anything === true) { - return true; - } - if (reg.start === true && index3 !== 0) { - return false; - } - if (reg.end === true && index3 !== length2 - 1) { - return false; - } - if (reg.id !== void 0 && reg.id === term.id) { - return true; - } - if (reg.word !== void 0) { - if (reg.use) { - return reg.word === term[reg.use]; - } - if (term.machine !== null && term.machine === reg.word) { - return true; - } - if (term.alias !== void 0 && term.alias.hasOwnProperty(reg.word)) { - return true; - } - if (reg.fuzzy === true) { - if (reg.word === term.root) { - return true; - } - let score = fuzzy_default(reg.word, term.normal); - if (score >= reg.min) { - return true; - } - } - if (term.alias && term.alias.some((str) => str === reg.word)) { - return true; - } - return reg.word === term.text || reg.word === term.normal; - } - if (reg.tag !== void 0) { - return term.tags.has(reg.tag) === true; - } - if (reg.method !== void 0) { - if (typeof termMethods_default[reg.method] === "function" && termMethods_default[reg.method](term) === true) { - return true; - } - return false; - } - if (reg.pre !== void 0) { - return term.pre && term.pre.includes(reg.pre); - } - if (reg.post !== void 0) { - return term.post && term.post.includes(reg.post); - } - if (reg.regex !== void 0) { - let str = term.normal; - if (reg.use) { - str = term[reg.use]; - } - return reg.regex.test(str); - } - if (reg.chunk !== void 0) { - return term.chunk === reg.chunk; - } - if (reg.switch !== void 0) { - return term.switch === reg.switch; - } - if (reg.machine !== void 0) { - return term.normal === reg.machine || term.machine === reg.machine || term.root === reg.machine; - } - if (reg.sense !== void 0) { - return term.sense === reg.sense; - } - if (reg.fastOr !== void 0) { - if (reg.pos && !term.tags.has(reg.pos)) { - return null; - } - let str = term.root || term.implicit || term.machine || term.normal; - return reg.fastOr.has(str) || reg.fastOr.has(term.text); - } - if (reg.choices !== void 0) { - if (reg.operator === "and") { - return reg.choices.every((r2) => wrapMatch(term, r2, index3, length2)); - } - return reg.choices.some((r2) => wrapMatch(term, r2, index3, length2)); - } - return false; -}; -wrapMatch = function(t2, reg, index3, length2) { - let result = doesMatch(t2, reg, index3, length2); - if (reg.negative === true) { - return !result; - } - return result; -}; -var doesMatch_default = wrapMatch; - -// node_modules/compromise/src/1-one/match/methods/match/steps/logic/greedy.js -var getGreedy = function(state, endReg) { - let reg = Object.assign({}, state.regs[state.r], { start: false, end: false }); - let start2 = state.t; - for (; state.t < state.terms.length; state.t += 1) { - if (endReg && doesMatch_default(state.terms[state.t], endReg, state.start_i + state.t, state.phrase_length)) { - return state.t; - } - let count = state.t - start2 + 1; - if (reg.max !== void 0 && count === reg.max) { - return state.t; - } - if (doesMatch_default(state.terms[state.t], reg, state.start_i + state.t, state.phrase_length) === false) { - if (reg.min !== void 0 && count < reg.min) { - return null; - } - return state.t; - } - } - return state.t; -}; -var greedyTo = function(state, nextReg) { - let t2 = state.t; - if (!nextReg) { - return state.terms.length; - } - for (; t2 < state.terms.length; t2 += 1) { - if (doesMatch_default(state.terms[t2], nextReg, state.start_i + t2, state.phrase_length) === true) { - return t2; - } - } - return null; -}; -var isEndGreedy = function(reg, state) { - if (reg.end === true && reg.greedy === true) { - if (state.start_i + state.t < state.phrase_length - 1) { - let tmpReg = Object.assign({}, reg, { end: false }); - if (doesMatch_default(state.terms[state.t], tmpReg, state.start_i + state.t, state.phrase_length) === true) { - return true; - } - } - } - return false; -}; - -// node_modules/compromise/src/1-one/match/methods/match/_lib.js -var getGroup = function(state, term_index) { - if (state.groups[state.inGroup]) { - return state.groups[state.inGroup]; - } - state.groups[state.inGroup] = { - start: term_index, - length: 0 - }; - return state.groups[state.inGroup]; -}; - -// node_modules/compromise/src/1-one/match/methods/match/steps/astrix.js -var doAstrix = function(state) { - let { regs } = state; - let reg = regs[state.r]; - let skipto = greedyTo(state, regs[state.r + 1]); - if (skipto === null || skipto === 0) { - return null; - } - if (reg.min !== void 0 && skipto - state.t < reg.min) { - return null; - } - if (reg.max !== void 0 && skipto - state.t > reg.max) { - state.t = state.t + reg.max; - return true; - } - if (state.hasGroup === true) { - const g3 = getGroup(state, state.t); - g3.length = skipto - state.t; - } - state.t = skipto; - return true; -}; -var astrix_default = doAstrix; - -// node_modules/compromise/src/1-one/match/methods/match/steps/logic/and-or.js -var isArray6 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var doOrBlock = function(state, skipN = 0) { - let block = state.regs[state.r]; - let wasFound = false; - for (let c2 = 0; c2 < block.choices.length; c2 += 1) { - let regs = block.choices[c2]; - if (!isArray6(regs)) { - return false; - } - wasFound = regs.every((cr, w_index) => { - let extra = 0; - let t2 = state.t + w_index + skipN + extra; - if (state.terms[t2] === void 0) { - return false; - } - let foundBlock = doesMatch_default(state.terms[t2], cr, t2 + state.start_i, state.phrase_length); - if (foundBlock === true && cr.greedy === true) { - for (let i3 = 1; i3 < state.terms.length; i3 += 1) { - let term = state.terms[t2 + i3]; - if (term) { - let keepGoing = doesMatch_default(term, cr, state.start_i + i3, state.phrase_length); - if (keepGoing === true) { - extra += 1; - } else { - break; - } - } - } - } - skipN += extra; - return foundBlock; - }); - if (wasFound) { - skipN += regs.length; - break; - } - } - if (wasFound && block.greedy === true) { - return doOrBlock(state, skipN); - } - return skipN; -}; -var doAndBlock = function(state) { - let longest = 0; - let reg = state.regs[state.r]; - let allDidMatch = reg.choices.every((block) => { - let allWords = block.every((cr, w_index) => { - let tryTerm = state.t + w_index; - if (state.terms[tryTerm] === void 0) { - return false; - } - return doesMatch_default(state.terms[tryTerm], cr, tryTerm, state.phrase_length); - }); - if (allWords === true && block.length > longest) { - longest = block.length; - } - return allWords; - }); - if (allDidMatch === true) { - return longest; - } - return false; -}; - -// node_modules/compromise/src/1-one/match/methods/match/steps/or-block.js -var orBlock = function(state) { - const { regs } = state; - let reg = regs[state.r]; - let skipNum = doOrBlock(state); - if (skipNum) { - if (reg.negative === true) { - return null; - } - if (state.hasGroup === true) { - const g3 = getGroup(state, state.t); - g3.length += skipNum; - } - if (reg.end === true) { - let end2 = state.phrase_length; - if (state.t + state.start_i + skipNum !== end2) { - return null; - } - } - state.t += skipNum; - return true; - } else if (!reg.optional) { - return null; - } - return true; -}; -var or_block_default = orBlock; - -// node_modules/compromise/src/1-one/match/methods/match/steps/and-block.js -var andBlock = function(state) { - const { regs } = state; - let reg = regs[state.r]; - let skipNum = doAndBlock(state); - if (skipNum) { - if (reg.negative === true) { - return null; - } - if (state.hasGroup === true) { - const g3 = getGroup(state, state.t); - g3.length += skipNum; - } - if (reg.end === true) { - let end2 = state.phrase_length - 1; - if (state.t + state.start_i !== end2) { - return null; - } - } - state.t += skipNum; - return true; - } else if (!reg.optional) { - return null; - } - return true; -}; -var and_block_default = andBlock; - -// node_modules/compromise/src/1-one/match/methods/match/steps/logic/negative-greedy.js -var negGreedy = function(state, reg, nextReg) { - let skip = 0; - for (let t2 = state.t; t2 < state.terms.length; t2 += 1) { - let found = doesMatch_default(state.terms[t2], reg, state.start_i + state.t, state.phrase_length); - if (found) { - break; - } - if (nextReg) { - found = doesMatch_default(state.terms[t2], nextReg, state.start_i + state.t, state.phrase_length); - if (found) { - break; - } - } - skip += 1; - if (reg.max !== void 0 && skip === reg.max) { - break; - } - } - if (skip === 0) { - return false; - } - if (reg.min && reg.min > skip) { - return false; - } - state.t += skip; - return true; -}; -var negative_greedy_default = negGreedy; - -// node_modules/compromise/src/1-one/match/methods/match/steps/negative.js -var doNegative = function(state) { - const { regs } = state; - let reg = regs[state.r]; - let tmpReg = Object.assign({}, reg); - tmpReg.negative = false; - let found = doesMatch_default(state.terms[state.t], tmpReg, state.start_i + state.t, state.phrase_length); - if (found) { - return false; - } - if (reg.optional) { - let nextReg = regs[state.r + 1]; - if (nextReg) { - let fNext = doesMatch_default(state.terms[state.t], nextReg, state.start_i + state.t, state.phrase_length); - if (fNext) { - state.r += 1; - } else if (nextReg.optional && regs[state.r + 2]) { - let fNext2 = doesMatch_default(state.terms[state.t], regs[state.r + 2], state.start_i + state.t, state.phrase_length); - if (fNext2) { - state.r += 2; - } - } - } - } - if (reg.greedy) { - return negative_greedy_default(state, tmpReg, regs[state.r + 1]); - } - state.t += 1; - return true; -}; -var negative_default = doNegative; - -// node_modules/compromise/src/1-one/match/methods/match/steps/optional-match.js -var foundOptional = function(state) { - const { regs } = state; - let reg = regs[state.r]; - let term = state.terms[state.t]; - let nextRegMatched = doesMatch_default(term, regs[state.r + 1], state.start_i + state.t, state.phrase_length); - if (reg.negative || nextRegMatched) { - let nextTerm = state.terms[state.t + 1]; - if (!nextTerm || !doesMatch_default(nextTerm, regs[state.r + 1], state.start_i + state.t, state.phrase_length)) { - state.r += 1; - } - } -}; -var optional_match_default = foundOptional; - -// node_modules/compromise/src/1-one/match/methods/match/steps/greedy-match.js -var greedyMatch = function(state) { - const { regs, phrase_length } = state; - let reg = regs[state.r]; - state.t = getGreedy(state, regs[state.r + 1]); - if (state.t === null) { - return null; - } - if (reg.min && reg.min > state.t) { - return null; - } - if (reg.end === true && state.start_i + state.t !== phrase_length) { - return null; - } - return true; -}; -var greedy_match_default = greedyMatch; - -// node_modules/compromise/src/1-one/match/methods/match/steps/contraction-skip.js -var contractionSkip = function(state) { - let term = state.terms[state.t]; - let reg = state.regs[state.r]; - if (term.implicit && state.terms[state.t + 1]) { - let nextTerm = state.terms[state.t + 1]; - if (!nextTerm.implicit) { - return; - } - if (reg.word === term.normal) { - state.t += 1; - } - if (reg.method === "hasContraction") { - state.t += 1; - } - } -}; -var contraction_skip_default = contractionSkip; - -// node_modules/compromise/src/1-one/match/methods/match/steps/simple-match.js -var setGroup = function(state, startAt) { - let reg = state.regs[state.r]; - const g3 = getGroup(state, startAt); - if (state.t > 1 && reg.greedy) { - g3.length += state.t - startAt; - } else { - g3.length++; - } -}; -var simpleMatch = function(state) { - const { regs } = state; - let reg = regs[state.r]; - let term = state.terms[state.t]; - let startAt = state.t; - if (reg.optional && regs[state.r + 1] && reg.negative) { - return true; - } - if (reg.optional && regs[state.r + 1]) { - optional_match_default(state); - } - if (term.implicit && state.terms[state.t + 1]) { - contraction_skip_default(state); - } - state.t += 1; - if (reg.end === true && state.t !== state.terms.length && reg.greedy !== true) { - return null; - } - if (reg.greedy === true) { - let alive = greedy_match_default(state); - if (!alive) { - return null; - } - } - if (state.hasGroup === true) { - setGroup(state, startAt); - } - return true; -}; -var simple_match_default = simpleMatch; - -// node_modules/compromise/src/1-one/match/methods/match/02-from-here.js -var tryHere = function(terms, regs, start_i, phrase_length) { - if (terms.length === 0 || regs.length === 0) { - return null; - } - let state = { - t: 0, - terms, - r: 0, - regs, - groups: {}, - start_i, - phrase_length, - inGroup: null - }; - for (; state.r < regs.length; state.r += 1) { - let reg = regs[state.r]; - state.hasGroup = Boolean(reg.group); - if (state.hasGroup === true) { - state.inGroup = reg.group; - } else { - state.inGroup = null; - } - if (!state.terms[state.t]) { - const alive = regs.slice(state.r).some((remain) => !remain.optional); - if (alive === false) { - break; - } - return null; - } - if (reg.anything === true && reg.greedy === true) { - let alive = astrix_default(state); - if (!alive) { - return null; - } - continue; - } - if (reg.choices !== void 0 && reg.operator === "or") { - let alive = or_block_default(state); - if (!alive) { - return null; - } - continue; - } - if (reg.choices !== void 0 && reg.operator === "and") { - let alive = and_block_default(state); - if (!alive) { - return null; - } - continue; - } - if (reg.anything === true) { - if (reg.negative && reg.anything) { - return null; - } - let alive = simple_match_default(state); - if (!alive) { - return null; - } - continue; - } - if (isEndGreedy(reg, state) === true) { - let alive = simple_match_default(state); - if (!alive) { - return null; - } - continue; - } - if (reg.negative) { - let alive = negative_default(state); - if (!alive) { - return null; - } - continue; - } - let hasMatch = doesMatch_default(state.terms[state.t], reg, state.start_i + state.t, state.phrase_length); - if (hasMatch === true) { - let alive = simple_match_default(state); - if (!alive) { - return null; - } - continue; - } - if (reg.optional === true) { - continue; - } - return null; - } - let pntr = [null, start_i, state.t + start_i]; - if (pntr[1] === pntr[2]) { - return null; - } - let groups = {}; - Object.keys(state.groups).forEach((k2) => { - let o2 = state.groups[k2]; - let start2 = start_i + o2.start; - groups[k2] = [null, start2, start2 + o2.length]; - }); - return { pointer: pntr, groups }; -}; -var from_here_default = tryHere; - -// node_modules/compromise/src/1-one/match/methods/match/03-getGroup.js -var getGroup2 = function(res, group) { - let ptrs = []; - let byGroup = {}; - if (res.length === 0) { - return { ptrs, byGroup }; - } - if (typeof group === "number") { - group = String(group); - } - if (group) { - res.forEach((r2) => { - if (r2.groups[group]) { - ptrs.push(r2.groups[group]); - } - }); - } else { - res.forEach((r2) => { - ptrs.push(r2.pointer); - Object.keys(r2.groups).forEach((k2) => { - byGroup[k2] = byGroup[k2] || []; - byGroup[k2].push(r2.groups[k2]); - }); - }); - } - return { ptrs, byGroup }; -}; -var getGroup_default = getGroup2; - -// node_modules/compromise/src/1-one/match/methods/match/03-notIf.js -var notIf = function(results, not, docs) { - results = results.filter((res) => { - let [n3, start2, end2] = res.pointer; - let terms = docs[n3].slice(start2, end2); - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let slice = terms.slice(i3); - let found = from_here_default(slice, not, i3, terms.length); - if (found !== null) { - return false; - } - } - return true; - }); - return results; -}; -var notIf_default = notIf; - -// node_modules/compromise/src/1-one/match/methods/match/index.js -var addSentence = function(res, n3) { - res.pointer[0] = n3; - Object.keys(res.groups).forEach((k2) => { - res.groups[k2][0] = n3; - }); - return res; -}; -var handleStart = function(terms, regs, n3) { - let res = from_here_default(terms, regs, 0, terms.length); - if (res) { - res = addSentence(res, n3); - return res; - } - return null; -}; -var runMatch = function(docs, todo, cache2) { - cache2 = cache2 || []; - let { regs, group, justOne } = todo; - let results = []; - if (!regs || regs.length === 0) { - return { ptrs: [], byGroup: {} }; - } - const minLength = regs.filter((r2) => r2.optional !== true && r2.negative !== true).length; - docs: - for (let n3 = 0; n3 < docs.length; n3 += 1) { - let terms = docs[n3]; - if (cache2[n3] && failFast_default(regs, cache2[n3])) { - continue; - } - if (regs[0].start === true) { - let foundStart = handleStart(terms, regs, n3, group); - if (foundStart) { - results.push(foundStart); - } - continue; - } - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let slice = terms.slice(i3); - if (slice.length < minLength) { - break; - } - let res = from_here_default(slice, regs, i3, terms.length); - if (res) { - res = addSentence(res, n3); - results.push(res); - if (justOne === true) { - break docs; - } - let end2 = res.pointer[2]; - if (Math.abs(end2 - 1) > i3) { - i3 = Math.abs(end2 - 1); - } - } - } - } - if (regs[regs.length - 1].end === true) { - results = results.filter((res) => { - let n3 = res.pointer[0]; - return docs[n3].length === res.pointer[2]; - }); - } - if (todo.notIf) { - results = notIf_default(results, todo.notIf, docs); - } - results = getGroup_default(results, group); - results.ptrs.forEach((ptr) => { - let [n3, start2, end2] = ptr; - ptr[3] = docs[n3][start2].id; - ptr[4] = docs[n3][end2 - 1].id; - }); - return results; -}; -var match_default2 = runMatch; - -// node_modules/compromise/src/1-one/match/methods/index.js -var methods10 = { - one: { - termMethods: termMethods_default, - parseMatch: parseMatch_default, - match: match_default2 - } -}; -var methods_default4 = methods10; - -// node_modules/compromise/src/1-one/match/lib.js -var lib_default2 = { - parseMatch: function(str, opts2) { - const world2 = this.world(); - let killUnicode2 = world2.methods.one.killUnicode; - if (killUnicode2) { - str = killUnicode2(str, world2); - } - return world2.methods.one.parseMatch(str, opts2, world2); - } -}; - -// node_modules/compromise/src/1-one/match/plugin.js -var plugin_default6 = { - api: api_default4, - methods: methods_default4, - lib: lib_default2 -}; - -// node_modules/compromise/src/1-one/output/api/html.js -var isClass = /^\../; -var isId = /^#./; -var escapeXml = (str) => { - str = str.replace(/&/g, "&"); - str = str.replace(//g, ">"); - str = str.replace(/"/g, """); - str = str.replace(/'/g, "'"); - return str; -}; -var toTag = function(k2) { - let start2 = ""; - let end2 = ""; - k2 = escapeXml(k2); - if (isClass.test(k2)) { - start2 = ``; - } - start2 += ">"; - return { start: start2, end: end2 }; -}; -var getIndex = function(doc, obj) { - let starts = {}; - let ends = {}; - Object.keys(obj).forEach((k2) => { - let res = obj[k2]; - let tag = toTag(k2); - if (typeof res === "string") { - res = doc.match(res); - } - res.docs.forEach((terms) => { - if (terms.every((t2) => t2.implicit)) { - return; - } - let a2 = terms[0].id; - starts[a2] = starts[a2] || []; - starts[a2].push(tag.start); - let b = terms[terms.length - 1].id; - ends[b] = ends[b] || []; - ends[b].push(tag.end); - }); - }); - return { starts, ends }; -}; -var html = function(obj) { - let { starts, ends } = getIndex(this, obj); - let out2 = ""; - this.docs.forEach((terms) => { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let t2 = terms[i3]; - if (starts.hasOwnProperty(t2.id)) { - out2 += starts[t2.id].join(""); - } - out2 += t2.pre || "" + t2.text || ""; - if (ends.hasOwnProperty(t2.id)) { - out2 += ends[t2.id].join(""); - } - out2 += t2.post || ""; - } - }); - return out2; -}; -var html_default = { html }; - -// node_modules/compromise/src/1-one/output/api/lib/_text.js -var trimEnd = /[,:;)\]*.?~!\u0022\uFF02\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4—-]+$/; -var trimStart = /^[(['"*~\uFF02\u201C\u2018\u201F\u201B\u201E\u2E42\u201A\u00AB\u2039\u2035\u2036\u2037\u301D\u0060\u301F]+/; -var punctToKill = /[,:;)('"\u201D\]]/; -var isHyphen = /^[-–—]$/; -var hasSpace = / /; -var textFromTerms = function(terms, opts2, keepSpace = true) { - let txt = ""; - terms.forEach((t2) => { - let pre = t2.pre || ""; - let post = t2.post || ""; - if (opts2.punctuation === "some") { - pre = pre.replace(trimStart, ""); - if (isHyphen.test(post)) { - post = " "; - } - post = post.replace(punctToKill, ""); - post = post.replace(/\?!+/, "?"); - post = post.replace(/!+/, "!"); - post = post.replace(/\?+/, "?"); - post = post.replace(/\.{2,}/, ""); - if (t2.tags.has("Abbreviation")) { - post = post.replace(/\./, ""); - } - } - if (opts2.whitespace === "some") { - pre = pre.replace(/\s/, ""); - post = post.replace(/\s+/, " "); - } - if (!opts2.keepPunct) { - pre = pre.replace(trimStart, ""); - if (post === "-") { - post = " "; - } else { - post = post.replace(trimEnd, ""); - } - } - let word = t2[opts2.form || "text"] || t2.normal || ""; - if (opts2.form === "implicit") { - word = t2.implicit || t2.text; - } - if (opts2.form === "root" && t2.implicit) { - word = t2.root || t2.implicit || t2.normal; - } - if ((opts2.form === "machine" || opts2.form === "implicit" || opts2.form === "root") && t2.implicit) { - if (!post || !hasSpace.test(post)) { - post += " "; - } - } - txt += pre + word + post; - }); - if (keepSpace === false) { - txt = txt.trim(); - } - if (opts2.lowerCase === true) { - txt = txt.toLowerCase(); - } - return txt; -}; -var textFromDoc = function(docs, opts2) { - let text = ""; - if (!docs || !docs[0] || !docs[0][0]) { - return text; - } - for (let i3 = 0; i3 < docs.length; i3 += 1) { - text += textFromTerms(docs[i3], opts2, true); - } - if (!opts2.keepSpace) { - text = text.trim(); - } - if (opts2.keepPunct === false) { - if (!docs[0][0].tags.has("Emoticon")) { - text = text.replace(trimStart, ""); - } - let last = docs[docs.length - 1]; - if (!last[last.length - 1].tags.has("Emoticon")) { - text = text.replace(trimEnd, ""); - } - } - if (opts2.cleanWhitespace === true) { - text = text.trim(); - } - return text; -}; - -// node_modules/compromise/src/1-one/output/api/_fmts.js -var fmts = { - text: { - form: "text" - }, - normal: { - whitespace: "some", - punctuation: "some", - case: "some", - unicode: "some", - form: "normal" - }, - machine: { - keepSpace: false, - whitespace: "some", - punctuation: "some", - case: "none", - unicode: "some", - form: "machine" - }, - root: { - keepSpace: false, - whitespace: "some", - punctuation: "some", - case: "some", - unicode: "some", - form: "root" - }, - implicit: { - form: "implicit" - } -}; -fmts.clean = fmts.normal; -fmts.reduced = fmts.root; -var fmts_default = fmts; - -// node_modules/compromise/src/1-one/output/api/lib/hash.js -var k = []; -var i = 0; -for (; i < 64; ) { - k[i] = 0 | Math.sin(++i % Math.PI) * 4294967296; -} -function md5(s3) { - let b, c2, d2, h2 = [b = 1732584193, c2 = 4023233417, ~b, ~c2], words = [], j2 = decodeURI(encodeURI(s3)) + "\x80", a2 = j2.length; - s3 = --a2 / 4 + 2 | 15; - words[--s3] = a2 * 8; - for (; ~a2; ) { - words[a2 >> 2] |= j2.charCodeAt(a2) << 8 * a2--; - } - for (i = j2 = 0; i < s3; i += 16) { - a2 = h2; - for (; j2 < 64; a2 = [ - d2 = a2[3], - b + ((d2 = a2[0] + [ - b & c2 | ~b & d2, - d2 & b | ~d2 & c2, - b ^ c2 ^ d2, - c2 ^ (b | ~d2) - ][a2 = j2 >> 4] + k[j2] + ~~words[i | [ - j2, - 5 * j2 + 1, - 3 * j2 + 5, - 7 * j2 - ][a2] & 15]) << (a2 = [ - 7, - 12, - 17, - 22, - 5, - 9, - 14, - 20, - 4, - 11, - 16, - 23, - 6, - 10, - 15, - 21 - ][4 * a2 + j2++ % 4]) | d2 >>> -a2), - b, - c2 - ]) { - b = a2[1] | 0; - c2 = a2[2]; - } - for (j2 = 4; j2; ) - h2[--j2] += a2[j2]; - } - for (s3 = ""; j2 < 32; ) { - s3 += (h2[j2 >> 3] >> (1 ^ j2++) * 4 & 15).toString(16); - } - return s3; -} - -// node_modules/compromise/src/1-one/output/api/json.js -var defaults = { - text: true, - terms: true -}; -var opts = { case: "none", unicode: "some", form: "machine", punctuation: "some" }; -var merge = function(a2, b) { - return Object.assign({}, a2, b); -}; -var fns4 = { - text: (terms) => textFromTerms(terms, { keepPunct: true }, false), - normal: (terms) => textFromTerms(terms, merge(fmts_default.normal, { keepPunct: true }), false), - implicit: (terms) => textFromTerms(terms, merge(fmts_default.implicit, { keepPunct: true }), false), - machine: (terms) => textFromTerms(terms, opts, false), - root: (terms) => textFromTerms(terms, merge(opts, { form: "root" }), false), - hash: (terms) => md5(textFromTerms(terms, { keepPunct: true }, false)), - offset: (terms) => { - let len = fns4.text(terms).length; - return { - index: terms[0].offset.index, - start: terms[0].offset.start, - length: len - }; - }, - terms: (terms) => { - return terms.map((t2) => { - let term = Object.assign({}, t2); - term.tags = Array.from(t2.tags); - return term; - }); - }, - confidence: (_terms, view, i3) => view.eq(i3).confidence(), - syllables: (_terms, view, i3) => view.eq(i3).syllables(), - sentence: (_terms, view, i3) => view.eq(i3).fullSentence().text(), - dirty: (terms) => terms.some((t2) => t2.dirty === true) -}; -fns4.sentences = fns4.sentence; -fns4.clean = fns4.normal; -fns4.reduced = fns4.root; -var toJSON = function(view, option) { - option = option || {}; - if (typeof option === "string") { - option = {}; - } - option = Object.assign({}, defaults, option); - if (option.offset) { - view.compute("offset"); - } - return view.docs.map((terms, i3) => { - let res = {}; - Object.keys(option).forEach((k2) => { - if (option[k2] && fns4[k2]) { - res[k2] = fns4[k2](terms, view, i3); - } - }); - return res; - }); -}; -var methods11 = { - json: function(n3) { - let res = toJSON(this, n3); - if (typeof n3 === "number") { - return res[n3]; - } - return res; - } -}; -methods11.data = methods11.json; -var json_default = methods11; - -// node_modules/compromise/src/1-one/output/api/debug/client-side.js -var logClientSide = function(view) { - console.log("%c -=-=- ", "background-color:#6699cc;"); - view.forEach((m3) => { - console.groupCollapsed(m3.text()); - let terms = m3.docs[0]; - let out2 = terms.map((t2) => { - let text = t2.text || "-"; - if (t2.implicit) { - text = "[" + t2.implicit + "]"; - } - let tags = "[" + Array.from(t2.tags).join(", ") + "]"; - return { text, tags }; - }); - console.table(out2, ["text", "tags"]); - console.groupEnd(); - }); -}; -var client_side_default = logClientSide; - -// node_modules/compromise/src/1-one/output/api/debug/_color.js -var reset = "\x1B[0m"; -var cli = { - green: (str) => "\x1B[32m" + str + reset, - red: (str) => "\x1B[31m" + str + reset, - blue: (str) => "\x1B[34m" + str + reset, - magenta: (str) => "\x1B[35m" + str + reset, - cyan: (str) => "\x1B[36m" + str + reset, - yellow: (str) => "\x1B[33m" + str + reset, - black: (str) => "\x1B[30m" + str + reset, - dim: (str) => "\x1B[2m" + str + reset, - i: (str) => "\x1B[3m" + str + reset -}; -var color_default = cli; - -// node_modules/compromise/src/1-one/output/api/debug/tags.js -var tagString = function(tags, model5) { - if (model5.one.tagSet) { - tags = tags.map((tag) => { - if (!model5.one.tagSet.hasOwnProperty(tag)) { - return tag; - } - const c2 = model5.one.tagSet[tag].color || "blue"; - return color_default[c2](tag); - }); - } - return tags.join(", "); -}; -var showTags = function(view) { - let { docs, model: model5 } = view; - if (docs.length === 0) { - console.log(color_default.blue("\n \u2500\u2500\u2500\u2500\u2500\u2500")); - } - docs.forEach((terms) => { - console.log(color_default.blue("\n \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")); - terms.forEach((t2) => { - let tags = [...t2.tags || []]; - let text = t2.text || "-"; - if (t2.sense) { - text = `{${t2.normal}/${t2.sense}}`; - } - if (t2.implicit) { - text = "[" + t2.implicit + "]"; - } - text = color_default.yellow(text); - let word = "'" + text + "'"; - if (t2.reference) { - let str2 = view.update([t2.reference]).text("normal"); - word += ` - ${color_default.dim(color_default.i("[" + str2 + "]"))}`; - } - word = word.padEnd(18); - let str = color_default.blue(" \u2502 ") + color_default.i(word) + " - " + tagString(tags, model5); - console.log(str); - }); - }); -}; -var tags_default = showTags; - -// node_modules/compromise/src/1-one/output/api/debug/chunks.js -var showChunks = function(view) { - let { docs } = view; - console.log(""); - docs.forEach((terms) => { - let out2 = []; - terms.forEach((term) => { - if (term.chunk === "Noun") { - out2.push(color_default.blue(term.implicit || term.normal)); - } else if (term.chunk === "Verb") { - out2.push(color_default.green(term.implicit || term.normal)); - } else if (term.chunk === "Adjective") { - out2.push(color_default.yellow(term.implicit || term.normal)); - } else if (term.chunk === "Pivot") { - out2.push(color_default.red(term.implicit || term.normal)); - } else { - out2.push(term.implicit || term.normal); - } - }); - console.log(out2.join(" "), "\n"); - }); -}; -var chunks_default = showChunks; - -// node_modules/compromise/src/1-one/output/api/debug/highlight.js -var split = (txt, offset2, index3) => { - let buff = index3 * 9; - let start2 = offset2.start + buff; - let end2 = start2 + offset2.length; - let pre = txt.substring(0, start2); - let mid = txt.substring(start2, end2); - let post = txt.substring(end2, txt.length); - return [pre, mid, post]; -}; -var spliceIn = function(txt, offset2, index3) { - let parts = split(txt, offset2, index3); - return `${parts[0]}${color_default.blue(parts[1])}${parts[2]}`; -}; -var showHighlight = function(doc) { - if (!doc.found) { - return; - } - let bySentence = {}; - doc.fullPointer.forEach((ptr) => { - bySentence[ptr[0]] = bySentence[ptr[0]] || []; - bySentence[ptr[0]].push(ptr); - }); - Object.keys(bySentence).forEach((k2) => { - let full = doc.update([[Number(k2)]]); - let txt = full.text(); - let matches3 = doc.update(bySentence[k2]); - let json = matches3.json({ offset: true }); - json.forEach((obj, i3) => { - txt = spliceIn(txt, obj.offset, i3); - }); - console.log(txt); - }); -}; -var highlight_default = showHighlight; - -// node_modules/compromise/src/1-one/output/api/debug/index.js -function isClientSide() { - return typeof window !== "undefined" && window.document; -} -var debug = function(opts2 = {}) { - let view = this; - if (typeof opts2 === "string") { - let tmp = {}; - tmp[opts2] = true; - opts2 = tmp; - } - if (isClientSide()) { - client_side_default(view); - return view; - } - if (opts2.tags !== false) { - tags_default(view); - console.log("\n"); - } - if (opts2.chunks === true) { - chunks_default(view); - console.log("\n"); - } - if (opts2.highlight === true) { - highlight_default(view); - console.log("\n"); - } - return view; -}; -var debug_default = debug; - -// node_modules/compromise/src/1-one/output/api/wrap.js -var toText = function(term) { - let pre = term.pre || ""; - let post = term.post || ""; - return pre + term.text + post; -}; -var findStarts = function(doc, obj) { - let starts = {}; - Object.keys(obj).forEach((reg) => { - let m3 = doc.match(reg); - m3.fullPointer.forEach((a2) => { - starts[a2[3]] = { fn: obj[reg], end: a2[2] }; - }); - }); - return starts; -}; -var wrap = function(doc, obj) { - let starts = findStarts(doc, obj); - let text = ""; - doc.docs.forEach((terms, n3) => { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let t2 = terms[i3]; - if (starts.hasOwnProperty(t2.id)) { - let { fn, end: end2 } = starts[t2.id]; - let m3 = doc.update([[n3, i3, end2]]); - text += terms[i3].pre || ""; - text += fn(m3); - i3 = end2 - 1; - text += terms[i3].post || ""; - } else { - text += toText(t2); - } - } - }); - return text; -}; -var wrap_default = wrap; - -// node_modules/compromise/src/1-one/output/api/out.js -var isObject5 = (val) => { - return Object.prototype.toString.call(val) === "[object Object]"; -}; -var topk = function(arr) { - let obj = {}; - arr.forEach((a2) => { - obj[a2] = obj[a2] || 0; - obj[a2] += 1; - }); - let res = Object.keys(obj).map((k2) => { - return { normal: k2, count: obj[k2] }; - }); - return res.sort((a2, b) => a2.count > b.count ? -1 : 0); -}; -var out = function(method) { - if (isObject5(method)) { - return wrap_default(this, method); - } - if (method === "text") { - return this.text(); - } - if (method === "normal") { - return this.text("normal"); - } - if (method === "root") { - return this.text("root"); - } - if (method === "machine" || method === "reduced") { - return this.text("machine"); - } - if (method === "hash" || method === "md5") { - return md5(this.text()); - } - if (method === "json") { - return this.json(); - } - if (method === "offset" || method === "offsets") { - this.compute("offset"); - return this.json({ offset: true }); - } - if (method === "array") { - let arr = this.docs.map((terms) => { - return terms.reduce((str, t2) => { - return str + t2.pre + t2.text + t2.post; - }, "").trim(); - }); - return arr.filter((str) => str); - } - if (method === "freq" || method === "frequency" || method === "topk") { - return topk(this.json({ normal: true }).map((o2) => o2.normal)); - } - if (method === "terms") { - let list4 = []; - this.docs.forEach((s3) => { - let terms = s3.terms.map((t2) => t2.text); - terms = terms.filter((t2) => t2); - list4 = list4.concat(terms); - }); - return list4; - } - if (method === "tags") { - return this.docs.map((terms) => { - return terms.reduce((h2, t2) => { - h2[t2.implicit || t2.normal] = Array.from(t2.tags); - return h2; - }, {}); - }); - } - if (method === "debug") { - return this.debug(); - } - return this.text(); -}; -var methods12 = { - debug: debug_default, - out, - wrap: function(obj) { - return wrap_default(this, obj); - } -}; -var out_default = methods12; - -// node_modules/compromise/src/1-one/output/api/text.js -var isObject6 = (val) => { - return Object.prototype.toString.call(val) === "[object Object]"; -}; -var text_default = { - text: function(fmt2) { - let opts2 = {}; - if (fmt2 && typeof fmt2 === "string" && fmts_default.hasOwnProperty(fmt2)) { - opts2 = Object.assign({}, fmts_default[fmt2]); - } else if (fmt2 && isObject6(fmt2)) { - opts2 = Object.assign({}, fmt2); - } - if (opts2.keepSpace === void 0 && this.pointer) { - opts2.keepSpace = false; - } - if (opts2.keepPunct === void 0 && this.pointer) { - let ptr = this.pointer[0]; - if (ptr && ptr[1]) { - opts2.keepPunct = false; - } else { - opts2.keepPunct = true; - } - } - if (opts2.keepPunct === void 0) { - opts2.keepPunct = true; - } - if (opts2.keepSpace === void 0) { - opts2.keepSpace = true; - } - return textFromDoc(this.docs, opts2); - } -}; - -// node_modules/compromise/src/1-one/output/api/index.js -var methods13 = Object.assign({}, out_default, text_default, json_default, html_default); -var addAPI3 = function(View2) { - Object.assign(View2.prototype, methods13); -}; -var api_default5 = addAPI3; - -// node_modules/compromise/src/1-one/output/plugin.js -var plugin_default7 = { - api: api_default5, - methods: { - one: { - hash: md5 - } - } -}; - -// node_modules/compromise/src/1-one/pointers/api/lib/_lib.js -var doesOverlap = function(a2, b) { - if (a2[0] !== b[0]) { - return false; - } - let [, startA, endA] = a2; - let [, startB, endB] = b; - if (startA <= startB && endA > startB) { - return true; - } - if (startB <= startA && endB > startA) { - return true; - } - return false; -}; -var getExtent = function(ptrs) { - let min2 = ptrs[0][1]; - let max3 = ptrs[0][2]; - ptrs.forEach((ptr) => { - if (ptr[1] < min2) { - min2 = ptr[1]; - } - if (ptr[2] > max3) { - max3 = ptr[2]; - } - }); - return [ptrs[0][0], min2, max3]; -}; -var indexN = function(ptrs) { - let byN = {}; - ptrs.forEach((ref) => { - byN[ref[0]] = byN[ref[0]] || []; - byN[ref[0]].push(ref); - }); - return byN; -}; -var uniquePtrs = function(arr) { - let obj = {}; - for (let i3 = 0; i3 < arr.length; i3 += 1) { - obj[arr[i3].join(",")] = arr[i3]; - } - return Object.values(obj); -}; - -// node_modules/compromise/src/1-one/pointers/api/lib/split.js -var pivotBy = function(full, m3) { - let [n3, start2] = full; - let mStart = m3[1]; - let mEnd = m3[2]; - let res = {}; - if (start2 < mStart) { - let end2 = mStart < full[2] ? mStart : full[2]; - res.before = [n3, start2, end2]; - } - res.match = m3; - if (full[2] > mEnd) { - res.after = [n3, mEnd, full[2]]; - } - return res; -}; -var doesMatch2 = function(full, m3) { - return full[1] <= m3[1] && m3[2] <= full[2]; -}; -var splitAll = function(full, m3) { - let byN = indexN(m3); - let res = []; - full.forEach((ptr) => { - let [n3] = ptr; - let matches3 = byN[n3] || []; - matches3 = matches3.filter((p4) => doesMatch2(ptr, p4)); - if (matches3.length === 0) { - res.push({ passthrough: ptr }); - return; - } - matches3 = matches3.sort((a2, b) => a2[1] - b[1]); - let carry = ptr; - matches3.forEach((p4, i3) => { - let found = pivotBy(carry, p4); - if (!matches3[i3 + 1]) { - res.push(found); - } else { - res.push({ before: found.before, match: found.match }); - if (found.after) { - carry = found.after; - } - } - }); - }); - return res; -}; -var split_default2 = splitAll; - -// node_modules/compromise/src/1-one/pointers/methods/getDoc.js -var max = 20; -var blindSweep = function(id, doc, n3) { - for (let i3 = 0; i3 < max; i3 += 1) { - if (doc[n3 - i3]) { - let index3 = doc[n3 - i3].findIndex((term) => term.id === id); - if (index3 !== -1) { - return [n3 - i3, index3]; - } - } - if (doc[n3 + i3]) { - let index3 = doc[n3 + i3].findIndex((term) => term.id === id); - if (index3 !== -1) { - return [n3 + i3, index3]; - } - } - } - return null; -}; -var repairEnding = function(ptr, document2) { - let [n3, start2, , , endId] = ptr; - let terms = document2[n3]; - let newEnd = terms.findIndex((t2) => t2.id === endId); - if (newEnd === -1) { - ptr[2] = document2[n3].length; - ptr[4] = terms.length ? terms[terms.length - 1].id : null; - } else { - ptr[2] = newEnd; - } - return document2[n3].slice(start2, ptr[2] + 1); -}; -var getDoc2 = function(ptrs, document2) { - let doc = []; - ptrs.forEach((ptr, i3) => { - if (!ptr) { - return; - } - let [n3, start2, end2, id, endId] = ptr; - let terms = document2[n3] || []; - if (start2 === void 0) { - start2 = 0; - } - if (end2 === void 0) { - end2 = terms.length; - } - if (id && (!terms[start2] || terms[start2].id !== id)) { - let wild = blindSweep(id, document2, n3); - if (wild !== null) { - let len = end2 - start2; - terms = document2[wild[0]].slice(wild[1], wild[1] + len); - let startId = terms[0] ? terms[0].id : null; - ptrs[i3] = [wild[0], wild[1], wild[1] + len, startId]; - } - } else { - terms = terms.slice(start2, end2); - } - if (terms.length === 0) { - return; - } - if (start2 === end2) { - return; - } - if (endId && terms[terms.length - 1].id !== endId) { - terms = repairEnding(ptr, document2); - } - doc.push(terms); - }); - doc = doc.filter((a2) => a2.length > 0); - return doc; -}; -var getDoc_default = getDoc2; - -// node_modules/compromise/src/1-one/pointers/methods/index.js -var termList = function(docs) { - let arr = []; - for (let i3 = 0; i3 < docs.length; i3 += 1) { - for (let t2 = 0; t2 < docs[i3].length; t2 += 1) { - arr.push(docs[i3][t2]); - } - } - return arr; -}; -var methods_default5 = { - one: { - termList, - getDoc: getDoc_default, - pointer: { - indexN, - splitAll: split_default2 - } - } -}; - -// node_modules/compromise/src/1-one/pointers/api/lib/union.js -var getUnion = function(a2, b) { - let both = a2.concat(b); - let byN = indexN(both); - let res = []; - both.forEach((ptr) => { - let [n3] = ptr; - if (byN[n3].length === 1) { - res.push(ptr); - return; - } - let hmm = byN[n3].filter((m3) => doesOverlap(ptr, m3)); - hmm.push(ptr); - let range = getExtent(hmm); - res.push(range); - }); - res = uniquePtrs(res); - return res; -}; -var union_default = getUnion; - -// node_modules/compromise/src/1-one/pointers/api/lib/difference.js -var subtract = function(refs, not) { - let res = []; - let found = split_default2(refs, not); - found.forEach((o2) => { - if (o2.passthrough) { - res.push(o2.passthrough); - } - if (o2.before) { - res.push(o2.before); - } - if (o2.after) { - res.push(o2.after); - } - }); - return res; -}; -var difference_default = subtract; - -// node_modules/compromise/src/1-one/pointers/api/lib/intersection.js -var intersection = function(a2, b) { - let start2 = a2[1] < b[1] ? b[1] : a2[1]; - let end2 = a2[2] > b[2] ? b[2] : a2[2]; - if (start2 < end2) { - return [a2[0], start2, end2]; - } - return null; -}; -var getIntersection = function(a2, b) { - let byN = indexN(b); - let res = []; - a2.forEach((ptr) => { - let hmm = byN[ptr[0]] || []; - hmm = hmm.filter((p4) => doesOverlap(ptr, p4)); - if (hmm.length === 0) { - return; - } - hmm.forEach((h2) => { - let overlap = intersection(ptr, h2); - if (overlap) { - res.push(overlap); - } - }); - }); - return res; -}; -var intersection_default = getIntersection; - -// node_modules/compromise/src/1-one/pointers/api/index.js -var isArray7 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var getDoc3 = (m3, view) => { - if (typeof m3 === "string" || isArray7(m3)) { - return view.match(m3); - } - if (!m3) { - return view.none(); - } - return m3; -}; -var addIds3 = function(ptrs, docs) { - return ptrs.map((ptr) => { - let [n3, start2] = ptr; - if (docs[n3] && docs[n3][start2]) { - ptr[3] = docs[n3][start2].id; - } - return ptr; - }); -}; -var methods14 = {}; -methods14.union = function(m3) { - m3 = getDoc3(m3, this); - let ptrs = union_default(this.fullPointer, m3.fullPointer); - ptrs = addIds3(ptrs, this.document); - return this.toView(ptrs); -}; -methods14.and = methods14.union; -methods14.intersection = function(m3) { - m3 = getDoc3(m3, this); - let ptrs = intersection_default(this.fullPointer, m3.fullPointer); - ptrs = addIds3(ptrs, this.document); - return this.toView(ptrs); -}; -methods14.not = function(m3) { - m3 = getDoc3(m3, this); - let ptrs = difference_default(this.fullPointer, m3.fullPointer); - ptrs = addIds3(ptrs, this.document); - return this.toView(ptrs); -}; -methods14.difference = methods14.not; -methods14.complement = function() { - let doc = this.all(); - let ptrs = difference_default(doc.fullPointer, this.fullPointer); - ptrs = addIds3(ptrs, this.document); - return this.toView(ptrs); -}; -methods14.settle = function() { - let ptrs = this.fullPointer; - ptrs.forEach((ptr) => { - ptrs = union_default(ptrs, [ptr]); - }); - ptrs = addIds3(ptrs, this.document); - return this.update(ptrs); -}; -var addAPI4 = function(View2) { - Object.assign(View2.prototype, methods14); -}; -var api_default6 = addAPI4; - -// node_modules/compromise/src/1-one/pointers/plugin.js -var plugin_default8 = { - methods: methods_default5, - api: api_default6 -}; - -// node_modules/compromise/src/1-one/sweep/lib.js -var lib_default3 = { - buildNet: function(matches3) { - const methods16 = this.methods(); - let net3 = methods16.one.buildNet(matches3, this.world()); - net3.isNet = true; - return net3; - } -}; - -// node_modules/compromise/src/1-one/sweep/api.js -var api = function(View2) { - View2.prototype.sweep = function(net3, opts2 = {}) { - const { world: world2, docs } = this; - const { methods: methods16 } = world2; - let found = methods16.one.bulkMatch(docs, net3, this.methods, opts2); - if (opts2.tagger !== false) { - methods16.one.bulkTagger(found, docs, this.world); - } - found = found.map((o2) => { - let ptr = o2.pointer; - let term = docs[ptr[0]][ptr[1]]; - let len = ptr[2] - ptr[1]; - if (term.index) { - o2.pointer = [ - term.index[0], - term.index[1], - ptr[1] + len - ]; - } - return o2; - }); - let ptrs = found.map((o2) => o2.pointer); - found = found.map((obj) => { - obj.view = this.update([obj.pointer]); - delete obj.regs; - delete obj.needs; - delete obj.pointer; - delete obj._expanded; - return obj; - }); - return { - view: this.update(ptrs), - found - }; - }; -}; -var api_default7 = api; - -// node_modules/compromise/src/1-one/sweep/methods/buildNet/01-parse.js -var getTokenNeeds = function(reg) { - if (reg.optional === true || reg.negative === true) { - return null; - } - if (reg.tag) { - return "#" + reg.tag; - } - if (reg.word) { - return reg.word; - } - if (reg.switch) { - return `%${reg.switch}%`; - } - return null; -}; -var getNeeds = function(regs) { - let needs = []; - regs.forEach((reg) => { - needs.push(getTokenNeeds(reg)); - if (reg.operator === "and" && reg.choices) { - reg.choices.forEach((oneSide) => { - oneSide.forEach((r2) => { - needs.push(getTokenNeeds(r2)); - }); - }); - } - }); - return needs.filter((str) => str); -}; -var getWants = function(regs) { - let wants = []; - let count = 0; - regs.forEach((reg) => { - if (reg.operator === "or" && !reg.optional && !reg.negative) { - if (reg.fastOr) { - Array.from(reg.fastOr).forEach((w) => { - wants.push(w); - }); - } - if (reg.choices) { - reg.choices.forEach((rs) => { - rs.forEach((r2) => { - let n3 = getTokenNeeds(r2); - if (n3) { - wants.push(n3); - } - }); - }); - } - count += 1; - } - }); - return { wants, count }; -}; -var parse = function(matches3, world2) { - const parseMatch = world2.methods.one.parseMatch; - matches3.forEach((obj) => { - obj.regs = parseMatch(obj.match, {}, world2); - if (typeof obj.ifNo === "string") { - obj.ifNo = [obj.ifNo]; - } - if (obj.notIf) { - obj.notIf = parseMatch(obj.notIf, {}, world2); - } - obj.needs = getNeeds(obj.regs); - let { wants, count } = getWants(obj.regs); - obj.wants = wants; - obj.minWant = count; - obj.minWords = obj.regs.filter((o2) => !o2.optional).length; - }); - return matches3; -}; -var parse_default = parse; - -// node_modules/compromise/src/1-one/sweep/methods/buildNet/index.js -var buildNet = function(matches3, world2) { - matches3 = parse_default(matches3, world2); - let hooks2 = {}; - matches3.forEach((obj) => { - obj.needs.forEach((str) => { - hooks2[str] = hooks2[str] || []; - hooks2[str].push(obj); - }); - obj.wants.forEach((str) => { - hooks2[str] = hooks2[str] || []; - hooks2[str].push(obj); - }); - }); - Object.keys(hooks2).forEach((k2) => { - let already = {}; - hooks2[k2] = hooks2[k2].filter((obj) => { - if (already[obj.match]) { - return false; - } - already[obj.match] = true; - return true; - }); - }); - let always = matches3.filter((o2) => o2.needs.length === 0 && o2.wants.length === 0); - return { - hooks: hooks2, - always - }; -}; -var buildNet_default = buildNet; - -// node_modules/compromise/src/1-one/sweep/methods/sweep/01-getHooks.js -var getHooks = function(docCaches, hooks2) { - return docCaches.map((set, i3) => { - let maybe = []; - Object.keys(hooks2).forEach((k2) => { - if (docCaches[i3].has(k2)) { - maybe = maybe.concat(hooks2[k2]); - } - }); - let already = {}; - maybe = maybe.filter((m3) => { - if (already[m3.match]) { - return false; - } - already[m3.match] = true; - return true; - }); - return maybe; - }); -}; -var getHooks_default = getHooks; - -// node_modules/compromise/src/1-one/sweep/methods/sweep/02-trim-down.js -var localTrim = function(maybeList, docCache) { - return maybeList.map((list4, n3) => { - let haves = docCache[n3]; - list4 = list4.filter((obj) => { - return obj.needs.every((need) => haves.has(need)); - }); - list4 = list4.filter((obj) => { - if (obj.ifNo !== void 0 && obj.ifNo.some((no) => haves.has(no)) === true) { - return false; - } - return true; - }); - list4 = list4.filter((obj) => { - if (obj.wants.length === 0) { - return true; - } - let found = obj.wants.filter((str) => haves.has(str)).length; - return found >= obj.minWant; - }); - return list4; - }); -}; -var trim_down_default = localTrim; - -// node_modules/compromise/src/1-one/sweep/methods/sweep/04-runMatch.js -var runMatch2 = function(maybeList, document2, docCache, methods16, opts2) { - let results = []; - for (let n3 = 0; n3 < maybeList.length; n3 += 1) { - for (let i3 = 0; i3 < maybeList[n3].length; i3 += 1) { - let m3 = maybeList[n3][i3]; - let res = methods16.one.match([document2[n3]], m3); - if (res.ptrs.length > 0) { - res.ptrs.forEach((ptr) => { - ptr[0] = n3; - let todo = Object.assign({}, m3, { pointer: ptr }); - if (m3.unTag !== void 0) { - todo.unTag = m3.unTag; - } - results.push(todo); - }); - if (opts2.matchOne === true) { - return [results[0]]; - } - } - } - } - return results; -}; -var runMatch_default = runMatch2; - -// node_modules/compromise/src/1-one/sweep/methods/sweep/index.js -var tooSmall = function(maybeList, document2) { - return maybeList.map((arr, i3) => { - let termCount = document2[i3].length; - arr = arr.filter((o2) => { - return termCount >= o2.minWords; - }); - return arr; - }); -}; -var sweep = function(document2, net3, methods16, opts2 = {}) { - let docCache = methods16.one.cacheDoc(document2); - let maybeList = getHooks_default(docCache, net3.hooks); - maybeList = trim_down_default(maybeList, docCache, document2); - if (net3.always.length > 0) { - maybeList = maybeList.map((arr) => arr.concat(net3.always)); - } - maybeList = tooSmall(maybeList, document2); - let results = runMatch_default(maybeList, document2, docCache, methods16, opts2); - return results; -}; -var sweep_default = sweep; - -// node_modules/compromise/src/1-one/sweep/methods/tagger/canBe.js -var canBe = function(terms, tag, model5) { - let tagSet = model5.one.tagSet; - if (!tagSet.hasOwnProperty(tag)) { - return true; - } - let not = tagSet[tag].not || []; - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let term = terms[i3]; - for (let k2 = 0; k2 < not.length; k2 += 1) { - if (term.tags.has(not[k2]) === true) { - return false; - } - } - } - return true; -}; -var canBe_default = canBe; - -// node_modules/compromise/src/1-one/sweep/methods/tagger/index.js -var tagger = function(list4, document2, world2) { - const { model: model5, methods: methods16 } = world2; - const { getDoc: getDoc4, setTag: setTag3, unTag: unTag2 } = methods16.one; - const looksPlural2 = methods16.two.looksPlural; - if (list4.length === 0) { - return list4; - } - const env2 = typeof process === "undefined" || !process.env ? self.env || {} : process.env; - if (env2.DEBUG_TAGS) { - console.log(` - - \x1B[32m\u2192 ${list4.length} post-tagger:\x1B[0m`); - } - return list4.map((todo) => { - if (!todo.tag && !todo.chunk && !todo.unTag) { - return; - } - let reason = todo.reason || todo.match; - let terms = getDoc4([todo.pointer], document2)[0]; - if (todo.safe === true) { - if (canBe_default(terms, todo.tag, model5) === false) { - return; - } - if (terms[terms.length - 1].post === "-") { - return; - } - } - if (todo.tag !== void 0) { - setTag3(terms, todo.tag, world2, todo.safe, `[post] '${reason}'`); - if (todo.tag === "Noun" && looksPlural2) { - let term = terms[terms.length - 1]; - if (looksPlural2(term.text)) { - setTag3([term], "Plural", world2, todo.safe, "quick-plural"); - } else { - setTag3([term], "Singular", world2, todo.safe, "quick-singular"); - } - } - } - if (todo.unTag !== void 0) { - unTag2(terms, todo.unTag, world2, todo.safe, reason); - } - if (todo.chunk) { - terms.forEach((t2) => t2.chunk = todo.chunk); - } - }); -}; -var tagger_default = tagger; - -// node_modules/compromise/src/1-one/sweep/methods/index.js -var methods_default6 = { - buildNet: buildNet_default, - bulkMatch: sweep_default, - bulkTagger: tagger_default -}; - -// node_modules/compromise/src/1-one/sweep/plugin.js -var plugin_default9 = { - lib: lib_default3, - api: api_default7, - methods: { - one: methods_default6 - } -}; - -// node_modules/compromise/src/1-one/tag/methods/setTag.js -var isMulti = / /; -var addChunk = function(term, tag) { - if (tag === "Noun") { - term.chunk = tag; - } - if (tag === "Verb") { - term.chunk = tag; - } -}; -var tagTerm = function(term, tag, tagSet, isSafe) { - if (term.tags.has(tag) === true) { - return null; - } - if (tag === ".") { - return null; - } - let known = tagSet[tag]; - if (known) { - if (known.not && known.not.length > 0) { - for (let o2 = 0; o2 < known.not.length; o2 += 1) { - if (isSafe === true && term.tags.has(known.not[o2])) { - return null; - } - term.tags.delete(known.not[o2]); - } - } - if (known.parents && known.parents.length > 0) { - for (let o2 = 0; o2 < known.parents.length; o2 += 1) { - term.tags.add(known.parents[o2]); - addChunk(term, known.parents[o2]); - } - } - } - term.tags.add(tag); - term.dirty = true; - addChunk(term, tag); - return true; -}; -var multiTag = function(terms, tagString2, tagSet, isSafe) { - let tags = tagString2.split(isMulti); - terms.forEach((term, i3) => { - let tag = tags[i3]; - if (tag) { - tag = tag.replace(/^#/, ""); - tagTerm(term, tag, tagSet, isSafe); - } - }); -}; -var isArray8 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var log = (terms, tag, reason = "") => { - const yellow = (str) => "\x1B[33m\x1B[3m" + str + "\x1B[0m"; - const i3 = (str) => "\x1B[3m" + str + "\x1B[0m"; - let word = terms.map((t2) => { - return t2.text || "[" + t2.implicit + "]"; - }).join(" "); - if (typeof tag !== "string" && tag.length > 2) { - tag = tag.slice(0, 2).join(", #") + " +"; - } - tag = typeof tag !== "string" ? tag.join(", #") : tag; - console.log(` ${yellow(word).padEnd(24)} \x1B[32m\u2192\x1B[0m #${tag.padEnd(22)} ${i3(reason)}`); -}; -var setTag = function(terms, tag, world2 = {}, isSafe, reason) { - const tagSet = world2.model.one.tagSet || {}; - if (!tag) { - return; - } - const env2 = typeof process === "undefined" || !process.env ? self.env || {} : process.env; - if (env2 && env2.DEBUG_TAGS) { - log(terms, tag, reason); - } - if (isArray8(tag) === true) { - tag.forEach((tg) => setTag(terms, tg, world2, isSafe)); - return; - } - if (typeof tag !== "string") { - console.warn(`compromise: Invalid tag '${tag}'`); - return; - } - tag = tag.trim(); - if (isMulti.test(tag)) { - multiTag(terms, tag, tagSet, isSafe); - return; - } - tag = tag.replace(/^#/, ""); - for (let i3 = 0; i3 < terms.length; i3 += 1) { - tagTerm(terms[i3], tag, tagSet, isSafe); - } -}; -var setTag_default = setTag; - -// node_modules/compromise/src/1-one/tag/methods/unTag.js -var unTag = function(terms, tag, tagSet) { - tag = tag.trim().replace(/^#/, ""); - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let term = terms[i3]; - if (tag === "*") { - term.tags.clear(); - continue; - } - let known = tagSet[tag]; - if (known && known.children.length > 0) { - for (let o2 = 0; o2 < known.children.length; o2 += 1) { - term.tags.delete(known.children[o2]); - } - } - term.tags.delete(tag); - } -}; -var unTag_default = unTag; - -// node_modules/grad-school/builds/grad-school.mjs -var e = function(e2) { - return e2.children = e2.children || [], e2._cache = e2._cache || {}, e2.props = e2.props || {}, e2._cache.parents = e2._cache.parents || [], e2._cache.children = e2._cache.children || [], e2; -}; -var t = /^ *(#|\/\/)/; -var n = function(t2) { - let n3 = t2.trim().split(/->/), r2 = []; - n3.forEach((t3) => { - r2 = r2.concat(function(t4) { - if (!(t4 = t4.trim())) - return null; - if (/^\[/.test(t4) && /\]$/.test(t4)) { - let n4 = (t4 = (t4 = t4.replace(/^\[/, "")).replace(/\]$/, "")).split(/,/); - return n4 = n4.map((e2) => e2.trim()).filter((e2) => e2), n4 = n4.map((t5) => e({ id: t5 })), n4; - } - return [e({ id: t4 })]; - }(t3)); - }), r2 = r2.filter((e2) => e2); - let i3 = r2[0]; - for (let e2 = 1; e2 < r2.length; e2 += 1) - i3.children.push(r2[e2]), i3 = r2[e2]; - return r2[0]; -}; -var r = (e2, t2) => { - let n3 = [], r2 = [e2]; - for (; r2.length > 0; ) { - let e3 = r2.pop(); - n3.push(e3), e3.children && e3.children.forEach((n4) => { - t2 && t2(e3, n4), r2.push(n4); - }); - } - return n3; -}; -var i2 = (e2) => Object.prototype.toString.call(e2) === "[object Array]"; -var c = (e2) => (e2 = e2 || "").trim(); -var s = function(c2 = []) { - return typeof c2 == "string" ? function(r2) { - let i3 = r2.split(/\r?\n/), c3 = []; - i3.forEach((e2) => { - if (!e2.trim() || t.test(e2)) - return; - let r3 = ((e3) => { - const t2 = /^( {2}|\t)/; - let n3 = 0; - for (; t2.test(e3); ) - e3 = e3.replace(t2, ""), n3 += 1; - return n3; - })(e2); - c3.push({ indent: r3, node: n(e2) }); - }); - let s4 = function(e2) { - let t2 = { children: [] }; - return e2.forEach((n3, r3) => { - n3.indent === 0 ? t2.children = t2.children.concat(n3.node) : e2[r3 - 1] && function(e3, t3) { - let n4 = e3[t3].indent; - for (; t3 >= 0; t3 -= 1) - if (e3[t3].indent < n4) - return e3[t3]; - return e3[0]; - }(e2, r3).node.children.push(n3.node); - }), t2; - }(c3); - return s4 = e(s4), s4; - }(c2) : i2(c2) ? function(t2) { - let n3 = {}; - t2.forEach((e2) => { - n3[e2.id] = e2; - }); - let r2 = e({}); - return t2.forEach((t3) => { - if ((t3 = e(t3)).parent) - if (n3.hasOwnProperty(t3.parent)) { - let e2 = n3[t3.parent]; - delete t3.parent, e2.children.push(t3); - } else - console.warn(`[Grad] - missing node '${t3.parent}'`); - else - r2.children.push(t3); - }), r2; - }(c2) : (r(s3 = c2).forEach(e), s3); - var s3; -}; -var h = (e2) => "\x1B[31m" + e2 + "\x1B[0m"; -var o = (e2) => "\x1B[2m" + e2 + "\x1B[0m"; -var l = function(e2, t2) { - let n3 = "-> "; - t2 && (n3 = o("\u2192 ")); - let i3 = ""; - return r(e2).forEach((e3, r2) => { - let c2 = e3.id || ""; - if (t2 && (c2 = h(c2)), r2 === 0 && !e3.id) - return; - let s3 = e3._cache.parents.length; - i3 += " ".repeat(s3) + n3 + c2 + "\n"; - }), i3; -}; -var a = function(e2) { - let t2 = r(e2); - t2.forEach((e3) => { - delete (e3 = Object.assign({}, e3)).children; - }); - let n3 = t2[0]; - return n3 && !n3.id && Object.keys(n3.props).length === 0 && t2.shift(), t2; -}; -var p = { text: l, txt: l, array: a, flat: a }; -var d = function(e2, t2) { - return t2 === "nested" || t2 === "json" ? e2 : t2 === "debug" ? (console.log(l(e2, true)), null) : p.hasOwnProperty(t2) ? p[t2](e2) : e2; -}; -var u = (e2) => { - r(e2, (e3, t2) => { - e3.id && (e3._cache.parents = e3._cache.parents || [], t2._cache.parents = e3._cache.parents.concat([e3.id])); - }); -}; -var f = (e2, t2) => (Object.keys(t2).forEach((n3) => { - if (t2[n3] instanceof Set) { - let r2 = e2[n3] || /* @__PURE__ */ new Set(); - e2[n3] = /* @__PURE__ */ new Set([...r2, ...t2[n3]]); - } else { - if (((e3) => e3 && typeof e3 == "object" && !Array.isArray(e3))(t2[n3])) { - let r2 = e2[n3] || {}; - e2[n3] = Object.assign({}, t2[n3], r2); - } else - i2(t2[n3]) ? e2[n3] = t2[n3].concat(e2[n3] || []) : e2[n3] === void 0 && (e2[n3] = t2[n3]); - } -}), e2); -var j = /\//; -var g = class { - constructor(e2 = {}) { - Object.defineProperty(this, "json", { enumerable: false, value: e2, writable: true }); - } - get children() { - return this.json.children; - } - get id() { - return this.json.id; - } - get found() { - return this.json.id || this.json.children.length > 0; - } - props(e2 = {}) { - let t2 = this.json.props || {}; - return typeof e2 == "string" && (t2[e2] = true), this.json.props = Object.assign(t2, e2), this; - } - get(t2) { - if (t2 = c(t2), !j.test(t2)) { - let e2 = this.json.children.find((e3) => e3.id === t2); - return new g(e2); - } - let n3 = ((e2, t3) => { - let n4 = ((e3) => typeof e3 != "string" ? e3 : (e3 = e3.replace(/^\//, "")).split(/\//))(t3 = t3 || ""); - for (let t4 = 0; t4 < n4.length; t4 += 1) { - let r2 = e2.children.find((e3) => e3.id === n4[t4]); - if (!r2) - return null; - e2 = r2; - } - return e2; - })(this.json, t2) || e({}); - return new g(n3); - } - add(t2, n3 = {}) { - if (i2(t2)) - return t2.forEach((e2) => this.add(c(e2), n3)), this; - t2 = c(t2); - let r2 = e({ id: t2, props: n3 }); - return this.json.children.push(r2), new g(r2); - } - remove(e2) { - return e2 = c(e2), this.json.children = this.json.children.filter((t2) => t2.id !== e2), this; - } - nodes() { - return r(this.json).map((e2) => (delete (e2 = Object.assign({}, e2)).children, e2)); - } - cache() { - return ((e2) => { - let t2 = r(e2, (e3, t3) => { - e3.id && (e3._cache.parents = e3._cache.parents || [], e3._cache.children = e3._cache.children || [], t3._cache.parents = e3._cache.parents.concat([e3.id])); - }), n3 = {}; - t2.forEach((e3) => { - e3.id && (n3[e3.id] = e3); - }), t2.forEach((e3) => { - e3._cache.parents.forEach((t3) => { - n3.hasOwnProperty(t3) && n3[t3]._cache.children.push(e3.id); - }); - }), e2._cache.children = Object.keys(n3); - })(this.json), this; - } - list() { - return r(this.json); - } - fillDown() { - var e2; - return e2 = this.json, r(e2, (e3, t2) => { - t2.props = f(t2.props, e3.props); - }), this; - } - depth() { - u(this.json); - let e2 = r(this.json), t2 = e2.length > 1 ? 1 : 0; - return e2.forEach((e3) => { - if (e3._cache.parents.length === 0) - return; - let n3 = e3._cache.parents.length + 1; - n3 > t2 && (t2 = n3); - }), t2; - } - out(e2) { - return u(this.json), d(this.json, e2); - } - debug() { - return u(this.json), d(this.json, "debug"), this; - } -}; -var _ = function(e2) { - let t2 = s(e2); - return new g(t2); -}; -_.prototype.plugin = function(e2) { - e2(this); -}; - -// node_modules/compromise/src/1-one/tag/methods/addTags/_colors.js -var colors = { - Noun: "blue", - Verb: "green", - Negative: "green", - Date: "red", - Value: "red", - Adjective: "magenta", - Preposition: "cyan", - Conjunction: "cyan", - Determiner: "cyan", - Hyphenated: "cyan", - Adverb: "cyan" -}; -var colors_default = colors; - -// node_modules/compromise/src/1-one/tag/methods/addTags/02-fmt.js -var getColor = function(node) { - if (colors_default.hasOwnProperty(node.id)) { - return colors_default[node.id]; - } - if (colors_default.hasOwnProperty(node.is)) { - return colors_default[node.is]; - } - let found = node._cache.parents.find((c2) => colors_default[c2]); - return colors_default[found]; -}; -var fmt = function(nodes) { - const res = {}; - nodes.forEach((node) => { - let { not, also, is, novel } = node.props; - let parents = node._cache.parents; - if (also) { - parents = parents.concat(also); - } - res[node.id] = { - is, - not, - novel, - also, - parents, - children: node._cache.children, - color: getColor(node) - }; - }); - Object.keys(res).forEach((k2) => { - let nots = new Set(res[k2].not); - res[k2].not.forEach((not) => { - if (res[not]) { - res[not].children.forEach((tag) => nots.add(tag)); - } - }); - res[k2].not = Array.from(nots); - }); - return res; -}; -var fmt_default = fmt; - -// node_modules/compromise/src/1-one/tag/methods/addTags/01-validate.js -var toArr = function(input) { - if (!input) { - return []; - } - if (typeof input === "string") { - return [input]; - } - return input; -}; -var addImplied = function(tags, already) { - Object.keys(tags).forEach((k2) => { - if (tags[k2].isA) { - tags[k2].is = tags[k2].isA; - } - if (tags[k2].notA) { - tags[k2].not = tags[k2].notA; - } - if (tags[k2].is && typeof tags[k2].is === "string") { - if (!already.hasOwnProperty(tags[k2].is) && !tags.hasOwnProperty(tags[k2].is)) { - tags[tags[k2].is] = {}; - } - } - if (tags[k2].not && typeof tags[k2].not === "string" && !tags.hasOwnProperty(tags[k2].not)) { - if (!already.hasOwnProperty(tags[k2].not) && !tags.hasOwnProperty(tags[k2].not)) { - tags[tags[k2].not] = {}; - } - } - }); - return tags; -}; -var validate = function(tags, already) { - tags = addImplied(tags, already); - Object.keys(tags).forEach((k2) => { - tags[k2].children = toArr(tags[k2].children); - tags[k2].not = toArr(tags[k2].not); - }); - Object.keys(tags).forEach((k2) => { - let nots = tags[k2].not || []; - nots.forEach((no) => { - if (tags[no] && tags[no].not) { - tags[no].not.push(k2); - } - }); - }); - return tags; -}; -var validate_default = validate; - -// node_modules/compromise/src/1-one/tag/methods/addTags/index.js -var compute3 = function(allTags2) { - const flatList = Object.keys(allTags2).map((k2) => { - let o2 = allTags2[k2]; - const props = { not: new Set(o2.not), also: o2.also, is: o2.is, novel: o2.novel }; - return { id: k2, parent: o2.is, props, children: [] }; - }); - const graph = _(flatList).cache().fillDown(); - return graph.out("array"); -}; -var fromUser = function(tags) { - Object.keys(tags).forEach((k2) => { - tags[k2] = Object.assign({}, tags[k2]); - tags[k2].novel = true; - }); - return tags; -}; -var addTags = function(tags, already) { - if (Object.keys(already).length > 0) { - tags = fromUser(tags); - } - tags = validate_default(tags, already); - let allTags2 = Object.assign({}, already, tags); - const nodes = compute3(allTags2); - const res = fmt_default(nodes); - return res; -}; -var addTags_default = addTags; - -// node_modules/compromise/src/1-one/tag/methods/index.js -var methods_default7 = { - one: { - setTag: setTag_default, - unTag: unTag_default, - addTags: addTags_default - } -}; - -// node_modules/compromise/src/1-one/tag/api/tag.js -var isArray9 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var fns5 = { - tag: function(input, reason = "", isSafe) { - if (!this.found || !input) { - return this; - } - let terms = this.termList(); - if (terms.length === 0) { - return this; - } - const { methods: methods16, verbose: verbose2, world: world2 } = this; - if (verbose2 === true) { - console.log(" + ", input, reason || ""); - } - if (isArray9(input)) { - input.forEach((tag) => methods16.one.setTag(terms, tag, world2, isSafe, reason)); - } else { - methods16.one.setTag(terms, input, world2, isSafe, reason); - } - this.uncache(); - return this; - }, - tagSafe: function(input, reason = "") { - return this.tag(input, reason, true); - }, - unTag: function(input, reason) { - if (!this.found || !input) { - return this; - } - let terms = this.termList(); - if (terms.length === 0) { - return this; - } - const { methods: methods16, verbose: verbose2, model: model5 } = this; - if (verbose2 === true) { - console.log(" - ", input, reason || ""); - } - let tagSet = model5.one.tagSet; - if (isArray9(input)) { - input.forEach((tag) => methods16.one.unTag(terms, tag, tagSet)); - } else { - methods16.one.unTag(terms, input, tagSet); - } - this.uncache(); - return this; - }, - canBe: function(tag) { - tag = tag.replace(/^#/, ""); - let tagSet = this.model.one.tagSet; - if (!tagSet.hasOwnProperty(tag)) { - return this; - } - let not = tagSet[tag].not || []; - let nope2 = []; - this.document.forEach((terms, n3) => { - terms.forEach((term, i3) => { - let found = not.find((no) => term.tags.has(no)); - if (found) { - nope2.push([n3, i3, i3 + 1]); - } - }); - }); - let noDoc = this.update(nope2); - return this.difference(noDoc); - } -}; -var tag_default = fns5; - -// node_modules/compromise/src/1-one/tag/api/index.js -var tagAPI = function(View2) { - Object.assign(View2.prototype, tag_default); -}; -var api_default8 = tagAPI; - -// node_modules/compromise/src/1-one/tag/lib.js -var addTags2 = function(tags) { - const { model: model5, methods: methods16 } = this.world(); - const tagSet = model5.one.tagSet; - const fn = methods16.one.addTags; - let res = fn(tags, tagSet); - model5.one.tagSet = res; - return this; -}; -var lib_default4 = { addTags: addTags2 }; - -// node_modules/compromise/src/1-one/tag/compute/tagRank.js -var boringTags = /* @__PURE__ */ new Set(["Auxiliary", "Possessive"]); -var sortByKids = function(tags, tagSet) { - tags = tags.sort((a2, b) => { - if (boringTags.has(a2) || !tagSet.hasOwnProperty(b)) { - return 1; - } - if (boringTags.has(b) || !tagSet.hasOwnProperty(a2)) { - return -1; - } - let kids = tagSet[a2].children || []; - let aKids = kids.length; - kids = tagSet[b].children || []; - let bKids = kids.length; - return aKids - bKids; - }); - return tags; -}; -var tagRank = function(view) { - const { document: document2, world: world2 } = view; - const tagSet = world2.model.one.tagSet; - document2.forEach((terms) => { - terms.forEach((term) => { - let tags = Array.from(term.tags); - term.tagRank = sortByKids(tags, tagSet); - }); - }); -}; -var tagRank_default = tagRank; - -// node_modules/compromise/src/1-one/tag/plugin.js -var plugin_default10 = { - model: { - one: { tagSet: {} } - }, - compute: { - tagRank: tagRank_default - }, - methods: methods_default7, - api: api_default8, - lib: lib_default4 -}; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/01-simple-split.js -var initSplit = /([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g; -var splitsOnly = /^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/; -var newLine = /((?:\r?\n|\r)+)/; -var basicSplit = function(text) { - let all4 = []; - let lines = text.split(newLine); - for (let i3 = 0; i3 < lines.length; i3++) { - let arr = lines[i3].split(initSplit); - for (let o2 = 0; o2 < arr.length; o2++) { - if (arr[o2 + 1] && splitsOnly.test(arr[o2 + 1]) === true) { - arr[o2] += arr[o2 + 1]; - arr[o2 + 1] = ""; - } - if (arr[o2] !== "") { - all4.push(arr[o2]); - } - } - } - return all4; -}; -var simple_split_default = basicSplit; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/02-simple-merge.js -var hasLetter = /[a-z0-9\u00C0-\u00FF\u00a9\u00ae\u2000-\u3300\ud000-\udfff]/i; -var hasSomething = /\S/; -var notEmpty = function(splits) { - let chunks2 = []; - for (let i3 = 0; i3 < splits.length; i3++) { - let s3 = splits[i3]; - if (s3 === void 0 || s3 === "") { - continue; - } - if (hasSomething.test(s3) === false || hasLetter.test(s3) === false) { - if (chunks2[chunks2.length - 1]) { - chunks2[chunks2.length - 1] += s3; - continue; - } else if (splits[i3 + 1]) { - splits[i3 + 1] = s3 + splits[i3 + 1]; - continue; - } - } - chunks2.push(s3); - } - return chunks2; -}; -var simple_merge_default = notEmpty; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/03-smart-merge.js -var smartMerge = function(chunks2, world2) { - const isSentence2 = world2.methods.one.tokenize.isSentence; - const abbrevs = world2.model.one.abbreviations || /* @__PURE__ */ new Set(); - let sentences = []; - for (let i3 = 0; i3 < chunks2.length; i3++) { - let c2 = chunks2[i3]; - if (chunks2[i3 + 1] && isSentence2(c2, abbrevs) === false) { - chunks2[i3 + 1] = c2 + (chunks2[i3 + 1] || ""); - } else if (c2 && c2.length > 0) { - sentences.push(c2); - chunks2[i3] = ""; - } - } - return sentences; -}; -var smart_merge_default = smartMerge; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/04-quote-merge.js -var MAX_QUOTE = 280; -var pairs = { - '"': '"', - "\uFF02": "\uFF02", - "\u201C": "\u201D", - "\u201F": "\u201D", - "\u201E": "\u201D", - "\u2E42": "\u201D", - "\u201A": "\u2019", - "\xAB": "\xBB", - "\u2039": "\u203A", - "\u2035": "\u2032", - "\u2036": "\u2033", - "\u2037": "\u2034", - "\u301D": "\u301E", - "\u301F": "\u301E" -}; -var openQuote = RegExp("(" + Object.keys(pairs).join("|") + ")", "g"); -var closeQuote = RegExp("(" + Object.values(pairs).join("|") + ")", "g"); -var closesQuote = function(str) { - if (!str) { - return false; - } - let m3 = str.match(closeQuote); - if (m3 !== null && m3.length === 1) { - return true; - } - return false; -}; -var quoteMerge = function(splits) { - let arr = []; - for (let i3 = 0; i3 < splits.length; i3 += 1) { - let split3 = splits[i3]; - let m3 = split3.match(openQuote); - if (m3 !== null && m3.length === 1) { - if (closesQuote(splits[i3 + 1]) && splits[i3 + 1].length < MAX_QUOTE) { - splits[i3] += splits[i3 + 1]; - arr.push(splits[i3]); - splits[i3 + 1] = ""; - i3 += 1; - continue; - } - if (closesQuote(splits[i3 + 2])) { - let toAdd = splits[i3 + 1] + splits[i3 + 2]; - if (toAdd.length < MAX_QUOTE) { - splits[i3] += toAdd; - arr.push(splits[i3]); - splits[i3 + 1] = ""; - splits[i3 + 2] = ""; - i3 += 2; - continue; - } - } - } - arr.push(splits[i3]); - } - return arr; -}; -var quote_merge_default = quoteMerge; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/05-parens-merge.js -var MAX_LEN = 250; -var hasOpen = /\(/g; -var hasClosed = /\)/g; -var mergeParens = function(splits) { - let arr = []; - for (let i3 = 0; i3 < splits.length; i3 += 1) { - let split3 = splits[i3]; - let m3 = split3.match(hasOpen); - if (m3 !== null && m3.length === 1) { - if (splits[i3 + 1] && splits[i3 + 1].length < MAX_LEN) { - let m22 = splits[i3 + 1].match(hasClosed); - if (m22 !== null && m3.length === 1 && !hasOpen.test(splits[i3 + 1])) { - splits[i3] += splits[i3 + 1]; - arr.push(splits[i3]); - splits[i3 + 1] = ""; - i3 += 1; - continue; - } - } - } - arr.push(splits[i3]); - } - return arr; -}; -var parens_merge_default = mergeParens; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/index.js -var hasSomething2 = /\S/; -var startWhitespace = /^\s+/; -var splitSentences = function(text, world2) { - text = text || ""; - text = String(text); - if (!text || typeof text !== "string" || hasSomething2.test(text) === false) { - return []; - } - text = text.replace("\xA0", " "); - let splits = simple_split_default(text); - let sentences = simple_merge_default(splits); - sentences = smart_merge_default(sentences, world2); - sentences = quote_merge_default(sentences); - sentences = parens_merge_default(sentences); - if (sentences.length === 0) { - return [text]; - } - for (let i3 = 1; i3 < sentences.length; i3 += 1) { - let ws = sentences[i3].match(startWhitespace); - if (ws !== null) { - sentences[i3 - 1] += ws[0]; - sentences[i3] = sentences[i3].replace(startWhitespace, ""); - } - } - return sentences; -}; -var sentences_default = splitSentences; - -// node_modules/compromise/src/1-one/tokenize/methods/02-terms/01-hyphens.js -var hasHyphen2 = function(str, model5) { - let parts = str.split(/[-–—]/); - if (parts.length <= 1) { - return false; - } - const { prefixes: prefixes2, suffixes: suffixes6 } = model5.one; - if (parts[0].length === 1 && /[a-z]/i.test(parts[0])) { - return false; - } - if (prefixes2.hasOwnProperty(parts[0])) { - return false; - } - parts[1] = parts[1].trim().replace(/[.?!]$/, ""); - if (suffixes6.hasOwnProperty(parts[1])) { - return false; - } - let reg = /^([a-z\u00C0-\u00FF`"'/]+)[-–—]([a-z0-9\u00C0-\u00FF].*)/i; - if (reg.test(str) === true) { - return true; - } - let reg2 = /^([0-9]{1,4})[-–—]([a-z\u00C0-\u00FF`"'/-]+$)/i; - if (reg2.test(str) === true) { - return true; - } - return false; -}; -var splitHyphens2 = function(word) { - let arr = []; - const hyphens = word.split(/[-–—]/); - let whichDash = "-"; - let found = word.match(/[-–—]/); - if (found && found[0]) { - whichDash = found; - } - for (let o2 = 0; o2 < hyphens.length; o2++) { - if (o2 === hyphens.length - 1) { - arr.push(hyphens[o2]); - } else { - arr.push(hyphens[o2] + whichDash); - } - } - return arr; -}; - -// node_modules/compromise/src/1-one/tokenize/methods/02-terms/03-ranges.js -var combineRanges = function(arr) { - const startRange = /^[0-9]{1,4}(:[0-9][0-9])?([a-z]{1,2})? ?[-–—] ?$/; - const endRange = /^[0-9]{1,4}([a-z]{1,2})? ?$/; - for (let i3 = 0; i3 < arr.length - 1; i3 += 1) { - if (arr[i3 + 1] && startRange.test(arr[i3]) && endRange.test(arr[i3 + 1])) { - arr[i3] = arr[i3] + arr[i3 + 1]; - arr[i3 + 1] = null; - } - } - return arr; -}; -var ranges_default = combineRanges; - -// node_modules/compromise/src/1-one/tokenize/methods/02-terms/02-slashes.js -var isSlash = /\p{L} ?\/ ?\p{L}+$/u; -var combineSlashes = function(arr) { - for (let i3 = 1; i3 < arr.length - 1; i3++) { - if (isSlash.test(arr[i3])) { - arr[i3 - 1] += arr[i3] + arr[i3 + 1]; - arr[i3] = null; - arr[i3 + 1] = null; - } - } - return arr; -}; -var slashes_default = combineSlashes; - -// node_modules/compromise/src/1-one/tokenize/methods/02-terms/index.js -var wordlike = /\S/; -var isBoundary = /^[!?.]+$/; -var naiiveSplit = /(\S+)/; -var notWord = [".", "?", "!", ":", ";", "-", "\u2013", "\u2014", "--", "...", "(", ")", "[", "]", '"', "'", "`", "\xAB", "\xBB", "*"]; -notWord = notWord.reduce((h2, c2) => { - h2[c2] = true; - return h2; -}, {}); -var isArray10 = function(arr) { - return Object.prototype.toString.call(arr) === "[object Array]"; -}; -var splitWords = function(str, model5) { - let result = []; - let arr = []; - str = str || ""; - if (typeof str === "number") { - str = String(str); - } - if (isArray10(str)) { - return str; - } - const words = str.split(naiiveSplit); - for (let i3 = 0; i3 < words.length; i3++) { - if (hasHyphen2(words[i3], model5) === true) { - arr = arr.concat(splitHyphens2(words[i3])); - continue; - } - arr.push(words[i3]); - } - let carry = ""; - for (let i3 = 0; i3 < arr.length; i3++) { - let word = arr[i3]; - if (wordlike.test(word) === true && notWord.hasOwnProperty(word) === false && isBoundary.test(word) === false) { - if (result.length > 0) { - result[result.length - 1] += carry; - result.push(word); - } else { - result.push(carry + word); - } - carry = ""; - } else { - carry += word; - } - } - if (carry) { - if (result.length === 0) { - result[0] = ""; - } - result[result.length - 1] += carry; - } - result = slashes_default(result); - result = ranges_default(result); - result = result.filter((s3) => s3); - return result; -}; -var terms_default = splitWords; - -// node_modules/compromise/src/1-one/tokenize/methods/03-whitespace/tokenize.js -var isLetter = /\p{Letter}/u; -var isNumber = /[\p{Number}\p{Currency_Symbol}]/u; -var hasAcronym = /^[a-z]\.([a-z]\.)+/i; -var chillin = /[sn]['’]$/; -var normalizePunctuation = function(str, model5) { - let { prePunctuation: prePunctuation2, postPunctuation: postPunctuation2, emoticons: emoticons2 } = model5.one; - let original = str; - let pre = ""; - let post = ""; - let chars = Array.from(str); - if (emoticons2.hasOwnProperty(str.trim())) { - return { str: str.trim(), pre, post: " " }; - } - let len = chars.length; - for (let i3 = 0; i3 < len; i3 += 1) { - let c2 = chars[0]; - if (prePunctuation2[c2] === true) { - continue; - } - if ((c2 === "+" || c2 === "-") && isNumber.test(chars[1])) { - break; - } - if (c2 === "'" && c2.length === 3 && isNumber.test(chars[1])) { - break; - } - if (isLetter.test(c2) || isNumber.test(c2)) { - break; - } - pre += chars.shift(); - } - len = chars.length; - for (let i3 = 0; i3 < len; i3 += 1) { - let c2 = chars[chars.length - 1]; - if (postPunctuation2[c2] === true) { - continue; - } - if (isLetter.test(c2) || isNumber.test(c2)) { - break; - } - if (c2 === "." && hasAcronym.test(original) === true) { - continue; - } - if (c2 === "'" && chillin.test(original) === true) { - continue; - } - post = chars.pop() + post; - } - str = chars.join(""); - if (str === "") { - original = original.replace(/ *$/, (after2) => { - post = after2 || ""; - return ""; - }); - str = original; - pre = ""; - } - return { str, pre, post }; -}; -var tokenize_default = normalizePunctuation; - -// node_modules/compromise/src/1-one/tokenize/methods/03-whitespace/index.js -var parseTerm = (txt, model5) => { - let { str, pre, post } = tokenize_default(txt, model5); - const parsed = { - text: str, - pre, - post, - tags: /* @__PURE__ */ new Set() - }; - return parsed; -}; -var whitespace_default2 = parseTerm; - -// node_modules/compromise/src/1-one/tokenize/methods/unicode.js -var killUnicode = function(str, world2) { - const unicode2 = world2.model.one.unicode || {}; - str = str || ""; - let chars = str.split(""); - chars.forEach((s3, i3) => { - if (unicode2[s3]) { - chars[i3] = unicode2[s3]; - } - }); - return chars.join(""); -}; -var unicode_default = killUnicode; - -// node_modules/compromise/src/1-one/tokenize/compute/normal/01-cleanup.js -var clean = function(str) { - str = str || ""; - str = str.toLowerCase(); - str = str.trim(); - let original = str; - str = str.replace(/[,;.!?]+$/, ""); - str = str.replace(/\u2026/g, "..."); - str = str.replace(/\u2013/g, "-"); - if (/^[:;]/.test(str) === false) { - str = str.replace(/\.{3,}$/g, ""); - str = str.replace(/[",.!:;?)]+$/g, ""); - str = str.replace(/^['"(]+/g, ""); - } - str = str.replace(/[\u200B-\u200D\uFEFF]/g, ""); - str = str.trim(); - if (str === "") { - str = original; - } - str = str.replace(/([0-9]),([0-9])/g, "$1$2"); - return str; -}; -var cleanup_default = clean; - -// node_modules/compromise/src/1-one/tokenize/compute/normal/02-acronyms.js -var periodAcronym = /([A-Z]\.)+[A-Z]?,?$/; -var oneLetterAcronym = /^[A-Z]\.,?$/; -var noPeriodAcronym = /[A-Z]{2,}('s|,)?$/; -var lowerCaseAcronym = /([a-z]\.)+[a-z]\.?$/; -var isAcronym = function(str) { - if (periodAcronym.test(str) === true) { - return true; - } - if (lowerCaseAcronym.test(str) === true) { - return true; - } - if (oneLetterAcronym.test(str) === true) { - return true; - } - if (noPeriodAcronym.test(str) === true) { - return true; - } - return false; -}; -var doAcronym = function(str) { - if (isAcronym(str)) { - str = str.replace(/\./g, ""); - } - return str; -}; -var acronyms_default = doAcronym; - -// node_modules/compromise/src/1-one/tokenize/compute/normal/index.js -var normalize = function(term, world2) { - const killUnicode2 = world2.methods.one.killUnicode; - let str = term.text || ""; - str = cleanup_default(str); - str = killUnicode2(str, world2); - str = acronyms_default(str); - term.normal = str; -}; -var normal_default = normalize; - -// node_modules/compromise/src/1-one/tokenize/methods/parse.js -var parse2 = function(input, world2) { - const { methods: methods16, model: model5 } = world2; - const { splitSentences: splitSentences2, splitTerms, splitWhitespace } = methods16.one.tokenize; - input = input || ""; - let sentences = splitSentences2(input, world2); - input = sentences.map((txt) => { - let terms = splitTerms(txt, model5); - terms = terms.map((t2) => splitWhitespace(t2, model5)); - terms.forEach((t2) => { - normal_default(t2, world2); - }); - return terms; - }); - return input; -}; -var parse_default2 = parse2; - -// node_modules/compromise/src/1-one/tokenize/methods/01-sentences/is-sentence.js -var isAcronym2 = /[ .][A-Z]\.? *$/i; -var hasEllipse = /(?:\u2026|\.{2,}) *$/; -var hasLetter2 = /\p{L}/u; -var leadInit = /^[A-Z]\. $/; -var isSentence = function(str, abbrevs) { - if (hasLetter2.test(str) === false) { - return false; - } - if (isAcronym2.test(str) === true) { - return false; - } - if (str.length === 3 && leadInit.test(str)) { - return false; - } - if (hasEllipse.test(str) === true) { - return false; - } - let txt = str.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/, ""); - let words = txt.split(" "); - let lastWord = words[words.length - 1].toLowerCase(); - if (abbrevs.hasOwnProperty(lastWord) === true) { - return false; - } - return true; -}; -var is_sentence_default = isSentence; - -// node_modules/compromise/src/1-one/tokenize/methods/index.js -var methods_default8 = { - one: { - killUnicode: unicode_default, - tokenize: { - splitSentences: sentences_default, - isSentence: is_sentence_default, - splitTerms: terms_default, - splitWhitespace: whitespace_default2, - fromString: parse_default2 - } - } -}; - -// node_modules/compromise/src/1-one/tokenize/model/aliases.js -var aliases = { - "&": "and", - "@": "at", - "%": "percent", - "plz": "please", - "bein": "being" -}; -var aliases_default = aliases; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/misc.js -var misc_default = [ - "approx", - "apt", - "bc", - "cyn", - "eg", - "esp", - "est", - "etc", - "ex", - "exp", - "prob", - "pron", - "gal", - "min", - "pseud", - "fig", - "jd", - "lat", - "lng", - "vol", - "fm", - "def", - "misc", - "plz", - "ea", - "ps", - "sec", - "pt", - "pref", - "pl", - "pp", - "qt", - "fr", - "sq", - "nee", - "ss", - "tel", - "temp", - "vet", - "ver", - "fem", - "masc", - "eng", - "adj", - "vb", - "rb", - "inf", - "situ", - "vivo", - "vitro", - "wr" -]; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/honorifics.js -var honorifics_default = [ - "adj", - "adm", - "adv", - "asst", - "atty", - "bldg", - "brig", - "capt", - "cmdr", - "comdr", - "cpl", - "det", - "dr", - "esq", - "gen", - "gov", - "hon", - "jr", - "llb", - "lt", - "maj", - "messrs", - "mlle", - "mme", - "mr", - "mrs", - "ms", - "mstr", - "phd", - "prof", - "pvt", - "rep", - "reps", - "res", - "rev", - "sen", - "sens", - "sfc", - "sgt", - "sir", - "sr", - "supt", - "surg" -]; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/months.js -var months_default = ["jan", "feb", "mar", "apr", "jun", "jul", "aug", "sep", "sept", "oct", "nov", "dec"]; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/nouns.js -var nouns_default = [ - "ad", - "al", - "arc", - "ba", - "bl", - "ca", - "cca", - "col", - "corp", - "ft", - "fy", - "ie", - "lit", - "ma", - "md", - "pd", - "tce" -]; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/organizations.js -var organizations_default = ["dept", "univ", "assn", "bros", "inc", "ltd", "co"]; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/places.js -var places_default = [ - "rd", - "st", - "dist", - "mt", - "ave", - "blvd", - "cl", - "cres", - "hwy", - "ariz", - "cal", - "calif", - "colo", - "conn", - "fla", - "fl", - "ga", - "ida", - "ia", - "kan", - "kans", - "minn", - "neb", - "nebr", - "okla", - "penna", - "penn", - "pa", - "dak", - "tenn", - "tex", - "ut", - "vt", - "va", - "wis", - "wisc", - "wy", - "wyo", - "usafa", - "alta", - "ont", - "que", - "sask" -]; - -// node_modules/compromise/src/1-one/tokenize/model/abbreviations/units.js -var units_default = [ - "dl", - "ml", - "gal", - "qt", - "pt", - "tbl", - "tsp", - "tbsp", - "km", - "dm", - "cm", - "mm", - "mi", - "td", - "hr", - "hrs", - "kg", - "hg", - "dg", - "cg", - "mg", - "\xB5g", - "lb", - "oz", - "sq ft", - "hz", - "mps", - "mph", - "kmph", - "kb", - "mb", - "tb", - "lx", - "lm", - "fl oz", - "yb" -]; - -// node_modules/compromise/src/1-one/tokenize/model/lexicon.js -var list = [ - [misc_default], - [units_default, "Unit"], - [nouns_default, "Noun"], - [honorifics_default, "Honorific"], - [months_default, "Month"], - [organizations_default, "Organization"], - [places_default, "Place"] -]; -var abbreviations = {}; -var lexicon2 = {}; -list.forEach((a2) => { - a2[0].forEach((w) => { - abbreviations[w] = true; - lexicon2[w] = "Abbreviation"; - if (a2[1] !== void 0) { - lexicon2[w] = [lexicon2[w], a2[1]]; - } - }); -}); - -// node_modules/compromise/src/1-one/tokenize/model/prefixes.js -var prefixes_default = [ - "anti", - "bi", - "co", - "contra", - "de", - "extra", - "infra", - "inter", - "intra", - "macro", - "micro", - "mis", - "mono", - "multi", - "peri", - "pre", - "pro", - "proto", - "pseudo", - "re", - "sub", - "supra", - "trans", - "tri", - "un", - "out", - "ex" -].reduce((h2, str) => { - h2[str] = true; - return h2; -}, {}); - -// node_modules/compromise/src/1-one/tokenize/model/suffixes.js -var suffixes_default = { - "like": true, - "ish": true, - "less": true, - "able": true, - "elect": true, - "type": true, - "designate": true -}; - -// node_modules/compromise/src/1-one/tokenize/model/unicode.js -var compact = { - "!": "\xA1", - "?": "\xBF\u0241", - '"': '\u201C\u201D"\u275D\u275E', - "'": "\u2018\u201B\u275B\u275C\u2019", - "-": "\u2014\u2013", - a: "\xAA\xC0\xC1\xC2\xC3\xC4\xC5\xE0\xE1\xE2\xE3\xE4\xE5\u0100\u0101\u0102\u0103\u0104\u0105\u01CD\u01CE\u01DE\u01DF\u01E0\u01E1\u01FA\u01FB\u0200\u0201\u0202\u0203\u0226\u0227\u023A\u0386\u0391\u0394\u039B\u03AC\u03B1\u03BB\u0410\u0430\u0466\u0467\u04D0\u04D1\u04D2\u04D3\u019B\xE6", - b: "\xDF\xFE\u0180\u0181\u0182\u0183\u0184\u0185\u0243\u0392\u03B2\u03D0\u03E6\u0411\u0412\u042A\u042C\u0432\u044A\u044C\u0462\u0463\u048C\u048D", - c: "\xA2\xA9\xC7\xE7\u0106\u0107\u0108\u0109\u010A\u010B\u010C\u010D\u0186\u0187\u0188\u023B\u023C\u037B\u037C\u03F2\u03F9\u03FD\u03FE\u0421\u0441\u0454\u0480\u0481\u04AA\u04AB", - d: "\xD0\u010E\u010F\u0110\u0111\u0189\u018A\u0221\u018B\u018C", - e: "\xC8\xC9\xCA\xCB\xE8\xE9\xEA\xEB\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011A\u011B\u0190\u0204\u0205\u0206\u0207\u0228\u0229\u0246\u0247\u0388\u0395\u039E\u03A3\u03AD\u03B5\u03BE\u03F5\u0400\u0401\u0415\u0435\u0450\u0451\u04BC\u04BD\u04BE\u04BF\u04D6\u04D7", - f: "\u0191\u0192\u03DC\u03DD\u04FA\u04FB\u0492\u0493\u017F", - g: "\u011C\u011D\u011E\u011F\u0120\u0121\u0122\u0123\u0193\u01E4\u01E5\u01E6\u01E7\u01F4\u01F5", - h: "\u0124\u0125\u0126\u0127\u0195\u01F6\u021E\u021F\u0389\u0397\u0402\u040A\u040B\u041D\u043D\u0452\u045B\u04A2\u04A3\u04A4\u04A5\u04BA\u04BB\u04C9\u04CA", - I: "\xCC\xCD\xCE\xCF", - i: "\xEC\xED\xEE\xEF\u0128\u0129\u012A\u012B\u012C\u012D\u012E\u012F\u0130\u0131\u0196\u0197\u0208\u0209\u020A\u020B\u038A\u0390\u03AA\u03AF\u03B9\u03CA\u0406\u0407\u0456\u0457", - j: "\u0134\u0135\u01F0\u0237\u0248\u0249\u03F3\u0408\u0458", - k: "\u0136\u0137\u0138\u0198\u0199\u01E8\u01E9\u039A\u03BA\u040C\u0416\u041A\u0436\u043A\u045C\u049A\u049B\u049C\u049D\u049E\u049F\u04A0\u04A1", - l: "\u0139\u013A\u013B\u013C\u013D\u013E\u013F\u0140\u0141\u0142\u019A\u01AA\u01C0\u01CF\u01D0\u0234\u023D\u0399\u04C0\u04CF", - m: "\u039C\u03FA\u03FB\u041C\u043C\u04CD\u04CE", - n: "\xD1\xF1\u0143\u0144\u0145\u0146\u0147\u0148\u0149\u014A\u014B\u019D\u019E\u01F8\u01F9\u0220\u0235\u039D\u03A0\u03AE\u03B7\u03DE\u040D\u0418\u0419\u041B\u041F\u0438\u0439\u043B\u043F\u045D\u048A\u048B\u04C5\u04C6\u04E2\u04E3\u04E4\u04E5\u03C0", - o: "\xD2\xD3\xD4\xD5\xD6\xD8\xF0\xF2\xF3\xF4\xF5\xF6\xF8\u014C\u014D\u014E\u014F\u0150\u0151\u019F\u01A0\u01A1\u01D1\u01D2\u01EA\u01EB\u01EC\u01ED\u01FE\u01FF\u020C\u020D\u020E\u020F\u022A\u022B\u022C\u022D\u022E\u022F\u0230\u0231\u038C\u0398\u039F\u03B8\u03BF\u03C3\u03CC\u03D5\u03D8\u03D9\u03EC\u03F4\u041E\u0424\u043E\u0472\u0473\u04E6\u04E7\u04E8\u04E9\u04EA\u04EB", - p: "\u01A4\u03A1\u03C1\u03F7\u03F8\u03FC\u0420\u0440\u048E\u048F\xDE", - q: "\u024A\u024B", - r: "\u0154\u0155\u0156\u0157\u0158\u0159\u01A6\u0210\u0211\u0212\u0213\u024C\u024D\u0403\u0413\u042F\u0433\u044F\u0453\u0490\u0491", - s: "\u015A\u015B\u015C\u015D\u015E\u015F\u0160\u0161\u01A7\u01A8\u0218\u0219\u023F\u0405\u0455", - t: "\u0162\u0163\u0164\u0165\u0166\u0167\u01AB\u01AC\u01AD\u01AE\u021A\u021B\u0236\u023E\u0393\u03A4\u03C4\u03EE\u0422\u0442", - u: "\xD9\xDA\xDB\xDC\xF9\xFA\xFB\xFC\u0168\u0169\u016A\u016B\u016C\u016D\u016E\u016F\u0170\u0171\u0172\u0173\u01AF\u01B0\u01B1\u01B2\u01D3\u01D4\u01D5\u01D6\u01D7\u01D8\u01D9\u01DA\u01DB\u01DC\u0214\u0215\u0216\u0217\u0244\u03B0\u03C5\u03CB\u03CD", - v: "\u03BD\u0474\u0475\u0476\u0477", - w: "\u0174\u0175\u019C\u03C9\u03CE\u03D6\u03E2\u03E3\u0428\u0429\u0448\u0449\u0461\u047F", - x: "\xD7\u03A7\u03C7\u03D7\u03F0\u0425\u0445\u04B2\u04B3\u04FC\u04FD\u04FE\u04FF", - y: "\xDD\xFD\xFF\u0176\u0177\u0178\u01B3\u01B4\u0232\u0233\u024E\u024F\u038E\u03A5\u03AB\u03B3\u03C8\u03D2\u03D3\u03D4\u040E\u0423\u0443\u0447\u045E\u0470\u0471\u04AE\u04AF\u04B0\u04B1\u04EE\u04EF\u04F0\u04F1\u04F2\u04F3", - z: "\u0179\u017A\u017B\u017C\u017D\u017E\u01B5\u01B6\u0224\u0225\u0240\u0396" -}; -var unicode = {}; -Object.keys(compact).forEach(function(k2) { - compact[k2].split("").forEach(function(s3) { - unicode[s3] = k2; - }); -}); -var unicode_default2 = unicode; - -// node_modules/compromise/src/1-one/tokenize/model/punctuation.js -var prePunctuation = { - "#": true, - "@": true, - "_": true, - "\xB0": true, - "\u200B": true, - "\u200C": true, - "\u200D": true, - "\uFEFF": true -}; -var postPunctuation = { - "%": true, - "_": true, - "\xB0": true, - "\u200B": true, - "\u200C": true, - "\u200D": true, - "\uFEFF": true -}; -var emoticons = { - "<3": true, - " { - word = word.trim(); - if (word !== "") { - term.alias = term.alias || []; - term.alias.push(word); - } - }); - } - } - return term; -}; -var alias_default = addAliases; - -// node_modules/compromise/src/1-one/tokenize/compute/machine.js -var hasDash3 = /^\p{Letter}+-\p{Letter}+$/u; -var doMachine = function(term) { - let str = term.implicit || term.normal || term.text; - str = str.replace(/['’]s$/, ""); - str = str.replace(/s['’]$/, "s"); - str = str.replace(/([aeiou][ktrp])in'$/, "$1ing"); - if (hasDash3.test(str)) { - str = str.replace(/-/g, ""); - } - str = str.replace(/^[#@]/, ""); - if (str !== term.normal) { - term.machine = str; - } -}; -var machine_default = doMachine; - -// node_modules/compromise/src/1-one/tokenize/compute/freq.js -var freq = function(view) { - let docs = view.docs; - let counts = {}; - for (let i3 = 0; i3 < docs.length; i3 += 1) { - for (let t2 = 0; t2 < docs[i3].length; t2 += 1) { - let term = docs[i3][t2]; - let word = term.machine || term.normal; - counts[word] = counts[word] || 0; - counts[word] += 1; - } - } - for (let i3 = 0; i3 < docs.length; i3 += 1) { - for (let t2 = 0; t2 < docs[i3].length; t2 += 1) { - let term = docs[i3][t2]; - let word = term.machine || term.normal; - term.freq = counts[word]; - } - } -}; -var freq_default = freq; - -// node_modules/compromise/src/1-one/tokenize/compute/offset.js -var offset = function(view) { - let elapsed = 0; - let index3 = 0; - let docs = view.document; - for (let i3 = 0; i3 < docs.length; i3 += 1) { - for (let t2 = 0; t2 < docs[i3].length; t2 += 1) { - let term = docs[i3][t2]; - term.offset = { - index: index3, - start: elapsed + term.pre.length, - length: term.text.length - }; - elapsed += term.pre.length + term.text.length + term.post.length; - index3 += 1; - } - } -}; -var offset_default = offset; - -// node_modules/compromise/src/1-one/tokenize/compute/reindex.js -var index2 = function(view) { - let document2 = view.document; - for (let n3 = 0; n3 < document2.length; n3 += 1) { - for (let i3 = 0; i3 < document2[n3].length; i3 += 1) { - document2[n3][i3].index = [n3, i3]; - } - } -}; -var reindex_default = index2; - -// node_modules/compromise/src/1-one/tokenize/compute/wordCount.js -var wordCount2 = function(view) { - let n3 = 0; - let docs = view.docs; - for (let i3 = 0; i3 < docs.length; i3 += 1) { - for (let t2 = 0; t2 < docs[i3].length; t2 += 1) { - if (docs[i3][t2].normal === "") { - continue; - } - n3 += 1; - docs[i3][t2].wordCount = n3; - } - } -}; -var wordCount_default = wordCount2; - -// node_modules/compromise/src/1-one/tokenize/compute/index.js -var termLoop = function(view, fn) { - let docs = view.docs; - for (let i3 = 0; i3 < docs.length; i3 += 1) { - for (let t2 = 0; t2 < docs[i3].length; t2 += 1) { - fn(docs[i3][t2], view.world); - } - } -}; -var methods15 = { - alias: (view) => termLoop(view, alias_default), - machine: (view) => termLoop(view, machine_default), - normal: (view) => termLoop(view, normal_default), - freq: freq_default, - offset: offset_default, - index: reindex_default, - wordCount: wordCount_default -}; -var compute_default6 = methods15; - -// node_modules/compromise/src/1-one/tokenize/plugin.js -var plugin_default11 = { - compute: compute_default6, - methods: methods_default8, - model: model_default2, - hooks: ["alias", "machine", "index", "id"] -}; - -// node_modules/compromise/src/1-one/typeahead/compute.js -var typeahead = function(view) { - const prefixes2 = view.model.one.typeahead; - const docs = view.docs; - if (docs.length === 0 || Object.keys(prefixes2).length === 0) { - return; - } - let lastPhrase = docs[docs.length - 1] || []; - let lastTerm = lastPhrase[lastPhrase.length - 1]; - if (lastTerm.post) { - return; - } - if (prefixes2.hasOwnProperty(lastTerm.normal)) { - let found = prefixes2[lastTerm.normal]; - lastTerm.implicit = found; - lastTerm.machine = found; - lastTerm.typeahead = true; - if (view.compute.preTagger) { - view.last().unTag("*").compute(["lexicon", "preTagger"]); - } - } -}; -var compute_default7 = { typeahead }; - -// node_modules/compromise/src/1-one/typeahead/api.js -var autoFill = function() { - const docs = this.docs; - if (docs.length === 0) { - return this; - } - let lastPhrase = docs[docs.length - 1] || []; - let term = lastPhrase[lastPhrase.length - 1]; - if (term.typeahead === true && term.machine) { - term.text = term.machine; - term.normal = term.machine; - } - return this; -}; -var api2 = function(View2) { - View2.prototype.autoFill = autoFill; -}; -var api_default9 = api2; - -// node_modules/compromise/src/1-one/typeahead/lib/allPrefixes.js -var getPrefixes = function(arr, opts2, world2) { - let index3 = {}; - let collisions = []; - let existing = world2.prefixes || {}; - arr.forEach((str) => { - str = str.toLowerCase().trim(); - let max3 = str.length; - if (opts2.max && max3 > opts2.max) { - max3 = opts2.max; - } - for (let size = opts2.min; size < max3; size += 1) { - let prefix6 = str.substring(0, size); - if (opts2.safe && world2.model.one.lexicon.hasOwnProperty(prefix6)) { - continue; - } - if (existing.hasOwnProperty(prefix6) === true) { - collisions.push(prefix6); - continue; - } - if (index3.hasOwnProperty(prefix6) === true) { - collisions.push(prefix6); - continue; - } - index3[prefix6] = str; - } - }); - index3 = Object.assign({}, existing, index3); - collisions.forEach((str) => { - delete index3[str]; - }); - return index3; -}; -var allPrefixes_default = getPrefixes; - -// node_modules/compromise/src/1-one/typeahead/lib/index.js -var isObject7 = (val) => { - return Object.prototype.toString.call(val) === "[object Object]"; -}; -var defaults2 = { - safe: true, - min: 3 -}; -var prepare = function(words = [], opts2 = {}) { - let model5 = this.model(); - opts2 = Object.assign({}, defaults2, opts2); - if (isObject7(words)) { - Object.assign(model5.one.lexicon, words); - words = Object.keys(words); - } - let prefixes2 = allPrefixes_default(words, opts2, this.world()); - Object.keys(prefixes2).forEach((str) => { - if (model5.one.typeahead.hasOwnProperty(str)) { - delete model5.one.typeahead[str]; - return; - } - model5.one.typeahead[str] = prefixes2[str]; - }); - return this; -}; -var lib_default5 = { - typeahead: prepare -}; - -// node_modules/compromise/src/1-one/typeahead/plugin.js -var model3 = { - one: { - typeahead: {} - } -}; -var plugin_default12 = { - model: model3, - api: api_default9, - lib: lib_default5, - compute: compute_default7, - hooks: ["typeahead"] -}; - -// node_modules/compromise/src/one.js -nlp_default.extend(plugin_default2); -nlp_default.extend(plugin_default7); -nlp_default.extend(plugin_default6); -nlp_default.extend(plugin_default8); -nlp_default.extend(plugin_default10); -nlp_default.plugin(plugin_default3); -nlp_default.extend(plugin_default11); -nlp_default.plugin(plugin_default); -nlp_default.extend(plugin_default5); -nlp_default.extend(plugin_default12); -nlp_default.extend(plugin_default4); -nlp_default.extend(plugin_default9); -var one_default = nlp_default; - -// node_modules/compromise/src/2-two/preTagger/model/irregulars/plurals.js -var plurals_default = { - addendum: "addenda", - corpus: "corpora", - criterion: "criteria", - curriculum: "curricula", - genus: "genera", - memorandum: "memoranda", - opus: "opera", - ovum: "ova", - phenomenon: "phenomena", - referendum: "referenda", - alga: "algae", - alumna: "alumnae", - antenna: "antennae", - formula: "formulae", - larva: "larvae", - nebula: "nebulae", - vertebra: "vertebrae", - analysis: "analyses", - axis: "axes", - diagnosis: "diagnoses", - parenthesis: "parentheses", - prognosis: "prognoses", - synopsis: "synopses", - thesis: "theses", - neurosis: "neuroses", - appendix: "appendices", - index: "indices", - matrix: "matrices", - ox: "oxen", - sex: "sexes", - alumnus: "alumni", - bacillus: "bacilli", - cactus: "cacti", - fungus: "fungi", - hippopotamus: "hippopotami", - libretto: "libretti", - modulus: "moduli", - nucleus: "nuclei", - octopus: "octopi", - radius: "radii", - stimulus: "stimuli", - syllabus: "syllabi", - cookie: "cookies", - calorie: "calories", - auntie: "aunties", - movie: "movies", - pie: "pies", - rookie: "rookies", - tie: "ties", - zombie: "zombies", - leaf: "leaves", - loaf: "loaves", - thief: "thieves", - foot: "feet", - goose: "geese", - tooth: "teeth", - beau: "beaux", - chateau: "chateaux", - tableau: "tableaux", - bus: "buses", - gas: "gases", - circus: "circuses", - crisis: "crises", - virus: "viruses", - database: "databases", - excuse: "excuses", - abuse: "abuses", - avocado: "avocados", - barracks: "barracks", - child: "children", - clothes: "clothes", - echo: "echoes", - embargo: "embargoes", - epoch: "epochs", - deer: "deer", - halo: "halos", - man: "men", - woman: "women", - mosquito: "mosquitoes", - mouse: "mice", - person: "people", - quiz: "quizzes", - rodeo: "rodeos", - shoe: "shoes", - sombrero: "sombreros", - stomach: "stomachs", - tornado: "tornados", - tuxedo: "tuxedos" -}; - -// node_modules/compromise/src/2-two/preTagger/model/lexicon/_data.js -var data_default = { - "Comparative": "true\xA6better", - "Superlative": "true\xA6earlier", - "PresentTense": "true\xA6sounds", - "Condition": "true\xA6lest,unless", - "PastTense": "true\xA6be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan", - "Gerund": "true\xA6accord0be0go0result0stain0;ing", - "Expression": "true\xA6a0Sb0Oc0Md0Ie0Gg0AhVjeez,lSmRnPoKpHshGtFuCvoi0Uw6y0;a4e3i1u0;ck,p;kZp0;ee,pee;ah,p,s;!a,y;ahoo,h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;gh,h0;! 0h,m;huh,oh;here nNsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;! 0h;h0w0;ell;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww,xcuse me;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;mon,o0;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la", - "Negative": "true\xA6n0;ever,o0;n,t", - "QuestionWord": "true\xA6how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", - "Reflexive": "true\xA6h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", - "Plural": "true\xA6dick0gre0ones,records;ens", - "Unit|Noun": "true\xA6cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s", - "Value": "true\xA6a few", - "Imperative": "true\xA6come here", - "Demonym": "true\xA60:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", - "Organization": "true\xA60:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba", - "Possessive": "true\xA6its,my,none,our0;!s", - "Noun|Verb": "true\xA60:9C;1:8O;2:7T;3:97;4:9K;5:9N;6:9J;7:86;8:8L;9:9R;a92b86c70d6Be61f5Eg52h4Ti4Lj4Ik4Fl43m3Rn3No3Jp2Hques94r1Ss0EtYuWvRwDyCzA;ip,oA;ne,om;awn,e60ie5T;aKeIhFiDoBrA;ap,e92;nd0rA;k,ry,sh54th;ck,mp,nApe,re,sh,tne9N;!d,g;e7OiA;p,sA;k,t1;aAed;r,th0;it,lk,rBsAt3ve,x;h,te;!ehou2ra9;aDiCoA;iAlunte0m8te,w;ce,d;be,ew,s8;cuum,l40;pAr7sh0;da6gra5Zlo5V;aNeMhrLiKoIrDuBwiAy5K;n,st;nArn;e,n76;aCeBiAot,u8H;bu6ck47gg0m,p;at,k,nd;ck,de,in,nsAp,v72;f0i87;ll,ne,p,r4Mss,t8JuA;ch,r;ck,de,e,le,me,p,re;e5Iow,u89;ar,e,ll,mp0st,xt;g,lAng1rg77s6x;k,ly;a0Lc0Fe0Ch07i05k03l01m00nZou7JpSqua70tGuCwA;ea7PiA;ng,pe,t3;b2Eit,m,ppBrAspe5;ge,pri2v2M;lAo6A;e67y;aJeIiHoErBuAy1;dy,ff,mb1;a7MeBiAo5Cugg1;ke,ng;am,ss,t3;ckBop,p,rA;e,m;ing,pi1;ck,nk,t3;m,p;ck,ge,in,ke,ll,mp,nd,p1rAte,y;!e,t;aFeed,iElDoCrAur,y;ay,e4UinAu4;g,k1;ns7St;a6Kit;ll,n,r7Ote;n,rk;ap,ee1Qow;a6Ge47i1o4U;eep,iAou3;ce,p,t;ateboa74iA;!p;de,gnAp,ze;!al;aDeCiBoAuff1;ck,p,re,t,w;ft,p,v0;d,i3Q;ck,de,pe,re,ve;aBed,nArv1Ht;se,t2I;l,r3t;aEhedu1oDrA;aBeAo3R;en,w;pe,t3;re,ut;le,n,r0N;cAil;k,rifi4;aWeEiDoBuA;b,in,le,n,s5J;a6Pck,ll,oApe,u6;f,t;de,ng,p,s1Q;aQcPdo,el,fNgMje5lLmJnIo14pGque6MsCturn,vAwa6F;eAi21;al,r2;er6NoCpe5tBuA;lt,me;!a4R;l6Krt;air,eaAly,o4P;l,t;dezvo2Rt;aAedy;ke,rk;ea2i5C;a62ist0r59;act6Her1Po6KuA;nd,se;a2Zo5Zru8;ch,s60;c17ge,i2ke,l53nApXtX;ge,k;a03eZhXiUlQoKrBsy3uA;mp,n3rcha2sh;aHeFiEoAu4C;be,ceCdu4fi1grAje5mi2p,te5Z;amAe6J;!me;ed,ss;ce,de,nt;sAy;er5Xs;cti4i2;iElCoBp,re,sAw0;e,i5Kt;l,p;iAl;ce,sh;nt,s5H;aBce,e2UuA;g,mp,n7;ce,nAy;!t;ck,lBnApe,t,vot;!e;e,ot;a2oA;ne,tograph;ak,eCnBrAt;fu4Qm8;!c2S;!l,r;ckGiFnErCsBtAu2;ch,e9;s,te;e9tA;!y;!ic;nt,r;!a7;bCff0il,oBrAutli3C;b8d0ie9;ze;je5;a4BeCoA;d,tA;e,i4;ed,gle5rd,t;aHeFiEoBuA;rd0;ck,d3Eld,nAp,uth,ve;it4YkA;ey;lk,n3Yrr4Wss,x;asu3Hn4GrAss;ge,it;il,nCp,rk3KsBtA;ch,t0;h,k;da6n0oeuv3C;aIeGiEoBuA;mp,st;aBbby,ck,g,oAve;k,t;d,n;cAft,m8nEst;en2k;aAc0Je3vG;ch,d,k,p,se;bBcAnd,p,t3un3;e,k;el,o2J;eBiAno41;ck,ll,ss;el,y;aBo1HuA;d7i4mp;m,zz;mpGnBr3TssA;ue;cr1Jdex,fluDha1k,se26teAvoi4;nt,rA;e3Ufa4viA;ew;en4;a5le1Z;aFeDiCoBuA;g,nt;l2Zno22ok,p,r2st,u2;ghlight,ke,re,t;aAd7lp;d,t;ck,m,ndBrAsh,te;bo3Lm,ne44ve3J;!le;aKeek,loJoHrCuA;arAe41i0Tn;antee,d;aCiBoAumb1;om,u2R;nd,p;dAsp;e,ua6;of,ssA;ip;ss,w;in,me,ng,s,te,ze;aVeSiNlKoGrCuA;ck,el,nAss,zz;c2Xd;aBoAy;st,wn;cAgme,me;tu1U;cCg,il,ld,ol,rA;ce,e20mA;!at;us;aBe1Wip,oAy;at,ck,od,w;g,ke,me,re,sh,vo16;eDgClBnAre,sh,t,x;an4i1S;e,m,t0;ht,u1J;ld;aBeAn4;d,l;r,tu1F;ce,il,ll,rm,vo2L;cho,d7ffe5nIsGxCyeA;!baA;ll;cCerci2hib8pAtra5;eriAo0O;en4me9;el,han7u2;caAtima6;pe;count0d,gine0vy;aWePiJoGrBuAye;b,el,mp,pli2O;aDeCiBoA;ne,p;ft,nk,p,ve;am,ss;ft,g,in;cBd7ubt,wnloA;ad;k,u07;p,sCt3vA;e,iAor4;de;char7h,liBpA;at3lay,u6;ke;al,ba6cEfeDlCma16pos8siBtaA;il;gn,re;ay,ega6;at,ct;liZrA;ea2;b,ma7n4rAte;e,t;a0Aent09h02irc1lZoGrCuA;be,e,rAt;e,l,ve;aCeBoAu0Iy;p,ss,wd;d8ep;ck,ft,sh;aRde,in,lPmInCok,py,re,st,uAv0;gh,nAp1;sYt;ceDdu5fli5glomeEsCtAveJ;a5rA;a17ol;e9tru5;ntArn;ra6;bEfoDmCpA;leAou0Gromi2;me9;a0Ee9it,u6;rt;at,iA;ne;lap2oA;r,ur;ch,t;aBiA;ck,p;im,w;aBeAip;at,ck,er;iDllen7mpi0JnBrAuffe0Q;ge,m,t;ge,nA;el;n,r;er,re;ke,ll,mp,noe,pCrTsBt3u2ve;se;h,t;!tuA;re;aZeViTlQoMrEuAypa0Y;bb1ck1dgCff0lBmp,rAst,zz;den,n;ly;et;anGeEiCoadBuA;sh;ca06;be,d7;ge;aAed;ch,k;ch,d;aCg,mb,nBoAss,tt1x,ycott;k,st,t;d,e;rd,st;aBeAitz,oTur;nd;me;as,d,ke,nd,opsy,tA;ch,e;aCef,lt,nAt;d,ef8;it;r,t;ck,il,lan4nErgCsBtt1;le;e,h;aAe;in;!d,g,k;c04dWffilVge,iUlRnPppMrIsFttDucBwaA;rd;tiA;on;aAempt;ck;k,sA;iAocO;st;chBmoA;ur;!iA;ve;eBroa3;ch;al;chAg0sw0;or;aBt0;er;rm;d,m,r;ia6;dEvA;an4oA;ca6;te;ce;i5reA;ss;ct;cAe,he,t;eCoA;rd,u9;nt;nt,ss", - "Actor": "true\xA60:1O;a1Lb1Dc0Zd0Rex0Qf0Kg0Dh0Ci08journ07l04mXnurse,oVpMquKrEs4t3underwrHv2w1;ork0rG;eterinari12iceH;aoiseach,echn0Rherapi1MranscriF;ail1Scienti1Le8i7ki0ol1Ep5t3u1;lt0Zperv1Mr1;f0ge4;aff0ep1rang0;fa08mo08;eciYokespers1;on;ng0st0;cretary,rgeant1;! maj1J;abbi,e1oof0unning 7;ar4c1port0sear0Zverend;e2ru1;it0;ptioni17; admir1A;arter1een;back;ast1Ah8l6oli5r1sychologi13;actition0eside1Bi2o1;duc0fess18gramm0spe05;me minCnce1;!ss;c06t03;a1umb0;nn0y0;otograph0ys00;ffic0p1rganiz0;er0Ztometri0T;a6e5i2o1usX;m,th0;n2s1;sus,t0;ist0;chanic,rcha0W;gistrate,k0nag0y0T;a2e05ieutenant1ord;! gener0O;bor0dy,wy0;ali0I;llu0Mn1;s1vestig0M;peJt1;all0ruI;airdress0ousek7;arden0o4rand1;fa2m1pa;a,o1;th0;al1lf0;ie,k1teO;eep0;a5i1;eld marsh08g3nanci0r1tt0;e1st lady;fig1mH;ht0;rm0th0;amin0cellency;a7e4i1o2riv0utcheT;et2re1;ct03;iciA;al0fenc2put1sign0tective,velop0;ee,y;em7;d,nc0;aCeo,fo,h9le8o1;lonel,m5n2ordinVrporTu1wboy;nci9ri0;gress1stable;m1wom1;an;ma1pos0;nd0;an0rk;ance2eerle1;ad0;llM;ptain,r1shi0;etak0pent0;aron6r2ut1;ch0;i2o1;k0th0;cklay0ga1;di0;!e1;ss;ccounCd5geDn2r1ssisCttendaDyatullah;chitect,ti3;aly2im8nounc0;er;st;mi2v1;is5;ni2r1;al;str1;at1;or;ta1;nt", - "Person|Noun": "true\xA6a07b01cYdRePfOgMhJjFkiElDmBolive,p7r4s3trini00v1wa0;ng,rd;an,enus,iol0;a,et;ky,on5umm02;ay,e1o0uby;bin,d,se;ed,x;a2e0ol;aHn0;ny;ge,tM;a0eloR;x,ya;a9eo,iE;ng,tL;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", - "Person|Verb": "true\xA6b8ch7dr6foster,gra5hope,ja9lan4ma2ni9ollie,p1rob,s0tra4wade;pike,t5ue;at,eg,ier2;ck,r0;k,shal;ce;ce,nt;ew;ase,u1;iff,l1ob,u0;ck;aze,ossom", - "Adj|Noun": "true\xA60:13;1:1A;a13b0Xc0Mde0Le0Gf0Ag09h08i06ju05l03mXnVoTpOrKsDt9u6v3w2;atershed,elcome;a2ision0P;gabo5nilla,ria2;b0Mnt;ndergr2pstairs;adua0Tou2;nd;a4e2oken,ri0;en,r2;min0rori0S;boo,n;e6ilv08o4quat,ta3u2well;bordina0Mper6;b0Cndard;ciali0Nl2vereign;e,ve1;cret,n2ri0;ior;a4e2outiSubbiL;ar,bCla0Mnt0p2side1;resenta0Lublican;ci0Gsh;a5eriodic0otenti0r2;emi3incip0o2;!fession0;er,um;rall5st,tie1;ff2pposi07v0;ensi0Ei03;aggTov2;el;aUe5in4o2;biTderYr2;al,t0;iature,or;di2tr0C;an,um;attIiber0u2;sh;stice,veniM;de0mpressioQn2;cumbe1dividu0no04sta1;alf,omelBumdrum;enious,old,raZ;a5e3i2luid;ne;llow,m2;aEiJ;ir,t,vo2;riLuriL;l4pXx2;c2ecuQpeS;ess;d2iH;er;mographSrivaM;hiFlassRo3rude,unn2;ing;m5n2operaJ;creBstitue1tempor3vertab2;le;ary;m3p2;anion,lex;er3u2;ni8;ci0;e6lank,o5r2;i3u2;te;ef;ttom,urgeois;st;cademAd7l3nim0rab;al;e4terna2;ti2;ve;rt;oles2ult;ce1;nt;ic", - "Pronoun": "true\xA6'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", - "Singular": "true\xA60:5B;1:59;2:4H;3:4N;4:4U;5:5D;6:4Z;a4Pb46c38d2Se2Mf2Eg26h1Uin1Rj1Qk1Pl1Jm1Bn18o14p0Jqu0Ir08sTtIuFvAw7x 4Y;a7ha3Aom2A;f2i4Tt09y7;! arou4D;arAe8o7;cabula3Cl52;gKr7;di4Qt1L;iety,n4A;nc32p2Or8s 7;do3Qs54;bani1in0; rex,aGeFhing3XiDoCr9u8v7;! show;m2Dn3rntHto13;age2Sib7o42;e,u7;n0ta30;p3rq3A;c,er,m7;etB;am,mp36;ct3le5x return;aKcIeHhor4KiGkEoDpin off,tBu9weethe1Hy7;ll7n22st4N;ab2M;b7nri1Aper bowl,rroga1;st3Ctot0;at32ipe3Oo1Brate4Cudent7;! lo1I;ft ser4Gloi41meo19;elet6i7;ll,rm3M;s3Ute;ab0Ycurity gu2Emin33;e5ho7;l31ol;la2Gndwi0Kpi6;av6eBhetor3i8o7;de5om,w;t8v7;erb0R;e,u0;bAc9f7publ3r0Rspi1;er7orm2;e5r0;it0ord label;a1u42;estion mark,ot28;aOeLhKiHlFoDr8u7yram1A;ddi3ApDrpo0Ms3D;eAie3Go7;bl3Vs7;pe3Gt7;a1itu1;diction,mi0Hroga3Qss relea0H;p7rt0;py;a7ebisci1;q25te;cn3e8g7;!gy;!r;armaci34otocoG;anut,d8r7t0;cen3Esp3F;al,est0;n8r2Nt7;e,hog6;el2Mop4;bj3Ac8pia1rde0thers,ve7wn2;n,rview;cu7e0B;pi2;a8it21ot7umb2;a1Ehi2L;n26rra35;aBeAi9o8u7\xE90C;m0Lr0;m0Knopo4pPrni2Hsq1Lti33;li0Tn07tt6;d3nu,t0;mm0n8te7yf4;ri0;!d0Y;aAegBi9os2u7;ddi1n7;ch;ght bulb,p07ving room;bor0Zurea1y7; up;eyno1itt6;el4ourn0;c8dices,itia2Oni23se2Ctel0Hvert7;eb1H;en2Mi2V;aHeaDighBo7uman right,ygie0V;me8sp1Ftb7;ed;! r7;un; scho0Xri7;se;d7v6; st8pho7;ne;art;ndful,sh brown,v6ze;aCeAirl1Flaci2od,r8u7;l4y;an7enadi2id;a0Ed slam;lat0Antlem7;an;df4r7;l3n1B;aDeCiref4lBol4r8un7;er0;ee market,i8on7;ti2;e14ga1;ow2u1;lla,t14;br3mi4n0V;conoBffi1Ogg,lecto0Nmbas1BnApidem3s1Yth3ven9x8yel7;id;ampTempl0Jte5;i15t;er1K;my;aKeHiDoAr8u7;de,mp truck;agonf4i7;er,ve thru;c8g1Ei4or,ssi2wn7;si0L;to0Bumen9;a9gni8nn2s7vide0N;conte5incen1Ftri13;taM;le11;ath,c8f7ni0terre5;ault 05err0;al,im0;d7rX;dy;aWeThMiLlJoBr7;edit c9it3uc7;ib7;le;ard;efficDke,lBmmuniqLns8pi2rr0t10us7yo1;in;erv7uI;ato7;ry;ic,lPum7;ni0I;ie5;er7ie5;gy,ic;ty,vil wK;aBeqAick6oco9r7;istmas car7ysanthemum;ol;la1;ue;ndeli2racter7;ist3;i8llCr7;e0tifica1;liX;hi2naDpCrAt7ucus;erpi7hedr0;ll7;ar;!bohyd7ri2;ra1;it0;l,ry;aLeKicycJlemIoErBu7;ddhiUn9r7tterf4;glar7i0;!y;ny;eak8i7o;de;faOthroA;dy,ro9wl,y7;!frie7;nd;ugh;ish;liI;an,l4;nki9r7;!ri2;er;ng;cTdNlJnGppeti1rFsDt9u7;nt,top7;sy;h8t3;ic;ie7le1;st;ce5pe7;ct;ray;ec8oma4ti8;ly;do1;i6l7;er7y;gy;en; hominBj8van7;tage;ec7;ti7;ve;em;cAe8qui7;tt0;ta1;te;i8ru0;al;de5;nt", - "Preposition": "true\xA6-,aPbMcLdKexcept,fIinGmid,notwithstandiWoDpXqua,sCt7u4v2w0;/o,hereSith0;! whHin,oW;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h1ill,oward0;!s;an,r0;ough0u;!oM;ans,ince,o that,uch G;f1n0ut;!to;!f;! 0to;effect,part;or,r0;om;espite,own,u3;hez,irca;ar1e0oBy;sides,tween;ri7;bo8cross,ft7lo6m4propos,round,s1t0;!op;! 0;a whole,long 0;as;id0ong0;!st;ng;er;ut", - "SportsTeam": "true\xA60:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", - "Uncountable": "true\xA60:28;1:2R;2:2F;3:35;4:2W;a2Qb2Hc26d1Xe1Nf1Hg19h12i0Xjewel15k0Vl0Qm0Gn0Eo0Dp04rZsMtBv9w5you guys;a7hisky,i6oo5;d,l;ldlife,ne;rmAt2;ernacul25i5;neg24ol1Ktae;eEhCime off,oBr6un5yranny;a,gst15;aff2Jea1Go6ue nor5;th;o07u5;ble5se1Ot;!shoot1;night,othpas1P;er5und2;e,mod2O;a,nnis;aFcEeDhBilk,kiAo9p8t6u5weepstak0;g1Rnshi2Dshi;ati08e5;am,el;ace2Geci0;ap,cc2meth1;n,ttl0;eep,ingl0o5;pp1r18;lf,na1Cri0;ene0Disso18;d0Sfe4l5nd,t0F;m1St;a8e6ic5;e,ke12;c5ins,laxa0Zsearch;ogni0Yrea0Y;bi0in;aBeAhys9last1So7re5;amble,mis0s5ten1W;en1Vsu0H;l5rk;i24yH; 14i3;a20tr0A;nt5ti0J;i0s;bstetri3vercrowd1xyg04;a5ews;il polXtional securi4;aCeAo7u5;m5s1F;ps;n5o1I;ey,o5;gamy;a5cha0Drchandi1Ftallurgy;sl0t;chine5thema1O; learn1ry;aught2e8i7ogi6u5;ck,g11;c,s1K;ce,ghtn1nguis1JteraTv2;ath2isuTss;ara0CindergartMn5;icke08owled0X;ce,gnor8mp7n5;forma02ter5;net,sta08;atiUort5rov;an19;a8eListo7o5ung2;ckey,mework,ne5rserad9spitali4use arrest;s4y;ry;ir,lib03ppiJs5;h5te;ish;ene9l7o6r5um,ymnas13;aGe03;lf,re;ut5yce0J;en; 5ti3;edit1po5;ol;aQicJlour,o7urni5;tu5;re;od,rgive5uri2wl;ne5;ss;cono0MducaDlectrBn9quipAthi3very8x5;ist6per5;ti0C;en0K;body,o09th1;joy5tertain5;ment;ici4o5;ni3;tiU;eBi8o6raugh5ynas4;ts;pe,wnstai5;rs;abet0s5;hon01repu5;te;b5miX;ut;aEelciDhBivi3l9o5urrency;al,ld w7n5ral,ttJuscoC;fusiIt 5;ed;ar;assi3oth0;es;aos,e5;eNw1;us;d,rP;aAi8lood,read7u5;nt1tt2;er;!th;lliarKs5;on;g5ss;ga5;ge;cLdviKeroHirGmCn7ppeal court,rithmet6spi5thleM;rin;ic;i8y5;o6th1;ing;ne;se;en7n5;es4;ty;ds;craft;bi3d5nau9;yna5;mi3;ce;id,ous5;ti3;cs", - "Unit": "true\xA6a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3\xB01\xB50;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m\xB2,\xB2,\xB3;/h,cro2l0;e0liM;!\xB2;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,\xB2;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;\xB2,\xB3;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", - "Noun|Gerund": "true\xA60:26;1:25;2:1W;3:1I;4:1Y;5:1O;a25b1Oc1Cd17en15f0Zg0Xh0Ui0Sjog20k0Ql0Mm0Jn0Ho0Dp06ques09rXsHtCuAvolunt16w6yEzo2;a8ed5i3or7r6;ap1Oest1Ci1;ki0r1O;i1r2s1Utc1U;nder6pri23;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng", - "PhrasalVerb": "true\xA60:93;1:97;2:8I;3:8W;4:8B;5:84;6:86;7:99;8:91;9:8H;A:8Y;B:8S;C:8V;D:8T;E:71;F:98;G:8Z;H:82;I:7I;J:7A;K:4H;a9Hb7Wc6Td6Ne6Lf5Jg52h4Diron0j49k42l3Gm33n30o2Yp2Equiet Hr1Zs0Lt00uYvacuu6SwOyammerBzL;ero Dip MonL;e0k0;by,ov9up;aReNhMiLor0Nrit1B;mp0n3Hpe0r5s5;ackAeel Di0U;aMiLn35;gh 3Yrd0;n Dr L;do1in,oJ;it 7Bk5lk Mrm 6Bsh Lt85v61;aw3do1o7up;aw3in,oC;rgeBsL;e 2herE;a01eZhWiSoRrNuLypQ;ckErn L;do1in,oJup;aMiLot0y 32;ckl81p F;ck HdL;e 60;n7Yp 3Gs5L;ck NdMe Lghten 6me0p o0Tre0;aw3ba4do1in,up;e Iy 2;by,oG;ink Mrow L;aw3ba4in,up;ba4ov9up;aLe 79ll64;m 2r 5O;ckBke Mlk L;ov9shit,u49;aLba4do1in,leave,o67up;ba4ft9pa6Bw3;a0Xc0Ve0Oh0Ki0Hl0Bm0An09o08p03quar5ItRuPwL;earNiL;ngMtch L;aw3ba4o8M; by;cLi6Dm 2ss0;k 66;aTeSiRoPrMuL;cKd36;aigh2Eet76iL;ke 7Tng L;al6Zup;p Lrm2G;by,in,oG;nKr 2tc4O;p F;cKmp0nd MrLveAy 2P;e Ht 2M;ba4do1up;arKeOiNlMrLurB;ead0ingBuc5;a49it 6I;c5ll o3Dn 2;ak Fe73ll0;aKber 2rt0und like;ap 5Wow Duggl5;ash 6Ooke0;eep OiLow 6;cMp L;o6Eup;e 69;in,oL;ff,v9;de1Agn 4OnLt 6Hz5;gLkE; al6Ble0;aNoLu5X;ot Lut0w 7N;aw3ba4f48oC;cKdeEk6FveA;e Qll1Ond Prv5tL; Ltl5K;do1foMin,o7upL;!on;ot,r60;aw3ba4do1in,o4Wup;oCto;al67out0rL;ap66ew 6K;ilAv5;aYeViToPuL;b 5Zle0n Lstl5;aMba4do1inLo2Jth4Ou5Q;!to;c2Xr8w3;ll Not MuL;g3IndA;a2Wf3Po7;ar8in,o7up;ng 69p oLs5;ff,p19;aLelAinEnt0;c6Id L;o3Oup;cKt0;a00eZiXlUoRrPsyc35uL;ll Nn5Lt L;aLba4do1in,oJto48up;pa4Ew3;a3Kdo1in,o22to46up;attleBess LiOop 2;ah2Fon;iMp Lr50u1Hwer 6O;do1in,o6Oup;nt0;aMuL;gEmp 6;ce u21y 6E;ck Lg0le 4Bn 6p5C;oJup;el 5OncilE;c54ir 3An0ss NtMy L;ba4oG; Hc2R;aw3ba4in,oJ;pLw4Z;e4Yt D;aMerd0oL;dAt54;il Hrrow H;aUeRiQoMuL;ddl5ll I;cKnkeyNp 6uthAve L;aLdo1in,o4Mup;l4Ow3; wi4L;ss0x 2;asur5e3TlMss L;a21up;t 6;ke Mn 6rLs2Ax0;k 6ryA;do,fun,oCsure,up;a03eWiRoMuL;ck0st I;aOc4Gg NoLse0;k Lse4E;aft9ba4do1forw38in57o10u47;in,oJ;d 6;e OghtNnMsLve 01;ten F;e 2k 2; 2e47;ar8do1in;aNt MvelL; oC;do1go,in,o7up;nEve L;in,oL;pLut;en;c5p 2sh MtchBughAy L;do1o5A;in4Qo7;eNick Mnock L;do1oCup;oCup;eMy L;in,up;l Ip L;aw3ba4do1f05in,oJto,up;aNoMuL;ic5mpE;ke3Tt H;c44zz 2;a02eXiUoQuL;nMrrLsh 6;y 2;keMt L;ar8do1;r H;lLneErse3L;d Le 2;ba4dLfast,o25up;ear,o1;de Mt L;ba4on,up;aw3o7;aLlp0;d Nl Ir Lt 2;fLof;rom;f11in,o1WuX;cKm 2nMsh0ve Lz2Q;at,it,to;d Mg LkerQ;do1in,o2Uup;do1in,oL;ut,v9;k 2;aZeUive Sloss IoNrMunL; f0S;ab hold,in44ow 2V; Lof 2J;aNb1Nit,oMr8th1JuL;nd9;ff,n,v9;bo7ft9hQw3;aw3bLdo1in,oJrise,up,w3;a4ir2I;ar 6ek0t L;aLb1Gdo1in,o1Dr8up;cMhLl2Hr8t,w3;ead;ross;d aLng 2;bo7;a0Fe08iZlVoRrNuL;ck Le2P;ar8up;eMighten LownBy 2;aw3oG;eLshe29; 2z5;g 2lNol Lrk I;aLwi22;bo7r8;d 6low 2;aMeLip0;sh0;g 6ke0mLrLtten H;e F;gSlQnOrMsLzzle0;h F;e Lm 2;aw3ba4up;d0isL;h 2;e Ll 1V;aw3fQin,o7;ht ba4ure0;eQnMsL;s 2;cNd L;fLoG;or;e D;d06l 2;cPll Lrm0t1I;aNbMdo1in,oLsho0Gth0Avictim;ff,ut,v9;a4ehi2P;pa0D;e L;do1oGup;at Ldge0nd 13y5;in,o7up;aPi1IoOrL;aMess 6op L;aw3b04in,oC;gBwB; Iubl1C;m 2;a0Bh06l03oPrMut L;aw3ba4do1oCup;ackBeep MoLy0;ss Dwd0;by,do1in,o0Vup;me OoMuntL; o2B;k 6l L;do1oG;aSbRforPin,oOtLu0P;hMoLrue;geth9;rough;ff,n,ut,v9;th,wL;ard;a4y;paLr8w3;rt;eaMose L;in,oCup;n 6r F;aOeMiL;ll0pE;ck Der Lw F;on,up;t 2;lSncel0rPsNtch MveE; in;o1Oup;h Dt L;doubt,oG;ry MvL;e 09;aw3oJ;l Lm H;aMba4do1oJup;ff,n,ut;r8w3;a0We0NiteAl0Go05rRuL;bblOckl06il0Elk 6ndl06rMsLtNy FzzA;t 01;n 0IsL;t D;e I;ov9;anXeaViMush L;oGup;ghRng L;aOba4do1forNin,oMuL;nd9p;n,ut;th;bo7lLr8w3;ong;teL;n 2;k L;do1in,o7up;ch0;arUg 6iSn5oQrOssNttlMunce Lx D;aw3ba4;e 6; ar8;e H;do1;k Dt 2;e 2;l 6;do1up;d 2;aQeed0oLurt0;cNw L;aw3ba4do1o7up;ck;k L;in,oC;ck0nk0stA; oRaOef 2lt0nd L;do1ov9up;er;up;r Mt L;do1in,oCup;do1o7;ff,nL;to;ck Qil0nNrgMsL;h D;ainBe D;g DkB; on;in,o7;aw3do1in,oCup;ff,ut;ay;ct FdRir0sk NuctionA; oG;ff;ar8o7;ouL;nd; o7;d L;do1oLup;ff,n;wn;o7up;ut", - "ProperNoun": "true\xA6barbie,c4diego,e3f2iron maiden,kirby,m0nis,riel,stevens;ercedes,i0;ckey,ssy;inn,lorence,ranco;lmo,uro;atalina,hristi", - "Ordinal": "true\xA6eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th", - "Cardinal": "true\xA6bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions", - "Multiple": "true\xA6b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion", - "City": "true\xA60:76;1:64;2:6J;3:6M;4:5V;a6Bb56c4Ld4Be47f3Zg3Kh3Ci33j2Yk2Hl25m1Nn1Do1Ap0Xq0Vr0Os05tRuQvLwDxiBy9z5;a7h5i4Puri4R;a5e5ongsh0;ng3K;greb,nzib5J;ang2e5okoha3Vunfu;katerin3Krev0;a5n0R;m5Kn;arsBeAi6roclBu5;h0xi,zh5S;c7n5;d5nipeg,terth4;hoek,s1N;hi62kl3D;l66xford;aw;a8e6i5ladivost5Polgogr6N;en3lni6U;ni24r5;n2o3saill4Q;lenc4Zncouv3Vr3ughn;lan bat1Erumqi,trecht;aFbilisi,eEheDiBo9r7u5;l23n66r5;in,ku;i5ondh65;es54poli;kyo,m32ron1Rulo5;n,uS;an5jua3l2Wmisoa6Dra3;j4Wshui; hag64ssaloni2K;gucigal28hr0l av1W;briz,i6llinn,mpe59ng5rtu,shk2U;i3Hsh0;an,chu1n0p2Hyu0;aEeDh8kopje,owe1It7u5;ra5zh50;ba0It;aten is58ockholm,rasbou69uttga2Y;an8e6i5;jiazhua1llo1m5Zy0;f53n5;ya1zh4K;gh3Nt4T;att48o1Yv47;cramen18int ClBn5o paulo,ppo3Urajevo; 7aa,t5;a 5o domin3H;a3fe,m1O;antonBdie3Ffrancisco,j5ped3Qsalvad0L;o5u0;se;em,z28;lou5Bpeters27;aAe9i7o5;me,sar5t5C;io;ga,o5yadh;! de janei3H;cife,im3Lnn3Lykjavik;b4Uip4lei2Knc2Rwalpindi;ingdao,u5;ez2i0R;aFeEhDiCo9r7u6yong5;ya1;eb5Aya1;a5etor3O;g53to;rt5zn0; 5la4Eo;au prin0Nelizabe26sa04;ls3Rrae5Btts28;iladelph3Inom pe1Coenix;r23tah tik3G;dua,lerZnaji,r4Qt5;na,r34;ak46des0Lm1Or6s5ttawa;a3Xlo;an,d07;a7ew5ing2Hovosibir1Lyc; 5cast38;del26orlea46taip16;g8iro4Xn5pl2Yshv35v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0Y;aFeCi9o6u5;mb2Cni28sc40;gadishu,nt6s5;c15ul;evideo,pelli1Tre31;ami,l6n16s5;kolc,sissauga;an,waukee;cca,d5lbour2Omph43ndo1Essi3;an,ell5i3;in,\xEDn;cau,drAkass2Tl9n8r5shh4A;aca6ib5rakesh,se2M;or;i1Ty;a4EchFdal10i47;mo;id;aDeAi8o6u5vSy2;anMckn0Pdhia3;n5s angel27;d2g bea1O;brev2Ce3Mma5nz,sb2verpo29;!ss28; ma3Ai5;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Fn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd36rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5\u0307zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Yi2H;che2d5;ianap2Mo20;aAe7o5yder2V; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Nupe;ld coa1Bthen5;bu2R;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal28es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,nkirk,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Yr es sala1KugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1P;lo7n6penhag0Ar5;do1Nk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr14;ch8sha,zh07;gliari,i9lga8mayenJn6pe town,r5tanO;acCdiff;ber19c5;un;ry;ro;aWeNhKirmingh0WoJr9u5;chareTdapeTenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iCl9ng8r5;g6l5n;in;en;aluru,hazi;fa6grade,o horizon5;te;st;ji1rut;ghd0AkFn9ot8r7s6yan n4;ur;el,r06;celo3i,ranquil08;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a04b01cc00ddis abaZgartaYhmedWizawl,lSmPnHqaZrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a8c5kaNtwerp;hora6o3;na;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg", - "Region": "true\xA60:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma", - "Country": "true\xA60:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an", - "Place": "true\xA6aVbTcPdOeNfMgIhHiFjfk,kDlBm9new eng8or7p5s4t2u1vostok,wake is8y0;akutDyz;laanbaatar,pP;ahiti,he 0;bronx,hamptons;akhalGfo,oho,under3yd;acifUek,h0itcairn;l,x;ange county,d;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s", - "WeekDay": "true\xA6fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s", - "Month": "true\xA6dec0february,july,nov0octo1sept0;em0;ber", - "Date": "true\xA6ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w", - "Duration": "true\xA6century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade", - "FemaleName": "true\xA60:IS;1:IW;2:I5;3:I4;4:IM;5:I9;6:JD;7:GQ;8:J9;9:J5;A:HD;B:HN;C:IE;D:J2;E:II;F:H2;G:C4;H:HP;aGIbFDcDJdCSeBIfB0gAAh9Qi9Dj8Ck7Cl5Wm46n3Ko3Gp34qu33r2Bs16t0Fu0Dv03wWxiUyPzI;aMeJineb,oIsof2;e3Rf2la,ra;h3iLlJna,ynI;ab,ep;da,ma;da,h3iIra;nab;aLeKi0GolB3uJvI;etAonDH;i0na;le0sen2;el,gm3Gn,rGAs8T;aoIme0nyi;m5YyAA;aNendDRhiD8iI;dele9lKnI;if45niIo0;e,f44;a,helmi0lIma;a,ow;ka0nB;aOeLiIusa5;ck82kJlAole7viI;anGenIQ;ky,toriBE;da,lA5rIs0;a,nIoniGV;a,iFH;leInesGV;nI7rI;i1y;g9rIxGW;su5te;aZeVhSiOoMrJuIy3;i,la;acIPiIu0L;c2na,sI;hGta;nIr0H;iGya;aKffaEGnIs6;a,gtiI;ng;!nFHra;aJeIomasi0;a,l9Lo87res1;l2ndolwethu;g9Co85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe3iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlett,e0ChYiUkye,neza0oStOuJyI;bI2lvi1;ha,mayI5ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHQr5;b2fiA3m0MnIphi1;d3ia,ja,ya;er3lKmon1nJobh8MtI;a,i;dy;lEHv2;aNeJirIo0risEZy5;a,lDD;ba,e0i5lKrI;iIr6Gyl;!d8Efa;ia,lDP;hd,iNki3nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7YvI;da,inj;e0ife;en1i0ma;anA0bMd3Kh1PiBkLlKmJnd3rIs6vannaC;aCi0;ant6i3;lDEma,ome;ee0in8Ou3;in1ri0;a05e00hYiVoIuthDC;bTcSghRl8GnQsKwJxI;anAUie,y;an,e0;aJeIie,lD; merBIann8ll1marD6t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8B;hel63io;bDFer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG7oI;da,n1L;an0bKemGgi0iJnIta,y0;a86ee;han81na;a,eI;cE5kaC;bi0chJe,i0mo0nIquEFy0;di,ia;aEDelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCL;scil3LyamvaB;lly,rt2;ilome0oebe,ylI;is,lis;ggy,nelope,r5t3;ige,m0UnLo5rvaDBtJulI;a,etAin1;ricIt4T;a,e,ia;do3i07;ctav2dJfCUis6lIphCUumBYyunbileg;a,ga,iv2;eIvA9;l2tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBJkLlaKna,sIta,vi;anIha;ur;!y;a,iDNki;hoHk9SolI;a,eDE;!mh;hir,lIna,risFsreE;!a,lBO;asuMdLh2i6CnKomi8rgEJtIzanin zah3;aIhal4;li1s6;cy,etA;e9iEP;nngu30;a0Ackenz4e02iNoKrignayani,uriD8yI;a,rI;a,lOna,tH;bi0i3llBDnI;a,iI;ca,ka,qCY;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEI;!l,nB;dy,eIh,n4;nhHrva;aLdKiCKlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5EgOi,lLrI;edi77iJjem,on,yI;em,l;em,sF;an4iIliF;nIsC9;a,da;!an,han;b0DcANd0Be,g09ha,i08ja,l06n04rMsoum5YtLuJv80x9FyIz4;bell,ra,soB4;de,rI;a,eE;h8Cild1t4;a,cYgUiLjor4l7Qn4s6tKwa,yI;!aIbe6Uja9lA9;m,nBC;a,ha,in1;!aKbC6eJja,lDna,sIt62;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliACcJeduarBfern5EjIlui5W;o6Dul2;ecil2la3;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Vi75y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD6on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d2la,nI;!a,dJeBCnIsCG;!a,eBB;a,sCE;aCRcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a84i8;lIn1t7;ei;!in1;aTbb98dSepa,lNnKsJv2zI;!a,be5KetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9We;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c2t2;e2NlCB;la,nIra;a,ie,o3;a,or1;a,gh,laI;!ni;!h,nI;a,d3e,n5O;cPdon93iOkes6mi96na,rNtKurJvIxmi,y5;ern1in2;a,e53ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAFoOrKyI;lIra;a,ee,ie;istIy6B;a,en,iJyI;!na;!e,n58;nul,ri,urtnAV;aPerOlAUmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei3ongordzol;dij1w5;el7MiLjsi,lKnJrI;a,i,ri;d3na,za;ey,i,lB8s4y;ra,s6;bi7cAEdiat7EeAXiSlRmQnyakuma1BrOss6HtLvi7yI;!e,lI;a,eI;e,i8H;a6BeJhIi4MlDri0y;ar69er69ie,leErAXy;!lyn8Cri0;a,en,iIl5Qoli0yn;!ma,nGsF;a5il1;ei8Ai,l4;a,tl6I;a09eZiWoOuI;anMdLliIst61;a8DeIsF;!n9tI;!a,te;e5Hi3Iy;a,i7;!anOcelDdNelHhan7NleMni,sJva0yI;a,ce;eIie;fIlDph5S;a,in1;en,n1;i8y;!a,e,n40;lIng;!i1DlI;!i1C;anOle0nLrKsI;i88sI;!e,i87;i,ri;!a,elHif2AnI;a,etAiIy;!e,f28;a,e89iJnI;a,e88iI;e,n1;cNda,mi,nJque4UsminGvie3y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob7Z;!n9H;do3;belIdo3;!a,e,l37;a72en1i0ma;di3es,gr6Tji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin29;da,ll4rten21snI;a,i9K;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1AiKlJnriet7rmi9sI;sa,t19;en2Qga,mi;di;bi2Bil8ClOnNrKsJtIwa,yl8C;i5Nt4;n5Tti;iImo4Xri4Y;etI;!te;aCnaC;a,ey,l4;a03eXiSlQoOrLunKwI;enIyne1O;!dolD;ay,el;acieJetIiselB;a,chE;!la;ld19ogooI;sh;adys,enIor2yn2G;a,da,na;aLgi,lJna,ov84selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Ni,m3Atru86;etAi4S;a,eIna;s25vieve;ma;bJle,mIrnet,yH;al5Ji5;i5BrielI;a,l1;aUeRiQlorPoz2rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0N;n1s5X;!ca;a,enc2;en,o0;lJn0rnI;anB;ec2ic2;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no3oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c2da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh2iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr2nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d3nI;!a,e;hl2i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th2;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat3;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a3er3ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d3elHtI;al,elH;cJlI;esAi42;el2ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a3o3ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el2;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar2;el;aMberLeliKiIy;e,l2naI;!ta;a,ja;!ly;hHiJl2nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c2sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c2is6jaLksaLna,sKxI;aIia;!nd3;ia,saI;nd3;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya", - "FirstName": "true\xA6aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is", - "LastName": "true\xA60:9G;1:9W;2:9Y;3:9O;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s2;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi3j6ka3IoGrFsui,uD;om50rD;c3n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps2s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv3zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins2;!on;bei0LcEes,vDzzo;as,e8;ci,hards2;ag3es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss2;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym3;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx2;ic,ov6X;ls1miD;!n1;ils2mD;co42ec;gy,kaEray3varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h3lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h3iSlQnez48oJrGuEvar3woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss2;anEnsD;en,on,t2;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks2obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m3ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers2;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw2;o,staf2Utierr7zm3;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m3;calv9zale0H;aj,i;bs2l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm3uD;cDent9ji3E;hs;ntaDrt6urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s2;er,is2wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g3he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w3;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e2uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em3liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm3tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder2mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy3;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss2;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl3yD;aEd6;in;la;aEsl3;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s2;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", - "MaleName": "true\xA60:DN;1:CO;2:D6;3:AJ;4:CK;5:BZ;6:CF;7:D2;8:BS;9:AR;A:DA;B:D3;C:94;D:BM;aC9bB7cA7d98e8If82g7Fh6Si6Cj5Ek52l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Jkaria,n0C;hFkE;!aC7;ar5UeC6;aMoGuE;sEu2LvBJ;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB8ssY;avi3ho4;aNeLiGoEyaBN;jcie87lfgang,odrow,utE;!er;lEnst1;bGey,fredAlE;aAZiE;am,e,s;e97ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Xy;aHiEladimir,ojte7U;cFha0kt67nceErgA5va0;!nt;e3Xt65;lentEn9S;inE;!e;ghBElyss59nax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r59;avAHeEist0oy,um0;ntA9v5Wy;bGd8RmEny;!as,mEoharu;aCBie,y;iCy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8G;!de5;dHrE;en98rE;an97eEy;ll,n96;!dy;dgh,ha,iEnn3req,tsu4R;cAPka;aUcotSeQhMiKoIpenc3tEur1Xylve96zym1;anGeEua85;f0phBCvEwa84;e5Zie;!islaw,l8;lom1uE;leyma6ta;dElCm1yabonga;!dhart74n8;aGeE;lErm0;d1t1;h7Kne,qu11un,wn,y6;aEbasti0k2Cl4Prg4Mth,ymoAE;m5n;!tE;!ie,y;lFmEnti2Gq58ul;!ke5JmDu4;ik,vato7O;aZeVhe9ViRoIuFyE;an,ou;b7DdFf5pe7KssE;!elBI;ol3Fy;an,bLc62dJel,geIh0landAmHnGry,sFyE;!ce;coe,s;!aA1nD;an,eo;l45r;er78g3n8olfo,riE;go;bDeAQ;cEl8;ar6Ic6HhFkEo;!ey,ie,y;a8Vie;gFid,ubByEza;an1KnZ;g9SiE;na9Os;ch6Qfa4lImHndGpha4sFul,wi2HyE;an,mo6U;h7Jm5;alAWol2Uy;iACon;f,ph;ent2inE;cy,t1;aJeHhilGier6TrE;aka18eE;m,st1;!ip,lip;dA4rcy,tE;ar,e3Er1Y;b4Hdra73tr6JulE;!o19;ctav3Di3liv3m9Yndrej,rIsFtEum7wB;is,to;aFc7k7m0vE;al5S;ma;i,vM;aMeKiGoEu38;aEel,j5l0ma0r3I;h,m;cFg4i46kEl2R;!au,h7Gola;hEkEolC;olC;al,d,il,ls1vE;il8J;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Gr1;hamFr6KstaE;fa,p54;ed,mI;di0Xe,hamGis2CntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Uik;house,o0Ct1;ae5Oe9MolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2AlSmadXnRrLs1tGuricFxE;imilianAwe9;e,io;eHhFiCtEus,yC;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Ysha9tEv2;iEy;!m,n;in,on;el,oQus;!el90oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5G;ou;aXeRiPlo39oLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7BrenGuEv81we9;!iE;e,s;!zo;am,oE;n4r;a7Uevi,la4AnIonHst3thaGvE;eEi;nte;bo;!a6Del;!ny;mFnd1rEur54wr54;ry,s;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubCnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdBkJmIrGsFvi3yE;dBs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dB;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdA;ffr8rge;brFlBrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymBzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estAie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydCy29;!lC;!a2HnEov0;e9ie,y;go,iFykC;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdA;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndA;!el,ki;ie;ta;aq;as,dIgelAtE;hony,oE;i6nE;!iAy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdBeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtA;ni;dBm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfAri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on", - "Person": "true\xA6ashton kutchYbXcSdQeOgastThMinez,jLkKleJmFnEoDpBr5s4t2va1w0;arrHednesday adams,oode;lentino rossi,n go5;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssOlobodan milosevic;ay romano,e4o2u0;n dmc,sh limbau0;gh;d stewart,nald0;inho,o;ese witherspoIil6;a0ipM;lmLris hiltG;prah winfrIra;ettAiles crane;essia2i0ubarek;randa ju0tt romnF;ly;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", - "Adjective": "true\xA60:8H;1:9N;2:8E;3:9E;4:8B;5:98;6:8M;7:8T;8:86;9:99;A:8W;B:7Z;C:60;D:9D;E:7J;a80b7Ic6Wd6Fe5Xf5Cg54h4Ui3Ujuni49k3Rl3Hm34n2Uo2Fp20quart6Ar1Qs0Ut0MuRvNwFye1M;ast58eKhIiHoF;man4oFrthwhi7u0I;dBzy;despr8Zn w7Cs6N;acked0XoleF;!sa7;ather14eFll o5Pste2Q;!k4;aHeGiFola5J;b9Qce versa,gi2Qle;ng4Yrsa5H;ca1lu8U;lt08nLpHrGsFttermo9I;efEu5;b7Age1; Hb2ApGsFti8H;ca7et,ide d3P;er,i4O;f3Xto da3;aYbecom2cXdSeRfPiOkn3MmNpMrJsGto49us0wF;a08iel2N;eBi2Fo47pGuF;pervis0spect2;e1okB;eFu4;cognTgul0NlFsolv0;at0ent2;aArecede01;arri0et;que,vers5;air,orF;eseBtun7S;mploy0nd2xpect0;eFisclos0ue;cid0rF;!a75covCly2sJwF;aFei7W;tCy;heck0onvinc2;ppeal2ssum2tteGuthorF;iz0;nd0;im4Bra;aKeHhough5Jip 1RoGrF;anspare1i3;gethCle8Qp notch,rpA;ena6UmpGrF;r3Ktia8;e9o76;leFst3V;nt0;a09c05e02h01iZkiYle5Mmug,nobbi46oTpQqueami46tKuFymb7L;bHi generis,pFr4;erFre69;! dupCb,vi00;du0p5HsFurb65;eq7Rtanda8C;atu6OeJi0WrFy3Z;aightGin4LungF; o25; fFfF;or6C;adfa84ri7;arGeFirit0lendAot on;c33e1F;k4se; call0lub7mbCphisticIrHuFviT;ndFth10;proof;dAry;at0;ll0n d6C;g22nF;ce5Mg7;am36eC;co1Lem4lfGnFre6;so8; suf45i3G;aGholFient2P;ar4;rlFth2;et;cr0me,tisfac5Z;aNeIheumatoAiGoF;bu7IttBy5;ghtFv5;-w2fE;cIdu79lHnown0sFtard0;is3JoF;lu3na1;e1Duc3H;e1ondi3;bAci5;aQeOicayu6laNopuli79rGuF;bl6Fnjabi;eKiIoF;b6HfGmi3IpFvBx23;er,ort6N;a6u6Q;maFor,sti6va3;!ry;ci6Nexist2ma1UpaA;cAid;ac2Dnt2XrFti3;feDma3Ati3Av6J;i2DrtFss6F;-4RiF;al,s4P;bQffOkNld MnKrJthCutIverF;!aGni5Vseas,t,wF;ei5Urou5U;ll;do14er,si51;d34g1U; bFbFe on o6go2li6;oa6P;fashion0school;!ay; gua6MbFli6;eat;eGsF;ce6er0Io0Z;dia1se;aNeMiLoFuanc0; mo47nHrthFt5P;!eF;rn;chaGdescri6Aprof2JsF;top;la1;ght4;arby,cessa8ighbor4xt;k0usiat2;aNeMiKoGuF;dHltip7;deHlGnFot,st;ochro3Yth4;dy;rn,st;ddle ag0nF;dblVi;ga,nac2re;cHgenta,in,j0Akeshift,mmGnFscu50;da4Ay;ali3Ooth;ab3Mho;aNeKiIoFumber2;ngFuti1I;stand2tF;erm,i3L;ghtwei4QteraF;l,te;ft-w2gFssCth5;al,eFit0I;nda8;nguAps0te4;apGind4nF;ow2;ut;ce co0Dgno5Kll09m01nHpso 2ErF;a3releF;va1; WaVcoSdPe2MfOgrNhibi3Ri02nMoLsHtFvalu4N;aDeF;n4Wrdep24;a6iGolFuboI;ub7ve1;de,gF;nifica1;rdi4O;a3er;own;eriGluenSreq4J;eGiIoFul1E;or;fini3p1Ttermi4I;mpGnside9rF;reD;le3;ccu9deq4Jppropr3Q;fFsitu,vitro;ro1;mJpF;arHeGl0YoFropC;li3r0V;nd2rfeD;ti5;aGeFi0Z;d3Hn48;tu2E;egGiF;c0Rte9;al,itF;ima3;ld;aMelLiJoFuma6;meHnGrrFs0Bur4;if3K;e4Co30; ma2Msick;ghfalut1VspF;an3G;liZpfE;i8llow0ndFrd05tL;sy,y;aiLener3Ciga2Jlob5oKraHuF;ilFng ho;ty;cGtF;efEis;efE;ldBod;nfE;aWeTiRlPoIrF;aGeFil4ozB;q3CtfE;gi7nt31;lk0WoJrF; keeps,eHge0OmCtunFwa3U;ateF;!ly;go2i1Os2Z;liF;sh;ag3Rowe8uF;e1oresce1;e8nF;al,i3;dGmini6rF;ti7; up;bl0l31mili0Lr Fux;oFreach2;ff;aTfSlQmNnLqu5reDthere5veryday,xF;aDem3AplIquisi3traHuF;be3FlF;ta1;!va1V;icF;it; Fti0Y;rou3sui3;erGiF;ne1;ge1;dFe1N;er4;ficie1;gCsF;t,ygo2;er;aUeMiHoGrFue;ea8owW;mina1ne,rma1ubO;dact1Yfficult,m,sGverF;ge1se;creGeNjoi1pa9tF;a1inD;et,te; Ladp0GceKfiJgene9liHpGreliDspe9voF;id,ut;ende1;ca3ghF;tfE;a1ni3;as0;facto;i4ngero05;arZeXhWivil,oMrHuF;stoma8teF;sy;aIeHu0WystalF; cleFli6;ar;epy;vBz0;erNgniza1loMmLnGrpo9veF;rt;cIduLgr1KjHsGtraF;dic0Hry;eq1Ita1;oi1ug5;a1Ci1L;mensu9pass1G;ni5ss5;ci19;ee8intzy;leba3rtaF;in;diac,efE;aUeOiJliSoGrFuck nak0;and new,isk,on1U;gGldface,naF; fiZfiZ;us;gHpartisGzarF;re;an;tiF;me;autifEhiIloHnFsiSyoI;e01iFt;gn;v0w;nd;ul;ckwards,rF;e,rB; priori,b12c0Zd0Tf0Ng0Ih0Hl0Amp7nt07pZrSsPttracti0MuLvIwF;aGkF;wa19;ke,re;ant garGeraF;ge;de;diHtF;heFoimmu6;nt07;to8;hBlF;eep;en;bitJchiv5roItF;iFsy;fiF;ci5;ga1;ra8;ry;pFt;aJetiz2roF;prHximF;ate4;ly;ia3;ll2re1;ing;iquFsy;at0e;ed;cohJiQkaHl,oGriFterW;ght;ne,of;li6;ne;olF;ic;ead;ain05ed,gressiIrF;eeF;ab7;le;ve;fGraA;id;ectGlF;ue1;ioF;na3; JeHvF;erF;se;pt,qF;ua3;hoc,infinitum;cu9tu5u3;al;ra3;erQlOoMrJsGuF;nda1;e1olu3traD;ct;te;eaGuF;pt;st;aFve;rd;aFe;ze;ra1;nt", - "Adverb": "true\xA6a08b05d01eXfRhePinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6;en,us;eldom,o0uch;!me1rt0; of;how,times,w0A;a1e0;alT;ndomSthN;ar excellenEer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag03moX; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboV;deed,steW;lla,n0;ce;or2u0;lArther0;!moK; 0ev3;examp0good,suI;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;ju9trop;ackward,y 0;far,no0; means,w; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", - "Conjunction": "true\xA6aVbRcuz,eNhowMiEjustYnoBo9p8supposing,t5wh0yet;e1il0o3;e,st;n1re0thN; if,vM;evL;h0o;erefMo0;!uS;lus,rovided th9;r0therwiK;! not; mattEr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mGcaDorder t0;h0o;at;! 0;only,t0w0;hen;!ev3;ith2ven0;! 0;if,t9;er;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh", - "Currency": "true\xA6$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0\xA2,\xA3,\xA5,\u0434\u0435\u043D,\u043B\u0432,\u0440\u0443\u0431,\u0E3F,\u20A1,\u20A8,\u20AC,\u20AD,\uFDFC;lotyQ\u0142;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", - "Determiner": "true\xA6aAboth,d8e5few,le4mu7neiCplenty,s3th2various,wh0;at0ich0;evB;at,e3is,ose;everal,ome;!ast,s;a1l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", - "Adj|Present": "true\xA6a06b03cUdPeNfJhollIidQlEmCnarrIoBp9qua8r7s4t2utt3w0;aKet,ound,ro0;ng,ug07;end0hin;er;e1hort,l0mooth,our,pa8tray,u8;i2ow;cu6da01leRpaM;eplica00ig01;ck;aGr0;eseTime,omU;bscu1pen,wn;atu0e3odeG;re;a2e1i0;gTve;an;st,y;ow;a2i1oul,r0;ee,inge;rm;iHke,ncy,st;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry,ull;le;ffu9re6;fu8libe0;raE;alm,l5o0;mpleCn3ol,rr1unterfe0;it;e0u7;ct;juga8sum7;ea1o0;se;n,r;ankru1lu0;nt;pt;lig2pproxi0;ma0;te;ht", - "Comparable": "true\xA60:38;1:3N;2:3C;3:2E;a3Rb39c30d2Re2Kf28g1Wh1Mi1Gj1Fk1Cl15m0Zn0Uo0Tp0Kqu0Ir09sJtEuDvBw5y4za0S;el12ouP;a8e6hi1Ii4ry;ck0Ede,l4n1ry,se;d,y;a4i3Q;k,ry;ntiJry;a4erda2ulgar;gue,in,st;g0pcomiG;a7en2Thi6i5ough,r4;anqu29en1ue;dy,g33me0ny,r04;ck,rs25;ll,me,rt,wd3F;aScarReQhOiNkin0ClJmHoFpEt7u5w4;eet,ift;b4dd0Wperfi1Xrre25;sta23t3;a9e8iff,r5u4;pVr1;a5ict,o4;ng;ig2Sn0N;a1ep,rn;le,rk,te0;e1Oi2Sright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Jm4;!y;ek,nd2P;ck,l0mp3;a4iRrill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;bb0ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Xte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o11u4ve0w0Vy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui17;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1A;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd11ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue0Y;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiR;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0O;!ny;aDesh,iend0;a4rmE;my;erce5nan4;ciB;! ;le;r,ul4;ty;a7erie,sse5v4xtre0C;il;nti4;al;r5s4;tern,y;ly,th0;aBe8i5ru4umb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppSrk;agey,h9l8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;evMou1;e4il0;ap,e4;sy;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", - "Infinitive": "true\xA60:8V;1:8G;2:9D;3:80;4:7N;5:91;6:9H;7:99;8:82;9:9G;A:92;B:8X;C:7K;D:7U;E:7Q;F:87;G:7V;H:7H;a82b7Jc6Sd5Le4Gf45g41h3Wi3Cj39k37l2Ym2Rnou3Vo2Lp25qu24r19s0AtYuTvRwI;aOeNiLors4rI;eJiI;ng,te;ak,st3;d4e7HthI;draw,er;a2d,ep;i2ke,nIrn;d0t;aIie;li9Eni9ry;nIplift;cov0dJear7JlIplug,tie,ve85;ea9o3K;erIo;cut,go,sta9Gval96whelm;aRePhMoLrI;aIemb3;ffi3Fmp3nsI;aDpi8;pp3ugh4;aJiJrIwaE;eat4i2;nk;aIm92;ch,se;ck3ilor,keImp0r7N;! paE;a0Fc0Ee0Ch08i06l04mugg3n03o01pYquXtQuKwI;all71eeIim;p,t4;bKccumb,ffJggeBmm93p2FrI;mouFvi2;er,i5;li80mJsiIveE;de,st;erAit;aMe7SiKrI;ang3eIi2;ng20w;fIng;f4le;gg0rI;t3ve;a3Ui9;a4DeJit,l6KoI;il,of;ak,nd;lIot6Nw;icCve;eak,i0L;aIi6;m,y;ft,nIt;g,k;aKi5LoJriIun;nk,v5X;ot,rt4;ke,rp4tt0;eIll,nd,que7Nv0w;!k,m;avenAul81;dd4tis1Ay;a0BeJip4oI;am,ut;a07b05c03d02fZgroup,heaYiXlVmUnTpRq36sNtLup,vI;amp,eJiIo2V;sCve;l,rt;i8rI;ie2ofC;eFiKtIurfa5;o1XrI;aHiDuctu8;de,gn,st;el,hra1lIreseF;a5e69;d0ew,o05;aHe31o2;a7eFiIoad,y;e2nq3Mve;mbur1nf2U;r1t;inJleDocus,re9uI;el,rbi9;an5e;aDu5;ei2k7Jla3OoIyc3;gni2Wnci3up,v0;oot,uI;ff;ct,d,liI;se,ze;tt3vi9;a9enGit,o7;aVerTinpoiFlumm0VoSrKuI;b3Oke,ni9rIt;poEs6W;eMoI;cKd,fe4BhibCnoJpo1sp0tru6vI;e,i6o4W;un5;la39u8;aGclu6dJf0occupy,sup0FvI;a5LeF;etermi47iD;aGrtr4Vsse44;cei2fo3Hi9mea7plex,sIva6;eve8iB;mp0rItrol,ve,y;a5St5O;bMccuLpKutJverIwe;lap,s19tu6Au1;gr4Pnu22pa5;era7i3Ypo1;py,r;ser2taH;aMe09iJoIultiply;leBu64;micJnIspla5;ce,g3us;!k;iIke,naA;m,ntaH;aPeLiIo1u39;e,ke,ng0quIv4;eIi66;fy;aKnIss4;d,gI;th4;rn,ve;ng26u1E;eep,nI;e3Row;oHuI;gg3xtaI;po1;gno8mWnIrk;cUdSfRgeBhQitia7ju8q14sOtKun5TvI;eIo0T;nt,st;erJimi5QoxiQrI;odu5u6;aDn,prIru5Q;et;iBpi8tIu8;il,ruD;abCibC;eBo2Bu1;iIulA;ca7;i7lu6;b5Cmer1pI;aEer47ly,oJrI;e2Ris5No2;rt,se,veI;ri9;aLeKiIoiBuE;de,jaInd0;ck;ar,iQ;mp0ng,pp4st4ve;ath0et,i2le1UoKrI;aIow;b,pp3ze;!ve4S;ast4er3Li58lRorMrJuI;lf3Tr3P;eJiIolic;ght4;e0Lsh4;b3DeKfeCgIs4B;eIi2;!t;clo1go,sIwa4J;had2Y;ee,i2Q;a0KdCl0Im0CnUquip,rTsStGvQxI;cNeEha3iMpJtI;ing0Uol;eJi8lIo1unA;aHoC;ct,di7;st,t;e2MlI;a0Xu6;alua7oI;ke,l2;chew,pou1tab13;a1u4G;aYcVdTfSgQhan5joy,lPqOrNsuMtKvI;e0VisI;aAi4L;er,i5rI;aHenGuB;e,re;iGol;ui8;arAiB;aAeIra2ulf;nd0;or5;ang0oIu8;r1w;lo1ou0CrJuI;mb0;oaGy3Z;b3ct;bKerApI;hasiIow0;ze;a0Tody,rI;a5oiI;d0l;ap1eDuI;ci3Ode;rIt;ma0Nn;a0Ne02iKo,rIwind3;aw,edAoI;wn;agno1e,ff0g,mi27sLvI;eIulA;rIst;ge,t;ab3bUcPlodAmant3pNru3GsMtI;iIoEu2W;lJngI;ui9;!l;ol2ua6;eIla5o1ro2;n1r1;a2Ne2WlKoIu0K;uIv0;raA;aIo1;im;a38ur1;af4bZcTduDep4fRliQmNnLpKra1TtaGvI;eIol2;lop;aEiDoE;oIy;te,un5;eJoI;li9;an;mCv0;a5i06oIraud,y;rm;ei2iMoKrI;ee,yI;!pt;de,mIup3;missi2Upo1;de,ma7ph0;aJrief,uI;g,nk;rk;mp4rk4uF;a06ea1h04i03l02oJrIurta17;a2ea7ipp3;ales5eZhabCinci6llYmWnIrro6;cTdQfNju8no7qu0sLtKvI;eIin5;ne,rA;aHin25ribu7;er2iIoli27pi8titu7ult;d0st;eJiIroFu1;de,gu8rm;ss;eJoI;ne;mn,n1;eIlu6ur;al,i2;buBe,men5pI;e7i3ly;eDi6u6;r5xiB;ean1iS;rcumveFte;eIoo1;ri9w;ncIre4t0ulk;el;aXeRi6lPoOrLuI;iJrIy;st,y;ld;aJeastfeMiIoad4;ng;ke;il,l12mba0XrrMth0;eIow;ed;!come,gHha2liLqueaKstJtrIwild0;ay;ow;th;e2tt3;in;bysCckfi8ff3tI;he;it;b17c0Vd0Mff0Kgr0Jl0Fm0Bn05pp01rZsSttPuNvKwaI;it,k4;en;eEoI;id;rt;gIto08;meF;aGeBraD;ct;ch;pi8sJtoI;ni9;aKeIi05u8;mb3rt,ss;le;il;re;g0Ji1ou1rI;anAi2;eaKly,oiFrI;ai1o2;nt;r,se;aMiQnJtI;icipa7;eJoIul;un5y;al;ly1;aJu1;se;lgaIze;ma7;iKlI;eAoIu6;t,w;gn;ee;ix,oI;rd;a01jNmiKoJsoI;rb;pt,rn;niIt;st0;er;ouJuB;st;rn;cLhie2knowledAquiItiva7;es5re;ce;ge;eOomKrJusI;e,tom;ue;moJpI;any,li9;da7;te;pt;andOet,i6oKsI;coKol2;ve;li9rt,uI;nd;sh;de;on", - "Modal": "true\xA6c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", - "Verb": "true\xA6born,cannot,gonna,has,keep tabs,msg", - "Participle": "true\xA6fl3g1s0writt2;e1h2;iv0one;en;own", - "Adj|Gerund": "true\xA60:2F;1:2H;2:25;3:23;4:20;5:2D;6:27;7:22;a24b1Zc1Hd14e0Yf0Og0Ih0Hi0Ajud1Xl07m04o00pWrQsFtAup9v8w0Pyiel4;ar5eY;lif0s01;aWeBhr9i3ouc7r8wis0;e01oub2us0yi1;ea0Mi8;l2vi1;l2mp0;atisf5creec7hoc0Ekyrocke0lo13oGpFtBu9we8;e12l2;pp1Kr8;gi1pri6roun4;a9ea23i8ri0Aun1C;mula0r3;gge3r8;t2vi1;ark2ee4;a8ot7;ki1ri1;aCe9ive0o8us7;a3l2;defi13fres7ig13laEmai13s0v8war4;ea2itali8ol0Q;si1zi1;gi1ll5mb2vi1;a5erpleAier1Dlun18r8un1J;e8o11;ce4s6vai2;xi1;ffsApNut9ver8wi1;arc7lap0Hp09ri4whel1L;goi1l5st0Y;et0;eande3i9o0Fu8;mb2;s6tiga0;a9i8o0C;fesa0Bmi0vi1;cKg0Vs0;mDn8rri0C;cBsAt9vi8;go1Gti1;e15imida0;pi3ul0;orpo1Drea6;po6;arrowi1ea2orrif5umilia0;lCr8;a0ipZo9uel8;i1li1;undbrea8wi1;ki1;a3ea0Z;aGetc7it0lDoBr9ulf8;il2;ee0Yigh8ust12;te04;r8un4;ebo4th0H;a9o8;a0we3;mi1tte3;di1scina0;mBn9x8;ac0ci0is0plo4;ab2c8du3ga04sT;han0oura03;barras6er02p8;owe3;aJeCi8;s8zz5;appoin0gus0sen0t8;r8u0N;ac0es6;biliDcCfiMgra4mBpres6serAv8;asCelo8;pi1;vi1;an4eaI;a5liH;ta0;maOri1s7un0;aOhLlo6o8ripp2ut0;mEn8rrespon4;cerCfBspi3t8vinQ;in9r8;as0ibu0ol2;ui1;lic0u6;ni1;fCmBp8;e9ro8;mi6;l2ti1;an4;or0;a8ea0il2;llen8rQ;gi1;lOptiva0ri1;eBin4lin4o9rui6u8;d4st2;i2oLri1un8;ci1;coJ;bsoQcLgonJlarImGppea2rEs8;pi3su3to8;n9un4;di1;is7;hi1;ri1;res0;li1;aBu6;si1;mi1;i8zi1;zi1;c8hi1;ele9ompan5;yi1;ra0;ti1;rbi1;ng", - "Adj|Past": "true\xA60:30;1:2R;2:2U;a2Jb2Dc1Ud1Be15f10gift0h0Xi0Qj0Pknown,l0Mm0Hn0Fo0Cp05qua04rVsEtAu7v5w3;arp0ea3or5;kIth2T;a3e0W;ri0;n3pd1s0;derstood,i3;fi0t0;ar5hreatCr3wi2R;a3ou19;ck0in0pp0;get0ni1N;aHcaGeEhDimCm01oak0pAt6u3;bsid28gge2Ms3;pe3ta1S;ct0nd0;at0e5r3uV;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al20fi0;pIul1;ar0ut;a3c1Jle2t1S;l0t0;r0tt25;t3ut0;is1Jur1;aAe3;c7duc0f1Cg6l1new0qu5s3;pe2t3;or0ri2;e22ir0;ist1Xul1;eiv0o3;mme09rd0v1V;lli0ti1A;li19;arallel0i0Kl7o6r3ump0;e4o3;ce0Ilo0Hnou1Tpos0te2;fe0Loc8pY;i1Gli0R;a3e19;nn0;c4rgan1Bverlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3ut0;di0Vt0G;as0Qlt0;n3rk0;ag0ufact0O;eft,i4o3;ad0st;cens0mit0st0;agg0us0N;mp8n3sol1;br0debt0f6t3volv0;e3ox0F;gr1n3re18;d0si0J;e2l1oX;li0oLrov0;amm10e1o3;ok0r3;ri0E;aNe6i5lavo09oc05r3;a3i0;ct07g0Mm0;niXx0;ar0;duc1l1mbarraKn7quipp0stabliVx3;agger1p3te5;a4e3;ct0rie0S;nd0;ha0QsZ;aJeAi3;gni01miniOre2s3;a7c5grun05t3;o3reBurb0;rt0;iplSou3;nt0rE;bl0;cenVdOf8l7pre6ra5t3velop0;a3ermO;il0;ng0;ss0;ay0ight0;e4o3;rm0;rr0;m3t0;ag0;alcul1eHharg0lGo8r5u3;lt3stomS;iv1;a4owd0u3;sh0;ck0mp0;d0lo9m6n3ok0vX;centr1f4s3troll0;idVolid1;us0;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralB;a7i6o4roken,urn3;ed,t;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed", - "Person|Place": "true\xA6a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria", - "Person|Date": "true\xA6a2j0sep;an0une;!uary;p0ugust,v0;ril" -}; - -// node_modules/efrt/src/encoding.js -var BASE = 36; -var seq = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -var cache = seq.split("").reduce(function(h2, c2, i3) { - h2[c2] = i3; - return h2; -}, {}); -var toAlphaCode = function(n3) { - if (seq[n3] !== void 0) { - return seq[n3]; - } - let places2 = 1; - let range = BASE; - let s3 = ""; - for (; n3 >= range; n3 -= range, places2++, range *= BASE) { - } - while (places2--) { - const d2 = n3 % BASE; - s3 = String.fromCharCode((d2 < 10 ? 48 : 55) + d2) + s3; - n3 = (n3 - d2) / BASE; - } - return s3; -}; -var fromAlphaCode = function(s3) { - if (cache[s3] !== void 0) { - return cache[s3]; - } - let n3 = 0; - let places2 = 1; - let range = BASE; - let pow = 1; - for (; places2 < s3.length; n3 += range, places2++, range *= BASE) { - } - for (let i3 = s3.length - 1; i3 >= 0; i3--, pow *= BASE) { - let d2 = s3.charCodeAt(i3) - 48; - if (d2 > 10) { - d2 -= 7; - } - n3 += d2 * pow; - } - return n3; -}; -var encoding_default = { - toAlphaCode, - fromAlphaCode -}; - -// node_modules/efrt/src/unpack/symbols.js -var symbols = function(t2) { - const reSymbol = new RegExp("([0-9A-Z]+):([0-9A-Z]+)"); - for (let i3 = 0; i3 < t2.nodes.length; i3++) { - const m3 = reSymbol.exec(t2.nodes[i3]); - if (!m3) { - t2.symCount = i3; - break; - } - t2.syms[encoding_default.fromAlphaCode(m3[1])] = encoding_default.fromAlphaCode(m3[2]); - } - t2.nodes = t2.nodes.slice(t2.symCount, t2.nodes.length); -}; -var symbols_default = symbols; - -// node_modules/efrt/src/unpack/traverse.js -var indexFromRef = function(trie, ref, index3) { - const dnode = encoding_default.fromAlphaCode(ref); - if (dnode < trie.symCount) { - return trie.syms[dnode]; - } - return index3 + dnode + 1 - trie.symCount; -}; -var toArray = function(trie) { - const all4 = []; - const crawl = (index3, pref) => { - let node = trie.nodes[index3]; - if (node[0] === "!") { - all4.push(pref); - node = node.slice(1); - } - const matches3 = node.split(/([A-Z0-9,]+)/g); - for (let i3 = 0; i3 < matches3.length; i3 += 2) { - const str = matches3[i3]; - const ref = matches3[i3 + 1]; - if (!str) { - continue; - } - const have = pref + str; - if (ref === "," || ref === void 0) { - all4.push(have); - continue; - } - const newIndex = indexFromRef(trie, ref, index3); - crawl(newIndex, have); - } - }; - crawl(0, ""); - return all4; -}; -var unpack = function(str) { - const trie = { - nodes: str.split(";"), - syms: [], - symCount: 0 - }; - if (str.match(":")) { - symbols_default(trie); - } - return toArray(trie); -}; -var traverse_default = unpack; - -// node_modules/efrt/src/unpack/index.js -var unpack2 = function(str) { - if (!str) { - return {}; - } - const obj = str.split("|").reduce((h2, s3) => { - const arr = s3.split("\xA6"); - h2[arr[0]] = arr[1]; - return h2; - }, {}); - const all4 = {}; - Object.keys(obj).forEach(function(cat) { - const arr = traverse_default(obj[cat]); - if (cat === "true") { - cat = true; - } - for (let i3 = 0; i3 < arr.length; i3++) { - const k2 = arr[i3]; - if (all4.hasOwnProperty(k2) === true) { - if (Array.isArray(all4[k2]) === false) { - all4[k2] = [all4[k2], cat]; - } else { - all4[k2].push(cat); - } - } else { - all4[k2] = cat; - } - } - }); - return all4; -}; -var unpack_default = unpack2; - -// node_modules/compromise/src/2-two/preTagger/model/lexicon/misc.js -var prp = ["Possessive", "Pronoun"]; -var misc = { - "20th century fox": "Organization", - "7 eleven": "Organization", - "motel 6": "Organization", - g8: "Organization", - vh1: "Organization", - "km2": "Unit", - "m2": "Unit", - "dm2": "Unit", - "cm2": "Unit", - "mm2": "Unit", - "mile2": "Unit", - "in2": "Unit", - "yd2": "Unit", - "ft2": "Unit", - "m3": "Unit", - "dm3": "Unit", - "cm3": "Unit", - "in3": "Unit", - "ft3": "Unit", - "yd3": "Unit", - "at&t": "Organization", - "black & decker": "Organization", - "h & m": "Organization", - "johnson & johnson": "Organization", - "procter & gamble": "Organization", - "ben & jerry's": "Organization", - "&": "Conjunction", - i: ["Pronoun", "Singular"], - he: ["Pronoun", "Singular"], - she: ["Pronoun", "Singular"], - it: ["Pronoun", "Singular"], - they: ["Pronoun", "Plural"], - we: ["Pronoun", "Plural"], - was: ["Copula", "PastTense"], - is: ["Copula", "PresentTense"], - are: ["Copula", "PresentTense"], - am: ["Copula", "PresentTense"], - were: ["Copula", "PastTense"], - her: prp, - his: prp, - hers: prp, - their: prp, - theirs: prp, - themselves: prp, - your: prp, - our: prp, - ours: prp, - my: prp, - its: prp, - vs: ["Conjunction", "Abbreviation"], - if: ["Condition", "Preposition"], - closer: "Comparative", - closest: "Superlative", - much: "Adverb", - may: "Modal", - babysat: "PastTense", - blew: "PastTense", - drank: "PastTense", - drove: "PastTense", - forgave: "PastTense", - skiied: "PastTense", - spilt: "PastTense", - stung: "PastTense", - swam: "PastTense", - swung: "PastTense", - guaranteed: "PastTense", - shrunk: "PastTense", - nears: "PresentTense", - nearing: "Gerund", - neared: "PastTense", - no: ["Negative", "Expression"] -}; -var misc_default2 = misc; - -// node_modules/compromise/src/2-two/preTagger/model/lexicon/emoticons.js -var emoticons_default = [ - ":(", - ":)", - ":P", - ":p", - ":O", - ";(", - ";)", - ";P", - ";p", - ";O", - ":3", - ":|", - ":/", - ":\\", - ":$", - ":*", - ":@", - ":-(", - ":-)", - ":-P", - ":-p", - ":-O", - ":-3", - ":-|", - ":-/", - ":-\\", - ":-$", - ":-*", - ":-@", - ":^(", - ":^)", - ":^P", - ":^p", - ":^O", - ":^3", - ":^|", - ":^/", - ":^\\", - ":^$", - ":^*", - ":^@", - "):", - "(:", - "$:", - "*:", - ")-:", - "(-:", - "$-:", - "*-:", - ")^:", - "(^:", - "$^:", - "*^:", - "<3", - " { - let wordsObj = unpack_default(data_default[tag]); - if (!hasSwitch.test(tag)) { - Object.keys(wordsObj).forEach((w) => { - lexicon3[w] = tag; - }); - return; - } - Object.keys(wordsObj).forEach((w) => { - switches[w] = tag; - if (tag === "Noun|Verb") { - let plural2 = toPlural_default(w, tmpModel); - switches[plural2] = "Plural|Verb"; - } - }); -}); -emoticons_default.forEach((str) => lexicon3[str] = "Emoticon"); -delete lexicon3[""]; -delete lexicon3[null]; -delete lexicon3[" "]; - -// node_modules/compromise/src/2-two/preTagger/model/clues/_adj.js -var jj = "Adjective"; -var adj_default = { - beforeTags: { - Determiner: jj, - Possessive: jj, - Hyphenated: jj - }, - afterTags: { - Adjective: jj - }, - beforeWords: { - seem: jj, - seemed: jj, - seems: jj, - feel: jj, - feels: jj, - felt: jj, - stay: jj, - appear: jj, - appears: jj, - appeared: jj, - also: jj, - over: jj, - under: jj, - too: jj, - it: jj, - but: jj, - still: jj, - really: jj, - quite: jj, - well: jj, - very: jj, - how: jj, - deeply: jj, - hella: jj, - profoundly: jj, - extremely: jj, - so: jj, - badly: jj, - mostly: jj, - totally: jj, - awfully: jj, - rather: jj, - nothing: jj, - something: jj, - anything: jj, - not: jj, - me: jj, - is: jj - }, - afterWords: { - too: jj, - also: jj, - or: jj - } -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/_gerund.js -var g2 = "Gerund"; -var gerund_default = { - beforeTags: { - Adverb: g2, - Preposition: g2, - Conjunction: g2 - }, - afterTags: { - Adverb: g2, - Possessive: g2, - Person: g2, - Pronoun: g2, - Determiner: g2, - Copula: g2, - Preposition: g2, - Conjunction: g2, - Comparative: g2 - }, - beforeWords: { - been: g2, - keep: g2, - continue: g2, - stop: g2, - am: g2, - be: g2, - me: g2, - began: g2, - start: g2, - starts: g2, - started: g2, - stops: g2, - stopped: g2, - help: g2, - helps: g2, - avoid: g2, - avoids: g2, - love: g2, - loves: g2, - loved: g2, - hate: g2, - hates: g2, - hated: g2 - }, - afterWords: { - you: g2, - me: g2, - her: g2, - him: g2, - them: g2, - their: g2, - it: g2, - this: g2, - there: g2, - on: g2, - about: g2, - for: g2 - } -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/adj-gerund.js -var clue = { - beforeTags: Object.assign({}, adj_default.beforeTags, gerund_default.beforeTags, { - Imperative: "Gerund", - Infinitive: "Adjective", - PresentTense: "Gerund", - Plural: "Gerund" - }), - afterTags: Object.assign({}, adj_default.afterTags, gerund_default.afterTags, { - Singular: "Adjective" - }), - beforeWords: Object.assign({}, adj_default.beforeWords, gerund_default.beforeWords, { - is: "Adjective", - was: "Adjective", - of: "Adjective", - suggest: "Gerund", - recommend: "Gerund" - }), - afterWords: Object.assign({}, adj_default.afterWords, gerund_default.afterWords, { - to: "Gerund", - not: "Gerund", - the: "Gerund" - }) -}; -var adj_gerund_default = clue; - -// node_modules/compromise/src/2-two/preTagger/model/clues/_noun.js -var n2 = "Singular"; -var noun_default = { - beforeTags: { - Determiner: n2, - Possessive: n2, - Acronym: n2, - Noun: n2, - Adjective: n2, - PresentTense: n2, - Gerund: n2, - PastTense: n2, - Infinitive: n2, - Date: n2, - Ordinal: n2, - Demonym: n2 - }, - afterTags: { - Value: n2, - Modal: n2, - Copula: n2, - PresentTense: n2, - PastTense: n2, - Demonym: n2 - }, - beforeWords: { - the: n2, - with: n2, - without: n2, - of: n2, - for: n2, - any: n2, - all: n2, - on: n2, - cut: n2, - cuts: n2, - increase: n2, - decrease: n2, - raise: n2, - drop: n2, - save: n2, - saved: n2, - saves: n2, - make: n2, - makes: n2, - made: n2, - minus: n2, - plus: n2, - than: n2, - another: n2, - versus: n2, - neither: n2, - about: n2, - favorite: n2, - best: n2, - daily: n2, - weekly: n2, - linear: n2, - binary: n2, - mobile: n2, - lexical: n2, - technical: n2, - computer: n2, - scientific: n2, - security: n2, - government: n2, - popular: n2, - formal: n2, - no: n2, - more: n2, - one: n2 - }, - afterWords: { - of: n2, - system: n2, - aid: n2, - method: n2, - utility: n2, - tool: n2, - reform: n2, - therapy: n2, - philosophy: n2, - room: n2, - authority: n2, - says: n2, - said: n2, - wants: n2, - wanted: n2, - is: n2, - can: n2, - wise: n2 - } -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/adj-noun.js -var misc2 = { - beforeTags: { - Determiner: void 0, - Cardinal: "Noun", - PhrasalVerb: "Adjective" - } -}; -var clue2 = { - beforeTags: Object.assign({}, adj_default.beforeTags, noun_default.beforeTags, misc2.beforeTags), - afterTags: Object.assign({}, adj_default.afterTags, noun_default.afterTags), - beforeWords: Object.assign({}, adj_default.beforeWords, noun_default.beforeWords, { - are: "Adjective", - is: "Adjective", - was: "Adjective", - be: "Adjective", - off: "Adjective", - out: "Adjective" - }), - afterWords: Object.assign({}, adj_default.afterWords, noun_default.afterWords) -}; -var adj_noun_default = clue2; - -// node_modules/compromise/src/2-two/preTagger/model/clues/adj-past.js -var past = "PastTense"; -var adjPast = { - beforeTags: { - Adverb: past, - Pronoun: past, - ProperNoun: past, - Auxiliary: past, - Noun: past - }, - afterTags: { - Possessive: past, - Pronoun: past, - Determiner: past, - Adverb: past, - Comparative: past, - Date: past, - Gerund: past - }, - beforeWords: { - be: past, - who: past, - get: "Adjective", - had: past, - has: past, - have: past, - been: past, - it: past, - as: past, - for: "Adjective" - }, - afterWords: { - by: past, - back: past, - out: past, - in: past, - up: past, - down: past, - before: past, - after: past, - for: past, - the: past, - with: past, - as: past, - on: past, - at: past, - between: past, - to: past, - into: past, - us: past, - them: past, - me: past - } -}; -var adj_past_default = { - beforeTags: Object.assign({}, adj_default.beforeTags, adjPast.beforeTags), - afterTags: Object.assign({}, adj_default.afterTags, adjPast.afterTags), - beforeWords: Object.assign({}, adj_default.beforeWords, adjPast.beforeWords), - afterWords: Object.assign({}, adj_default.afterWords, adjPast.afterWords) -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/_verb.js -var v = "Infinitive"; -var verb_default = { - beforeTags: { - Modal: v, - Adverb: v, - Negative: v, - Plural: v - }, - afterTags: { - Determiner: v, - Adverb: v, - Possessive: v, - Reflexive: v, - Preposition: v, - Cardinal: v, - Comparative: v, - Superlative: v - }, - beforeWords: { - i: v, - we: v, - you: v, - they: v, - to: v, - please: v, - will: v, - have: v, - had: v, - would: v, - could: v, - should: v, - do: v, - did: v, - does: v, - can: v, - must: v, - us: v, - me: v, - let: v, - even: v, - when: v, - help: v, - he: v, - she: v, - it: v, - being: v, - bi: v, - co: v, - contra: v, - de: v, - inter: v, - intra: v, - mis: v, - pre: v, - out: v, - counter: v - }, - afterWords: { - the: v, - me: v, - you: v, - him: v, - us: v, - her: v, - them: v, - it: v, - himself: v, - herself: v, - itself: v, - myself: v, - ourselves: v, - themselves: v, - something: v, - anything: v, - a: v, - an: v, - up: v, - down: v, - by: v, - out: v, - off: v, - under: v, - what: v, - all: v, - to: v, - because: v, - although: v, - after: v, - before: v, - how: v, - otherwise: v, - together: v, - though: v, - into: v, - yet: v, - more: v, - here: v, - there: v - } -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/adj-present.js -var misc3 = { - afterTags: { - Noun: "Adjective", - Conjunction: void 0 - } -}; -var clue3 = { - beforeTags: Object.assign({}, adj_default.beforeTags, verb_default.beforeTags, { - Adverb: void 0, - Negative: void 0 - }), - afterTags: Object.assign({}, adj_default.afterTags, verb_default.afterTags, misc3.afterTags), - beforeWords: Object.assign({}, adj_default.beforeWords, verb_default.beforeWords, { - have: void 0, - had: void 0, - not: void 0, - went: "Adjective", - goes: "Adjective", - got: "Adjective", - be: "Adjective" - }), - afterWords: Object.assign({}, adj_default.afterWords, verb_default.afterWords, { - to: void 0, - as: "Adjective" - }) -}; -var adj_present_default = clue3; - -// node_modules/compromise/src/2-two/preTagger/model/clues/noun-gerund.js -var misc4 = { - beforeTags: { - Copula: "Gerund", - PastTense: "Gerund", - PresentTense: "Gerund", - Infinitive: "Gerund" - }, - afterTags: {}, - beforeWords: { - are: "Gerund", - were: "Gerund", - be: "Gerund", - no: "Gerund", - without: "Gerund", - you: "Gerund", - we: "Gerund", - they: "Gerund", - he: "Gerund", - she: "Gerund", - us: "Gerund", - them: "Gerund" - }, - afterWords: { - the: "Gerund", - this: "Gerund", - that: "Gerund", - me: "Gerund", - us: "Gerund", - them: "Gerund" - } -}; -var clue4 = { - beforeTags: Object.assign({}, gerund_default.beforeTags, noun_default.beforeTags, misc4.beforeTags), - afterTags: Object.assign({}, gerund_default.afterTags, noun_default.afterTags, misc4.afterTags), - beforeWords: Object.assign({}, gerund_default.beforeWords, noun_default.beforeWords, misc4.beforeWords), - afterWords: Object.assign({}, gerund_default.afterWords, noun_default.afterWords, misc4.afterWords) -}; -var noun_gerund_default = clue4; - -// node_modules/compromise/src/2-two/preTagger/model/clues/noun-verb.js -var nn = "Singular"; -var vb = "Infinitive"; -var clue5 = { - beforeTags: Object.assign({}, verb_default.beforeTags, noun_default.beforeTags, { - Adjective: nn, - Particle: nn - }), - afterTags: Object.assign({}, verb_default.afterTags, noun_default.afterTags, { - ProperNoun: vb, - Gerund: vb, - Adjective: vb, - Copula: nn - }), - beforeWords: Object.assign({}, verb_default.beforeWords, noun_default.beforeWords, { - is: nn, - was: nn, - of: nn, - have: null - }), - afterWords: Object.assign({}, verb_default.afterWords, noun_default.afterWords, { - instead: vb, - about: vb, - his: vb, - her: vb, - to: null, - by: null, - in: null - }) -}; -var noun_verb_default = clue5; - -// node_modules/compromise/src/2-two/preTagger/model/clues/_person.js -var p2 = "Person"; -var person_default = { - beforeTags: { - Honorific: p2, - Person: p2 - }, - afterTags: { - Person: p2, - ProperNoun: p2, - Verb: p2 - }, - ownTags: { - ProperNoun: p2 - }, - beforeWords: { - hi: p2, - hey: p2, - yo: p2, - dear: p2, - hello: p2 - }, - afterWords: { - said: p2, - says: p2, - told: p2, - tells: p2, - feels: p2, - felt: p2, - seems: p2, - thinks: p2, - thought: p2, - spends: p2, - spendt: p2, - plays: p2, - played: p2, - sing: p2, - sang: p2, - learn: p2, - learned: p2, - wants: p2, - wanted: p2 - } -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/person-date.js -var m = "Month"; -var month = { - beforeTags: { - Date: m, - Value: m - }, - afterTags: { - Date: m, - Value: m - }, - beforeWords: { - by: m, - in: m, - on: m, - during: m, - after: m, - before: m, - between: m, - until: m, - til: m, - sometime: m, - of: m, - this: m, - next: m, - last: m, - previous: m, - following: m - }, - afterWords: { - sometime: m, - in: m, - of: m, - until: m, - the: m - } -}; -var person_date_default = { - beforeTags: Object.assign({}, person_default.beforeTags, month.beforeTags), - afterTags: Object.assign({}, person_default.afterTags, month.afterTags), - beforeWords: Object.assign({}, person_default.beforeWords, month.beforeWords), - afterWords: Object.assign({}, person_default.afterWords, month.afterWords) -}; - -// node_modules/compromise/src/2-two/preTagger/model/clues/person-noun.js -var clue6 = { - beforeTags: Object.assign({}, noun_default.beforeTags, person_default.beforeTags), - afterTags: Object.assign({}, noun_default.afterTags, person_default.afterTags), - beforeWords: Object.assign({}, noun_default.beforeWords, person_default.beforeWords, { i: "Infinitive", we: "Infinitive" }), - afterWords: Object.assign({}, noun_default.afterWords, person_default.afterWords) -}; -var person_noun_default = clue6; - -// node_modules/compromise/src/2-two/preTagger/model/clues/person-verb.js -var clues = { - beforeTags: Object.assign({}, noun_default.beforeTags, person_default.beforeTags, verb_default.beforeTags), - afterTags: Object.assign({}, noun_default.afterTags, person_default.afterTags, verb_default.afterTags), - beforeWords: Object.assign({}, noun_default.beforeWords, person_default.beforeWords, verb_default.beforeWords), - afterWords: Object.assign({}, noun_default.afterWords, person_default.afterWords, verb_default.afterWords) -}; -var person_verb_default = clues; - -// node_modules/compromise/src/2-two/preTagger/model/clues/person-place.js -var p3 = "Place"; -var place = { - beforeTags: { - Place: p3 - }, - afterTags: { - Place: p3, - Abbreviation: p3 - }, - beforeWords: { - in: p3, - by: p3, - near: p3, - from: p3, - to: p3 - }, - afterWords: { - in: p3, - by: p3, - near: p3, - from: p3, - to: p3, - government: p3, - council: p3, - region: p3, - city: p3 - } -}; -var clue7 = { - beforeTags: Object.assign({}, place.beforeTags, person_default.beforeTags), - afterTags: Object.assign({}, place.afterTags, person_default.afterTags), - beforeWords: Object.assign({}, place.beforeWords, person_default.beforeWords), - afterWords: Object.assign({}, place.afterWords, person_default.afterWords) -}; -var person_place_default = clue7; - -// node_modules/compromise/src/2-two/preTagger/model/clues/unit-noun.js -var un = "Unit"; -var clues2 = { - beforeTags: { Value: un }, - afterTags: {}, - beforeWords: { - per: un, - every: un, - each: un, - square: un, - cubic: un, - sq: un, - metric: un - }, - afterWords: { - per: un, - squared: un, - cubed: un, - long: un - } -}; -var unit_noun_default = clues2; - -// node_modules/compromise/src/2-two/preTagger/model/clues/index.js -var clues3 = { - "Adj|Gerund": adj_gerund_default, - "Adj|Noun": adj_noun_default, - "Adj|Past": adj_past_default, - "Adj|Present": adj_present_default, - "Noun|Verb": noun_verb_default, - "Noun|Gerund": noun_gerund_default, - "Person|Noun": person_noun_default, - "Person|Date": person_date_default, - "Person|Verb": person_verb_default, - "Person|Place": person_place_default, - "Unit|Noun": unit_noun_default -}; -var copy = (obj, more) => { - let res = Object.keys(obj).reduce((h2, k2) => { - h2[k2] = obj[k2] === "Infinitive" ? "PresentTense" : "Plural"; - return h2; - }, {}); - return Object.assign(res, more); -}; -clues3["Plural|Verb"] = { - beforeWords: copy(clues3["Noun|Verb"].beforeWords, { - had: "Plural", - have: "Plural" - }), - afterWords: copy(clues3["Noun|Verb"].afterWords, { - his: "PresentTense", - her: "PresentTense", - its: "PresentTense", - in: null, - to: null, - is: "PresentTense", - by: "PresentTense" - }), - beforeTags: copy(clues3["Noun|Verb"].beforeTags, { - Conjunction: "PresentTense", - Noun: void 0, - ProperNoun: "PresentTense" - }), - afterTags: copy(clues3["Noun|Verb"].afterTags, { - Gerund: "Plural", - Noun: "PresentTense", - Value: "PresentTense" - }) -}; -var clues_default = clues3; - -// node_modules/compromise/src/2-two/preTagger/model/patterns/suffixes.js -var Adj = "Adjective"; -var Inf = "Infinitive"; -var Pres = "PresentTense"; -var Sing = "Singular"; -var Past = "PastTense"; -var Avb = "Adverb"; -var Plrl = "Plural"; -var Actor = "Actor"; -var Vb = "Verb"; -var Noun = "Noun"; -var Last = "LastName"; -var Modal = "Modal"; -var Place = "Place"; -var Prt = "Participle"; -var suffixes_default2 = [ - null, - null, - { - ea: Sing, - ia: Noun, - ic: Adj, - ly: Avb, - "'n": Vb, - "'t": Vb - }, - { - oed: Past, - ued: Past, - xed: Past, - " so": Avb, - "'ll": Modal, - "'re": "Copula", - azy: Adj, - eer: Noun, - end: Vb, - ped: Past, - ffy: Adj, - ify: Inf, - ing: "Gerund", - ize: Inf, - ibe: Inf, - lar: Adj, - mum: Adj, - nes: Pres, - nny: Adj, - ous: Adj, - que: Adj, - ger: Noun, - ber: Noun, - rol: Sing, - sis: Sing, - ogy: Sing, - oid: Sing, - ian: Sing, - zes: Pres, - eld: Past, - ken: Prt, - ven: Prt, - ten: Prt, - ect: Inf, - ict: Inf, - ign: Inf, - ful: Adj, - bal: Adj - }, - { - amed: Past, - aped: Past, - ched: Past, - lked: Past, - rked: Past, - reed: Past, - nded: Past, - mned: Adj, - cted: Past, - dged: Past, - ield: Sing, - akis: Last, - cede: Inf, - chuk: Last, - czyk: Last, - ects: Pres, - ends: Vb, - enko: Last, - ette: Sing, - iary: Sing, - wner: Sing, - fies: Pres, - fore: Avb, - gate: Inf, - gone: Adj, - ices: Plrl, - ints: Plrl, - ruct: Inf, - ines: Plrl, - ions: Plrl, - ners: Plrl, - pers: Plrl, - lers: Plrl, - less: Adj, - llen: Adj, - made: Adj, - nsen: Last, - oses: Pres, - ould: Modal, - some: Adj, - sson: Last, - ians: Plrl, - tion: Sing, - tage: Noun, - ique: Sing, - tive: Adj, - tors: Noun, - vice: Sing, - lier: Sing, - fier: Sing, - wned: Past, - gent: Sing, - tist: Actor, - pist: Actor, - rist: Actor, - mist: Actor, - yist: Actor, - vist: Actor, - ists: Actor, - lite: Sing, - site: Sing, - rite: Sing, - mite: Sing, - bite: Sing, - mate: Sing, - date: Sing, - ndal: Sing, - vent: Sing, - uist: Actor, - gist: Actor, - note: Sing, - cide: Sing, - ence: Sing, - wide: Adj, - vide: Inf, - ract: Inf, - duce: Inf, - pose: Inf, - eive: Inf, - lyze: Inf, - lyse: Inf, - iant: Adj, - nary: Adj - }, - { - elist: Actor, - holic: Sing, - phite: Sing, - tized: Past, - urned: Past, - eased: Past, - ances: Plrl, - bound: Adj, - ettes: Plrl, - fully: Avb, - ishes: Pres, - ities: Plrl, - marek: Last, - nssen: Last, - ology: Noun, - osome: Sing, - tment: Sing, - ports: Plrl, - rough: Adj, - tches: Pres, - tieth: "Ordinal", - tures: Plrl, - wards: Avb, - where: Avb, - archy: Noun, - pathy: Noun, - opoly: Noun, - embly: Noun, - phate: Noun, - ndent: Sing, - scent: Sing, - onist: Actor, - anist: Actor, - alist: Actor, - olist: Actor, - icist: Actor, - ounce: Inf, - iable: Adj, - borne: Adj, - gnant: Adj, - inant: Adj, - igent: Adj, - atory: Adj, - rient: Sing, - dient: Sing - }, - { - auskas: Last, - parent: Sing, - cedent: Sing, - ionary: Sing, - cklist: Sing, - keeper: Actor, - logist: Actor, - teenth: "Value" - }, - { - logists: Actor, - opoulos: Last, - borough: Place, - sdottir: Last - } -]; - -// node_modules/compromise/src/2-two/preTagger/model/patterns/prefixes.js -var Adj2 = "Adjective"; -var Noun2 = "Noun"; -var Verb = "Verb"; -var prefixes_default2 = [ - null, - null, - {}, - { - neo: Noun2, - bio: Noun2, - "de-": Verb, - "re-": Verb, - "un-": Verb - }, - { - anti: Noun2, - auto: Noun2, - faux: Adj2, - hexa: Noun2, - kilo: Noun2, - mono: Noun2, - nano: Noun2, - octa: Noun2, - poly: Noun2, - semi: Adj2, - tele: Noun2, - "pro-": Adj2, - "mis-": Verb, - "dis-": Verb, - "pre-": Adj2 - }, - { - anglo: Noun2, - centi: Noun2, - ethno: Noun2, - ferro: Noun2, - grand: Noun2, - hepta: Noun2, - hydro: Noun2, - intro: Noun2, - macro: Noun2, - micro: Noun2, - milli: Noun2, - nitro: Noun2, - penta: Noun2, - quasi: Adj2, - radio: Noun2, - tetra: Noun2, - "omni-": Adj2, - "post-": Adj2 - }, - { - pseudo: Adj2, - "extra-": Adj2, - "hyper-": Adj2, - "inter-": Adj2, - "intra-": Adj2, - "deca-": Adj2 - }, - { - electro: Noun2 - } -]; - -// node_modules/compromise/src/2-two/preTagger/model/patterns/endsWith.js -var Adj3 = "Adjective"; -var Inf2 = "Infinitive"; -var Pres2 = "PresentTense"; -var Sing2 = "Singular"; -var Past2 = "PastTense"; -var Adverb = "Adverb"; -var Exp = "Expression"; -var Actor2 = "Actor"; -var Verb2 = "Verb"; -var Noun3 = "Noun"; -var Last2 = "LastName"; -var endsWith_default = { - a: [ - [/.[aeiou]na$/, Noun3, "tuna"], - [/.[oau][wvl]ska$/, Last2], - [/.[^aeiou]ica$/, Sing2, "harmonica"], - [/^([hyj]a+)+$/, Exp, "haha"] - ], - c: [[/.[^aeiou]ic$/, Adj3]], - d: [ - [/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/, Past2, "popped"], - [/.[aeo]{2}[bdgmnprvz]ed$/, Past2, "rammed"], - [/.[aeiou][sg]hed$/, Past2, "gushed"], - [/.[aeiou]red$/, Past2, "hired"], - [/.[aeiou]r?ried$/, Past2, "hurried"], - [/[^aeiou]ard$/, Sing2, "steward"], - [/[aeiou][^aeiou]id$/, Adj3, ""], - [/.[vrl]id$/, Adj3, "livid"], - [/..led$/, Past2, "hurled"], - [/.[iao]sed$/, Past2, ""], - [/[aeiou]n?[cs]ed$/, Past2, ""], - [/[aeiou][rl]?[mnf]ed$/, Past2, ""], - [/[aeiou][ns]?c?ked$/, Past2, "bunked"], - [/[aeiou]gned$/, Past2], - [/[aeiou][nl]?ged$/, Past2], - [/.[tdbwxyz]ed$/, Past2], - [/[^aeiou][aeiou][tvx]ed$/, Past2], - [/.[cdflmnprstv]ied$/, Past2, "emptied"] - ], - e: [ - [/.[lnr]ize$/, Inf2, "antagonize"], - [/.[^aeiou]ise$/, Inf2, "antagonise"], - [/.[aeiou]te$/, Inf2, "bite"], - [/.[^aeiou][ai]ble$/, Adj3, "fixable"], - [/.[^aeiou]eable$/, Adj3, "maleable"], - [/.[ts]ive$/, Adj3, "festive"], - [/[a-z]-like$/, Adj3, "woman-like"] - ], - h: [ - [/.[^aeiouf]ish$/, Adj3, "cornish"], - [/.v[iy]ch$/, Last2, "..ovich"], - [/^ug?h+$/, Exp, "ughh"], - [/^uh[ -]?oh$/, Exp, "uhoh"], - [/[a-z]-ish$/, Adj3, "cartoon-ish"] - ], - i: [[/.[oau][wvl]ski$/, Last2, "polish-male"]], - k: [ - [/^(k){2}$/, Exp, "kkkk"] - ], - l: [ - [/.[gl]ial$/, Adj3, "familial"], - [/.[^aeiou]ful$/, Adj3, "fitful"], - [/.[nrtumcd]al$/, Adj3, "natal"], - [/.[^aeiou][ei]al$/, Adj3, "familial"] - ], - m: [ - [/.[^aeiou]ium$/, Sing2, "magnesium"], - [/[^aeiou]ism$/, Sing2, "schism"], - [/^[hu]m+$/, Exp, "hmm"], - [/^\d+ ?[ap]m$/, "Date", "3am"] - ], - n: [ - [/.[lsrnpb]ian$/, Adj3, "republican"], - [/[^aeiou]ician$/, Actor2, "musician"], - [/[aeiou][ktrp]in'$/, "Gerund", "cookin'"] - ], - o: [ - [/^no+$/, Exp, "noooo"], - [/^(yo)+$/, Exp, "yoo"], - [/^wo{2,}[pt]?$/, Exp, "woop"] - ], - r: [ - [/.[bdfklmst]ler$/, "Noun"], - [/[aeiou][pns]er$/, Sing2], - [/[^i]fer$/, Inf2], - [/.[^aeiou][ao]pher$/, Actor2], - [/.[lk]er$/, "Noun"], - [/.ier$/, "Comparative"] - ], - t: [ - [/.[di]est$/, "Superlative"], - [/.[icldtgrv]ent$/, Adj3], - [/[aeiou].*ist$/, Adj3], - [/^[a-z]et$/, Verb2] - ], - s: [ - [/.[^aeiou]ises$/, Pres2], - [/.[rln]ates$/, Pres2], - [/.[^z]ens$/, Verb2], - [/.[lstrn]us$/, Sing2], - [/.[aeiou]sks$/, Pres2], - [/.[aeiou]kes$/, Pres2], - [/[aeiou][^aeiou]is$/, Sing2], - [/[a-z]'s$/, Noun3], - [/^yes+$/, Exp] - ], - v: [ - [/.[^aeiou][ai][kln]ov$/, Last2] - ], - y: [ - [/.[cts]hy$/, Adj3], - [/.[st]ty$/, Adj3], - [/.[tnl]ary$/, Adj3], - [/.[oe]ry$/, Sing2], - [/[rdntkbhs]ly$/, Adverb], - [/.(gg|bb|zz)ly$/, Adj3], - [/...lly$/, Adverb], - [/.[gk]y$/, Adj3], - [/[bszmp]{2}y$/, Adj3], - [/.[ai]my$/, Adj3], - [/[ea]{2}zy$/, Adj3], - [/.[^aeiou]ity$/, Sing2] - ] -}; - -// node_modules/compromise/src/2-two/preTagger/model/patterns/neighbours.js -var vb2 = "Verb"; -var nn2 = "Noun"; -var neighbours_default = { - leftTags: [ - ["Adjective", nn2], - ["Possessive", nn2], - ["Determiner", nn2], - ["Adverb", vb2], - ["Pronoun", vb2], - ["Value", nn2], - ["Ordinal", nn2], - ["Modal", vb2], - ["Superlative", nn2], - ["Demonym", nn2], - ["Honorific", "Person"] - ], - leftWords: [ - ["i", vb2], - ["first", nn2], - ["it", vb2], - ["there", vb2], - ["not", vb2], - ["because", nn2], - ["if", nn2], - ["but", nn2], - ["who", vb2], - ["this", nn2], - ["his", nn2], - ["when", nn2], - ["you", vb2], - ["very", "Adjective"], - ["old", nn2], - ["never", vb2], - ["before", nn2], - ["a", nn2], - ["the", nn2], - ["been", vb2] - ], - rightTags: [ - ["Copula", nn2], - ["PastTense", nn2], - ["Conjunction", nn2], - ["Modal", nn2] - ], - rightWords: [ - ["there", vb2], - ["me", vb2], - ["man", "Adjective"], - ["him", vb2], - ["it", vb2], - ["were", nn2], - ["took", nn2], - ["himself", vb2], - ["went", nn2], - ["who", nn2], - ["jr", "Person"] - ] -}; - -// node_modules/compromise/src/2-two/preTagger/model/models/_data.js -var data_default2 = { - "Comparative": { - "rules": "ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r", - "exceptions": "good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r", - "rev": "arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y" - }, - "Gerund": { - "rules": "omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|", - "exceptions": "being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3", - "rev": "lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing" - }, - "Participle": { - "rules": "roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink", - "exceptions": "been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y", - "rev": "uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n" - }, - "PastTense": { - "rules": "een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow", - "exceptions": "was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow", - "rev": "egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed" - }, - "PresentTense": { - "rules": "as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|", - "exceptions": "are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve", - "rev": "uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s" - }, - "Superlative": { - "rules": "east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st", - "exceptions": "good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st", - "rev": "east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y" - } -}; - -// node_modules/suffix-thumb/src/convert/index.js -var prefix2 = /^.([0-9]+)/; -var getKeyVal = function(word, model5) { - let val = model5.exceptions[word]; - let m3 = val.match(prefix2); - if (m3 === null) { - return model5.exceptions[word]; - } - let num = Number(m3[1]) || 0; - let pre = word.substr(0, num); - return pre + val.replace(prefix2, ""); -}; -var getRules = function(word, rules2 = {}) { - let char = word[word.length - 1]; - let list4 = rules2[char] || []; - if (rules2[""]) { - list4 = list4.concat(rules2[""]); - } - return list4; -}; -var convert = function(word, model5, debug2) { - if (model5.exceptions.hasOwnProperty(word)) { - if (debug2) { - console.log("exception, ", word, model5.exceptions[word]); - } - return getKeyVal(word, model5); - } - let rules2 = model5.rules; - if (model5.reversed) { - rules2 = model5.rev; - } - rules2 = getRules(word, rules2); - for (let i3 = 0; i3 < rules2.length; i3 += 1) { - let suffix = rules2[i3][0]; - if (word.endsWith(suffix)) { - if (debug2) { - console.log("rule, ", rules2[i3]); - } - let reg = new RegExp(suffix + "$"); - return word.replace(reg, rules2[i3][1]); - } - } - if (debug2) { - console.log(" x - " + word); - } - return word; -}; -var convert_default = convert; - -// node_modules/suffix-thumb/src/_lib.js -var indexRules = function(rules2) { - let byChar = {}; - rules2.forEach((a2) => { - let suff = a2[0] || ""; - let char = suff[suff.length - 1] || ""; - byChar[char] = byChar[char] || []; - byChar[char].push(a2); - }); - return byChar; -}; - -// node_modules/suffix-thumb/src/compress/uncompress.js -var prefix3 = /^([0-9]+)/; -var expand3 = function(key = "", val = "") { - val = String(val); - let m3 = val.match(prefix3); - if (m3 === null) { - return [key, val]; - } - let num = Number(m3[1]) || 0; - let pre = key.substring(0, num); - let full = pre + val.replace(prefix3, ""); - return [key, full]; -}; -var toArray2 = function(txt) { - const pipe = /\|/; - return txt.split(/,/).map((str) => { - let a2 = str.split(pipe); - return expand3(a2[0], a2[1]); - }); -}; -var uncompress = function(model5 = {}) { - model5 = Object.assign({}, model5); - model5.rules = toArray2(model5.rules); - model5.rules = indexRules(model5.rules); - if (model5.rev) { - model5.rev = toArray2(model5.rev); - model5.rev = indexRules(model5.rev); - } - model5.exceptions = toArray2(model5.exceptions); - model5.exceptions = model5.exceptions.reduce((h2, a2) => { - h2[a2[0]] = a2[1]; - return h2; - }, {}); - return model5; -}; -var uncompress_default = uncompress; - -// node_modules/suffix-thumb/src/reverse/index.js -var reverseObj = function(obj) { - return Object.entries(obj).reduce((h2, a2) => { - h2[a2[1]] = a2[0]; - return h2; - }, {}); -}; -var reverse2 = function(model5) { - let { rules: rules2, exceptions: exceptions5, rev } = model5; - exceptions5 = reverseObj(exceptions5); - return { - reversed: !Boolean(model5.reversed), - rules: rules2, - exceptions: exceptions5, - rev - }; -}; -var reverse_default = reverse2; - -// node_modules/compromise/src/2-two/preTagger/model/models/index.js -var fromPast = uncompress_default(data_default2.PastTense); -var fromPresent = uncompress_default(data_default2.PresentTense); -var fromGerund = uncompress_default(data_default2.Gerund); -var fromParticiple = uncompress_default(data_default2.Participle); -var toPast = reverse_default(fromPast); -var toPresent = reverse_default(fromPresent); -var toGerund = reverse_default(fromGerund); -var toParticiple = reverse_default(fromParticiple); -var toComparative = uncompress_default(data_default2.Comparative); -var toSuperlative = uncompress_default(data_default2.Superlative); -var fromComparative = reverse_default(toComparative); -var fromSuperlative = reverse_default(toSuperlative); -var models_default = { - fromPast, - fromPresent, - fromGerund, - fromParticiple, - toPast, - toPresent, - toGerund, - toParticiple, - toComparative, - toSuperlative, - fromComparative, - fromSuperlative -}; - -// node_modules/compromise/src/2-two/preTagger/model/regex/regex-normal.js -var regex_normal_default = [ - [/^[\w.]+@[\w.]+\.[a-z]{2,3}$/, "Email"], - [/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/, "Url", "http.."], - [/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/, "Url", ".com"], - [/^[PMCE]ST$/, "Timezone", "EST"], - [/^ma?c'.*/, "LastName", "mc'neil"], - [/^o'[drlkn].*/, "LastName", "o'connor"], - [/^ma?cd[aeiou]/, "LastName", "mcdonald"], - [/^(lol)+[sz]$/, "Expression", "lol"], - [/^wo{2,}a*h?$/, "Expression", "wooah"], - [/^(hee?){2,}h?$/, "Expression", "hehe"], - [/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/, "Verb", "un-vite"], - [/^(m|k|cm|km)\/(s|h|hr)$/, "Unit", "5 k/m"], - [/^(ug|ng|mg)\/(l|m3|ft3)$/, "Unit", "ug/L"] -]; - -// node_modules/compromise/src/2-two/preTagger/model/regex/regex-text.js -var regex_text_default = [ - [/^#[\p{Number}_]*\p{Letter}/u, "HashTag"], - [/^@\w{2,}$/, "AtMention"], - [/^([A-Z]\.){2}[A-Z]?/i, ["Acronym", "Noun"], "F.B.I"], - [/.{3}[lkmnp]in['‘’‛‵′`´]$/, "Gerund", "chillin'"], - [/.{4}s['‘’‛‵′`´]$/, "Possessive", "flanders'"], - [/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u, "Emoji", "emoji-class"] -]; - -// node_modules/compromise/src/2-two/preTagger/model/regex/regex-numbers.js -var regex_numbers_default = [ - [/^@1?[0-9](am|pm)$/i, "Time", "3pm"], - [/^@1?[0-9]:[0-9]{2}(am|pm)?$/i, "Time", "3:30pm"], - [/^'[0-9]{2}$/, "Year"], - [/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/, "Time", "3:12:31"], - [/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i, "Time", "1:12pm"], - [/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i, "Time", "1:12:31pm"], - [/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i, "Date", "iso-date"], - [/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/, "Date", "iso-dash"], - [/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/, "Date", "iso-slash"], - [/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/, "Date", "iso-dot"], - [/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i, "Date", "12-dec-2019"], - [/^utc ?[+-]?[0-9]+$/, "Timezone", "utc-9"], - [/^(gmt|utc)[+-][0-9]{1,2}$/i, "Timezone", "gmt-3"], - [/^[0-9]{3}-[0-9]{4}$/, "PhoneNumber", "421-0029"], - [/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/, "PhoneNumber", "1-800-"], - [ - /^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u, - ["Money", "Value"], - "$5.30" - ], - [ - /^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u, - ["Money", "Value"], - "5.30\xA3" - ], - [/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i, ["Money", "Value"], "$400usd"], - [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/, ["Cardinal", "NumericValue"], "5,999"], - [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/, ["Ordinal", "NumericValue"], "53rd"], - [/^\.[0-9]+\+?$/, ["Cardinal", "NumericValue"], ".73th"], - [/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/, ["Percent", "Cardinal", "NumericValue"], "-4%"], - [/^\.[0-9]+%$/, ["Percent", "Cardinal", "NumericValue"], ".3%"], - [/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/, ["Fraction", "NumericValue"], "2/3rds"], - [/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/, ["Value", "NumberRange"], "3-4"], - [/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/, ["Time", "NumberRange"], "3-4pm"], - [/^[0-9.]+([a-z°]{1,4})$/, "NumericValue", "9km"] -]; - -// node_modules/compromise/src/2-two/preTagger/model/orgWords.js -var orgWords_default = [ - "academy", - "administration", - "agence", - "agences", - "agencies", - "agency", - "airlines", - "airways", - "army", - "assoc", - "associates", - "association", - "assurance", - "authority", - "autorite", - "aviation", - "bank", - "banque", - "board", - "boys", - "brands", - "brewery", - "brotherhood", - "brothers", - "bureau", - "cafe", - "co", - "caisse", - "capital", - "care", - "cathedral", - "center", - "centre", - "chemicals", - "choir", - "chronicle", - "church", - "circus", - "clinic", - "clinique", - "club", - "co", - "coalition", - "coffee", - "collective", - "college", - "commission", - "committee", - "communications", - "community", - "company", - "comprehensive", - "computers", - "confederation", - "conference", - "conseil", - "consulting", - "containers", - "corporation", - "corps", - "corp", - "council", - "crew", - "data", - "departement", - "department", - "departments", - "design", - "development", - "directorate", - "division", - "drilling", - "education", - "eglise", - "electric", - "electricity", - "energy", - "ensemble", - "enterprise", - "enterprises", - "entertainment", - "estate", - "etat", - "faculty", - "federation", - "financial", - "fm", - "foundation", - "fund", - "gas", - "gazette", - "girls", - "government", - "group", - "guild", - "herald", - "holdings", - "hospital", - "hotel", - "hotels", - "inc", - "industries", - "institut", - "institute", - "institutes", - "insurance", - "international", - "interstate", - "investment", - "investments", - "investors", - "journal", - "laboratory", - "labs", - "llc", - "ltd", - "limited", - "machines", - "magazine", - "management", - "marine", - "marketing", - "markets", - "media", - "memorial", - "ministere", - "ministry", - "military", - "mobile", - "motor", - "motors", - "musee", - "museum", - "news", - "observatory", - "office", - "oil", - "optical", - "orchestra", - "organization", - "partners", - "partnership", - "petrol", - "petroleum", - "pharmacare", - "pharmaceutical", - "pharmaceuticals", - "pizza", - "plc", - "police", - "polytechnic", - "post", - "power", - "press", - "productions", - "quartet", - "radio", - "reserve", - "resources", - "restaurant", - "restaurants", - "savings", - "school", - "securities", - "service", - "services", - "societe", - "society", - "sons", - "subcommittee", - "syndicat", - "systems", - "telecommunications", - "telegraph", - "television", - "times", - "tribunal", - "tv", - "union", - "university", - "utilities", - "workers" -].reduce((h2, str) => { - h2[str] = true; - return h2; -}, {}); - -// node_modules/compromise/src/2-two/preTagger/methods/transform/nouns/toSingular/_rules.js -var rules_default2 = [ - [/([^v])ies$/i, "$1y"], - [/(ise)s$/i, "$1"], - [/(kn|[^o]l|w)ives$/i, "$1ife"], - [/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i, "$1f"], - [/^(dwar|handkerchie|hoo|scar|whar)ves$/i, "$1f"], - [/(antenn|formul|nebul|vertebr|vit)ae$/i, "$1a"], - [/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i, "$1us"], - [/(buffal|tomat|tornad)(oes)$/i, "$1o"], - [/(ause)s$/i, "$1"], - [/(ease)s$/i, "$1"], - [/(ious)es$/i, "$1"], - [/(ouse)s$/i, "$1"], - [/(ose)s$/i, "$1"], - [/(..[aeiu]s)es$/i, "$1"], - [/(vert|ind|cort)(ices)$/i, "$1ex"], - [/(matr|append)(ices)$/i, "$1ix"], - [/([xo]|ch|ss|sh)es$/i, "$1"], - [/men$/i, "man"], - [/(n)ews$/i, "$1ews"], - [/([ti])a$/i, "$1um"], - [/([^aeiouy]|qu)ies$/i, "$1y"], - [/(s)eries$/i, "$1eries"], - [/(m)ovies$/i, "$1ovie"], - [/(cris|ax|test)es$/i, "$1is"], - [/(alias|status)es$/i, "$1"], - [/(ss)$/i, "$1"], - [/(ic)s$/i, "$1"], - [/s$/i, ""] -]; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/nouns/toSingular/index.js -var invertObj = function(obj) { - return Object.keys(obj).reduce((h2, k2) => { - h2[obj[k2]] = k2; - return h2; - }, {}); -}; -var toSingular = function(str, model5) { - const { irregularPlurals } = model5.two; - let invert = invertObj(irregularPlurals); - if (invert.hasOwnProperty(str)) { - return invert[str]; - } - for (let i3 = 0; i3 < rules_default2.length; i3++) { - if (rules_default2[i3][0].test(str) === true) { - str = str.replace(rules_default2[i3][0], rules_default2[i3][1]); - return str; - } - } - return str; -}; -var toSingular_default = toSingular; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/nouns/index.js -var all = function(str, model5) { - let arr = [str]; - let p4 = toPlural_default(str, model5); - if (p4 !== str) { - arr.push(p4); - } - let s3 = toSingular_default(str, model5); - if (s3 !== str) { - arr.push(s3); - } - return arr; -}; -var nouns_default2 = { toPlural: toPlural_default, toSingular: toSingular_default, all }; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/verbs/getTense/_guess.js -var guessVerb = { - Gerund: ["ing"], - Actor: ["erer"], - Infinitive: [ - "ate", - "ize", - "tion", - "rify", - "then", - "ress", - "ify", - "age", - "nce", - "ect", - "ise", - "ine", - "ish", - "ace", - "ash", - "ure", - "tch", - "end", - "ack", - "and", - "ute", - "ade", - "ock", - "ite", - "ase", - "ose", - "use", - "ive", - "int", - "nge", - "lay", - "est", - "ain", - "ant", - "ent", - "eed", - "er", - "le", - "unk", - "ung", - "upt", - "en" - ], - PastTense: ["ept", "ed", "lt", "nt", "ew", "ld"], - PresentTense: [ - "rks", - "cks", - "nks", - "ngs", - "mps", - "tes", - "zes", - "ers", - "les", - "acks", - "ends", - "ands", - "ocks", - "lays", - "eads", - "lls", - "els", - "ils", - "ows", - "nds", - "ays", - "ams", - "ars", - "ops", - "ffs", - "als", - "urs", - "lds", - "ews", - "ips", - "es", - "ts", - "ns" - ], - Participle: ["ken", "wn"] -}; -guessVerb = Object.keys(guessVerb).reduce((h2, k2) => { - guessVerb[k2].forEach((a2) => h2[a2] = k2); - return h2; -}, {}); -var guess_default = guessVerb; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/verbs/getTense/index.js -var getTense = function(str) { - let three = str.substring(str.length - 3); - if (guess_default.hasOwnProperty(three) === true) { - return guess_default[three]; - } - let two = str.substring(str.length - 2); - if (guess_default.hasOwnProperty(two) === true) { - return guess_default[two]; - } - let one = str.substring(str.length - 1); - if (one === "s") { - return "PresentTense"; - } - return null; -}; -var getTense_default = getTense; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/verbs/toInfinitive/index.js -var toParts = function(str, model5) { - let prefix6 = ""; - let prefixes2 = {}; - if (model5.one && model5.one.prefixes) { - prefixes2 = model5.one.prefixes; - } - let [verb, particle] = str.split(/ /); - if (particle && prefixes2[verb] === true) { - prefix6 = verb; - verb = particle; - particle = ""; - } - return { - prefix: prefix6, - verb, - particle - }; -}; -var copulaMap = { - are: "be", - were: "be", - been: "be", - is: "be", - am: "be", - was: "be", - be: "be", - being: "be" -}; -var toInfinitive = function(str, model5, tense) { - const { fromPast: fromPast2, fromPresent: fromPresent2, fromGerund: fromGerund2, fromParticiple: fromParticiple2 } = model5.two.models; - let { prefix: prefix6, verb, particle } = toParts(str, model5); - let inf = ""; - if (!tense) { - tense = getTense_default(str); - } - if (copulaMap.hasOwnProperty(str)) { - inf = copulaMap[str]; - } else if (tense === "Participle") { - inf = convert_default(verb, fromParticiple2); - } else if (tense === "PastTense") { - inf = convert_default(verb, fromPast2); - } else if (tense === "PresentTense") { - inf = convert_default(verb, fromPresent2); - } else if (tense === "Gerund") { - inf = convert_default(verb, fromGerund2); - } else { - return str; - } - if (particle) { - inf += " " + particle; - } - if (prefix6) { - inf = prefix6 + " " + inf; - } - return inf; -}; -var toInfinitive_default = toInfinitive; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js -var parse3 = (inf) => { - if (/ /.test(inf)) { - return inf.split(/ /); - } - return [inf, ""]; -}; -var conjugate = function(inf, model5) { - const { toPast: toPast4, toPresent: toPresent4, toGerund: toGerund4, toParticiple: toParticiple2 } = model5.two.models; - if (inf === "be") { - return { - Infinitive: inf, - Gerund: "being", - PastTense: "was", - PresentTense: "is" - }; - } - let [str, particle] = parse3(inf); - let found = { - Infinitive: inf, - PastTense: convert_default(str, toPast4), - PresentTense: convert_default(str, toPresent4), - Gerund: convert_default(str, toGerund4), - FutureTense: "will " + inf - }; - let pastPrt = convert_default(str, toParticiple2); - if (pastPrt !== inf && pastPrt !== found.PastTense) { - found.Participle = pastPrt; - } - if (particle) { - Object.keys(found).forEach((k2) => { - found[k2] += " " + particle; - }); - } - return found; -}; -var conjugate_default = conjugate; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/verbs/index.js -var all2 = function(str, model5) { - let res = conjugate_default(str, model5); - delete res.FutureTense; - return Object.values(res).filter((s3) => s3); -}; -var verbs_default = { - toInfinitive: toInfinitive_default, - conjugate: conjugate_default, - all: all2 -}; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/adjectives/inflect.js -var toSuperlative2 = function(adj, model5) { - const mod = model5.two.models.toSuperlative; - return convert_default(adj, mod); -}; -var toComparative2 = function(adj, model5) { - const mod = model5.two.models.toComparative; - return convert_default(adj, mod); -}; -var fromComparative2 = function(adj, model5) { - const mod = model5.two.models.fromComparative; - return convert_default(adj, mod); -}; -var fromSuperlative2 = function(adj, model5) { - const mod = model5.two.models.fromSuperlative; - return convert_default(adj, mod); -}; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/adjectives/adverbs/lib.js -var suffixLoop = function(str = "", suffixes6 = []) { - const len = str.length; - let max3 = len <= 6 ? len - 1 : 6; - for (let i3 = max3; i3 >= 1; i3 -= 1) { - let suffix = str.substring(len - i3, str.length); - if (suffixes6[suffix.length].hasOwnProperty(suffix) === true) { - let pre = str.slice(0, len - i3); - let post = suffixes6[suffix.length][suffix]; - return pre + post; - } - } - return null; -}; -var lib_default6 = suffixLoop; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdjective.js -var s2 = "ically"; -var ical = /* @__PURE__ */ new Set([ - "analyt" + s2, - "chem" + s2, - "class" + s2, - "clin" + s2, - "crit" + s2, - "ecolog" + s2, - "electr" + s2, - "empir" + s2, - "frant" + s2, - "grammat" + s2, - "ident" + s2, - "ideolog" + s2, - "log" + s2, - "mag" + s2, - "mathemat" + s2, - "mechan" + s2, - "med" + s2, - "method" + s2, - "method" + s2, - "mus" + s2, - "phys" + s2, - "phys" + s2, - "polit" + s2, - "pract" + s2, - "rad" + s2, - "satir" + s2, - "statist" + s2, - "techn" + s2, - "technolog" + s2, - "theoret" + s2, - "typ" + s2, - "vert" + s2, - "whims" + s2 -]); -var suffixes2 = [ - null, - {}, - { "ly": "" }, - { - "ily": "y", - "bly": "ble", - "ply": "ple" - }, - { - "ally": "al", - "rply": "rp" - }, - { - "ually": "ual", - "ially": "ial", - "cally": "cal", - "eally": "eal", - "rally": "ral", - "nally": "nal", - "mally": "mal", - "eeply": "eep", - "eaply": "eap" - }, - { - ically: "ic" - } -]; -var noAdj = /* @__PURE__ */ new Set([ - "early", - "only", - "hourly", - "daily", - "weekly", - "monthly", - "yearly", - "mostly", - "duly", - "unduly", - "especially", - "undoubtedly", - "conversely", - "namely", - "exceedingly", - "presumably", - "accordingly", - "overly", - "best", - "latter", - "little", - "long", - "low" -]); -var exceptions = { - wholly: "whole", - fully: "full", - truly: "true", - gently: "gentle", - singly: "single", - customarily: "customary", - idly: "idle", - publically: "public", - quickly: "fast", - well: "good" -}; -var toAdjective = function(str) { - if (!str.endsWith("ly")) { - return null; - } - if (ical.has(str)) { - return str.replace(/ically/, "ical"); - } - if (noAdj.has(str)) { - return null; - } - if (exceptions.hasOwnProperty(str)) { - return exceptions[str]; - } - return lib_default6(str, suffixes2) || str; -}; -var toAdjective_default = toAdjective; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdverb.js -var suffixes3 = [ - null, - { - y: "ily" - }, - { - ly: "ly", - ic: "ically" - }, - { - ial: "ially", - ual: "ually", - tle: "tly", - ble: "bly", - ple: "ply", - ary: "arily" - }, - {}, - {}, - {} -]; -var exceptions2 = { - cool: "cooly", - whole: "wholly", - full: "fully", - good: "well", - idle: "idly", - public: "publicly", - single: "singly", - special: "especially" -}; -var toAdverb = function(str) { - if (exceptions2.hasOwnProperty(str)) { - return exceptions2[str]; - } - let res = lib_default6(str, suffixes3); - if (res) { - return res; - } - return str + "ly"; -}; -var toAdverb_default = toAdverb; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/adjectives/adverbs/toNoun.js -var suffixes4 = [ - null, - { - "y": "iness" - }, - { - "le": "ility", - "al": "ality", - "ay": "ayness" - }, - { - "ial": "y", - "ing": "ment", - "ess": "essness", - "ous": "ousness", - "ive": "ivity", - "ect": "ection" - }, - { - "ting": "ting", - "ring": "ring", - "cial": "ciality", - "nate": "nation", - "rate": "ration", - "bing": "bingness", - "atic": "acy", - "sing": "se", - "iful": "y", - "ible": "ibility" - }, - { - "erate": "eration" - }, - { - "ionate": "ion" - } -]; -var exceptions3 = { - clean: "cleanliness", - naive: "naivety", - dramatic: "drama", - ironic: "irony", - deep: "depth", - automatic: "automation", - simple: "simplicity", - boring: "boredom", - free: "freedom", - wise: "wisdom", - fortunate: "fortune", - gentle: "gentleness", - quiet: "quiet", - expensive: "expense", - offensive: "offence" -}; -var dontDo = /* @__PURE__ */ new Set([ - "terrible", - "annoying" -]); -var toNoun = function(str) { - if (exceptions3.hasOwnProperty(str)) { - return exceptions3[str]; - } - if (dontDo.has(str)) { - return null; - } - let res = lib_default6(str, suffixes4); - if (res) { - return res; - } - return str + "ness"; -}; -var toNoun_default = toNoun; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/adjectives/index.js -var all3 = function(str, model5) { - let arr = [str]; - arr.push(toSuperlative2(str, model5)); - arr.push(toComparative2(str, model5)); - arr.push(toAdverb_default(str)); - arr = arr.filter((s3) => s3); - arr = new Set(arr); - return Array.from(arr); -}; -var adjectives_default = { - toSuperlative: toSuperlative2, - toComparative: toComparative2, - toAdverb: toAdverb_default, - toNoun: toNoun_default, - fromAdverb: toAdjective_default, - fromSuperlative: fromSuperlative2, - fromComparative: fromComparative2, - all: all3 -}; - -// node_modules/compromise/src/2-two/preTagger/methods/transform/index.js -var transform_default = { - noun: nouns_default2, - verb: verbs_default, - adjective: adjectives_default -}; - -// node_modules/compromise/src/2-two/preTagger/methods/expand/byTag.js -var byTag_default = { - Singular: (word, lex, methods16, model5) => { - let already = model5.one.lexicon; - let plural2 = methods16.two.transform.noun.toPlural(word, model5); - if (!already[plural2]) { - lex[plural2] = lex[plural2] || "Plural"; - } - }, - Actor: (word, lex, methods16, model5) => { - let already = model5.one.lexicon; - let plural2 = methods16.two.transform.noun.toPlural(word, model5); - if (!already[plural2]) { - lex[plural2] = lex[plural2] || ["Plural", "Actor"]; - } - }, - Comparable: (word, lex, methods16, model5) => { - let already = model5.one.lexicon; - let { toSuperlative: toSuperlative3, toComparative: toComparative3 } = methods16.two.transform.adjective; - let sup = toSuperlative3(word, model5); - if (!already[sup]) { - lex[sup] = lex[sup] || "Superlative"; - } - let comp = toComparative3(word, model5); - if (!already[comp]) { - lex[comp] = lex[comp] || "Comparative"; - } - lex[word] = "Adjective"; - }, - Demonym: (word, lex, methods16, model5) => { - let plural2 = methods16.two.transform.noun.toPlural(word, model5); - lex[plural2] = lex[plural2] || ["Demonym", "Plural"]; - }, - Infinitive: (word, lex, methods16, model5) => { - let already = model5.one.lexicon; - let all4 = methods16.two.transform.verb.conjugate(word, model5); - Object.entries(all4).forEach((a2) => { - if (!already[a2[1]] && !lex[a2[1]]) { - lex[a2[1]] = a2[0]; - } - }); - }, - PhrasalVerb: (word, lex, methods16, model5) => { - let already = model5.one.lexicon; - lex[word] = ["PhrasalVerb", "Infinitive"]; - let _multi = model5.one._multiCache; - let [inf, rest] = word.split(" "); - if (!already[inf]) { - lex[inf] = lex[inf] || "Infinitive"; - } - let all4 = methods16.two.transform.verb.conjugate(inf, model5); - delete all4.FutureTense; - Object.entries(all4).forEach((a2) => { - if (a2[0] === "Actor" || a2[1] === "") { - return; - } - if (!lex[a2[1]] && !already[a2[1]]) { - lex[a2[1]] = a2[0]; - } - _multi[a2[1]] = true; - let str = a2[1] + " " + rest; - lex[str] = lex[str] || [a2[0], "PhrasalVerb"]; - }); - }, - Multiple: (word, lex) => { - lex[word] = ["Multiple", "Cardinal"]; - lex[word + "th"] = ["Multiple", "Ordinal"]; - lex[word + "ths"] = ["Multiple", "Fraction"]; - }, - Cardinal: (word, lex) => { - lex[word] = ["TextValue", "Cardinal"]; - }, - Ordinal: (word, lex) => { - lex[word] = ["TextValue", "Ordinal"]; - lex[word + "s"] = ["TextValue", "Fraction"]; - } -}; - -// node_modules/compromise/src/2-two/preTagger/methods/expand/index.js -var expand4 = function(words, world2) { - const { methods: methods16, model: model5 } = world2; - let lex = {}; - let _multi = {}; - Object.keys(words).forEach((word) => { - let tag = words[word]; - word = word.toLowerCase().trim(); - word = word.replace(/'s\b/, ""); - let split3 = word.split(/ /); - if (split3.length > 1) { - _multi[split3[0]] = true; - } - if (byTag_default.hasOwnProperty(tag) === true) { - byTag_default[tag](word, lex, methods16, model5); - } - lex[word] = lex[word] || tag; - }); - delete lex[""]; - delete lex[null]; - delete lex[" "]; - return { lex, _multi }; -}; -var expand_default2 = expand4; - -// node_modules/compromise/src/2-two/preTagger/methods/quickSplit.js -var splitOn = function(terms, i3) { - const isNum = /^[0-9]+$/; - let term = terms[i3]; - if (!term) { - return false; - } - const maybeDate = /* @__PURE__ */ new Set(["may", "april", "august", "jan"]); - if (term.normal === "like" || maybeDate.has(term.normal)) { - return false; - } - if (term.tags.has("Place") || term.tags.has("Date")) { - return false; - } - if (terms[i3 - 1]) { - let lastTerm = terms[i3 - 1]; - if (lastTerm.tags.has("Date") || maybeDate.has(lastTerm.normal)) { - return false; - } - if (lastTerm.tags.has("Adjective") || term.tags.has("Adjective")) { - return false; - } - } - let str = term.normal; - if (str.length === 1 || str.length === 2 || str.length === 4) { - if (isNum.test(str)) { - return false; - } - } - return true; -}; -var quickSplit = function(document2) { - const splitHere = /[,:;]/; - let arr = []; - document2.forEach((terms) => { - let start2 = 0; - terms.forEach((term, i3) => { - if (splitHere.test(term.post) && splitOn(terms, i3 + 1)) { - arr.push(terms.slice(start2, i3 + 1)); - start2 = i3 + 1; - } - }); - if (start2 < terms.length) { - arr.push(terms.slice(start2, terms.length)); - } - }); - return arr; -}; -var quickSplit_default = quickSplit; - -// node_modules/compromise/src/2-two/preTagger/methods/looksPlural.js -var isPlural = { - e: [ - "mice", - "louse", - "antennae", - "formulae", - "nebulae", - "vertebrae", - "vitae" - ], - i: [ - "tia", - "octopi", - "viri", - "radii", - "nuclei", - "fungi", - "cacti", - "stimuli" - ], - n: [ - "men" - ], - t: [ - "feet" - ] -}; -var exceptions4 = /* @__PURE__ */ new Set([ - "formulas", - "koalas", - "israelis", - "menus" -]); -var notPlural = [ - "bus", - "mas", - "was", - "las", - "ias", - "xas", - "vas", - "cis", - "lis", - "nis", - "ois", - "ris", - "sis", - "tis", - "xis", - "aus", - "cus", - "eus", - "fus", - "gus", - "ius", - "lus", - "nus", - "ous", - "pus", - "rus", - "sus", - "tus", - "xus", - "'s", - "ss" -]; -var looksPlural = function(str) { - if (!str || str.length <= 3) { - return false; - } - if (exceptions4.has(str)) { - return true; - } - let end2 = str[str.length - 1]; - if (isPlural.hasOwnProperty(end2)) { - return isPlural[end2].find((suff) => str.endsWith(suff)); - } - if (end2 !== "s") { - return false; - } - if (notPlural.find((suff) => str.endsWith(suff))) { - return false; - } - return true; -}; -var looksPlural_default = looksPlural; - -// node_modules/compromise/src/2-two/preTagger/methods/index.js -var methods_default9 = { - two: { - quickSplit: quickSplit_default, - expandLexicon: expand_default2, - transform: transform_default, - looksPlural: looksPlural_default - } -}; - -// node_modules/compromise/src/2-two/preTagger/model/_expand/irregulars.js -var expandIrregulars = function(model5) { - const { irregularPlurals } = model5.two; - const { lexicon: lexicon4 } = model5.one; - Object.entries(irregularPlurals).forEach((a2) => { - lexicon4[a2[0]] = lexicon4[a2[0]] || "Singular"; - lexicon4[a2[1]] = lexicon4[a2[1]] || "Plural"; - }); - return model5; -}; -var irregulars_default = expandIrregulars; - -// node_modules/compromise/src/2-two/preTagger/model/_expand/models.js -var getWords = function(model5, left, right) { - return Object.entries(model5.exceptions).reduce((h2, a2) => { - if (left) { - h2[a2[0]] = left; - } - h2[a2[1]] = right; - return h2; - }, {}); -}; -var expandModels = function(model5) { - let { lexicon: lexicon4 } = model5.one; - const { toPast: toPast4, toPresent: toPresent4, toGerund: toGerund4, toSuperlative: toSuperlative3, toComparative: toComparative3 } = model5.two.models; - let res = {}; - let words = {}; - words = getWords(toPast4, "Infinitive", "PastTense"); - Object.assign(res, words); - words = getWords(toPresent4, "Infinitive", "Verb"); - Object.assign(res, words); - words = getWords(toGerund4, "Infinitive", "Gerund"); - Object.assign(res, words); - words = getWords(toSuperlative3, "Adjective", "Superlative"); - Object.assign(res, words); - words = getWords(toComparative3, "Adjective", "Comparative"); - Object.assign(res, words); - model5.one.lexicon = Object.assign(res, lexicon4); - return model5; -}; -var models_default2 = expandModels; - -// node_modules/compromise/src/2-two/preTagger/model/_expand/index.js -var tmpModel2 = { - two: { models: models_default } -}; -var switchDefaults = { - "Adj|Gerund": "Adjective", - "Adj|Noun": "Adjective", - "Adj|Past": "Adjective", - "Adj|Present": "Adjective", - "Noun|Verb": "Singular", - "Noun|Gerund": "Gerund", - "Person|Noun": "Noun", - "Person|Date": "Month", - "Person|Verb": "FirstName", - "Person|Place": "Person", - "Plural|Verb": "Plural", - "Unit|Noun": "Noun" -}; -var expandLexicon = function(words, model5) { - const world2 = { model: model5, methods: methods_default9 }; - let { lex, _multi } = methods_default9.two.expandLexicon(words, world2); - Object.assign(model5.one.lexicon, lex); - Object.assign(model5.one._multiCache, _multi); - return model5; -}; -var addUncountables = function(words, model5) { - Object.keys(words).forEach((k2) => { - if (words[k2] === "Uncountable") { - model5.two.uncountable[k2] = true; - words[k2] = "Uncountable"; - } - }); - return model5; -}; -var expandVerb = function(str, words, doPresent) { - let obj = conjugate_default(str, tmpModel2); - words[obj.PastTense] = words[obj.PastTense] || "PastTense"; - words[obj.Gerund] = words[obj.Gerund] || "Gerund"; - if (doPresent === true) { - words[obj.PresentTense] = words[obj.PresentTense] || "PresentTense"; - } -}; -var expandAdjective = function(str, words, model5) { - let sup = toSuperlative2(str, model5); - words[sup] = words[sup] || "Superlative"; - let comp = toComparative2(str, model5); - words[comp] = words[comp] || "Comparative"; -}; -var expandNoun = function(str, words, model5) { - let plur = toPlural_default(str, model5); - words[plur] = words[plur] || "Plural"; -}; -var expandVariable = function(switchWords, model5) { - let words = {}; - const lex = model5.one.lexicon; - Object.keys(switchWords).forEach((w) => { - const name = switchWords[w]; - words[w] = switchDefaults[name]; - if (name === "Noun|Verb" || name === "Person|Verb") { - expandVerb(w, lex, false); - } - if (name === "Adj|Present") { - expandVerb(w, lex, true); - expandAdjective(w, lex, model5); - } - if (name === "Adj|Gerund" || name === "Noun|Gerund") { - let inf = toInfinitive_default(w, tmpModel2, "Gerund"); - if (!lex[inf]) { - words[inf] = "Infinitive"; - } - } - if (name === "Noun|Gerund" || name === "Adj|Noun" || name === "Person|Noun") { - expandNoun(w, lex, model5); - } - if (name === "Adj|Past") { - let inf = toInfinitive_default(w, tmpModel2, "PastTense"); - if (!lex[inf]) { - words[inf] = "Infinitive"; - } - } - }); - model5 = expandLexicon(words, model5); - return model5; -}; -var expand5 = function(model5) { - model5 = expandLexicon(model5.one.lexicon, model5); - model5 = addUncountables(model5.one.lexicon, model5); - model5 = expandVariable(model5.two.switches, model5); - model5 = models_default2(model5); - model5 = irregulars_default(model5); - return model5; -}; -var expand_default3 = expand5; - -// node_modules/compromise/src/2-two/preTagger/model/index.js -var model4 = { - one: { - _multiCache: {}, - lexicon: lexicon3 - }, - two: { - irregularPlurals: plurals_default, - models: models_default, - suffixPatterns: suffixes_default2, - prefixPatterns: prefixes_default2, - endsWith: endsWith_default, - neighbours: neighbours_default, - regexNormal: regex_normal_default, - regexText: regex_text_default, - regexNumbers: regex_numbers_default, - switches, - clues: clues_default, - uncountable: {}, - orgWords: orgWords_default - } -}; -model4 = expand_default3(model4); -var model_default3 = model4; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/1st-pass/01-colons.js -var byPunctuation = function(terms, i3, model5, world2) { - const setTag3 = world2.methods.one.setTag; - if (i3 === 0 && terms.length >= 3) { - const hasColon = /:/; - let post = terms[0].post; - if (post.match(hasColon)) { - let nextTerm = terms[1]; - if (nextTerm.tags.has("Value") || nextTerm.tags.has("Email") || nextTerm.tags.has("PhoneNumber")) { - return; - } - setTag3([terms[0]], "Expression", world2, null, `2-punct-colon''`); - } - } -}; -var colons_default = byPunctuation; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/1st-pass/02-hyphens.js -var byHyphen = function(terms, i3, model5, world2) { - const setTag3 = world2.methods.one.setTag; - if (terms[i3].post === "-" && terms[i3 + 1]) { - setTag3([terms[i3], terms[i3 + 1]], "Hyphenated", world2, null, `1-punct-hyphen''`); - } -}; -var hyphens_default = byHyphen; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/2nd-pass/00-tagSwitch.js -var prefix4 = /^(under|over|mis|re|un|dis|semi)-?/; -var tagSwitch = function(terms, i3, model5) { - const switches2 = model5.two.switches; - let term = terms[i3]; - if (switches2.hasOwnProperty(term.normal)) { - term.switch = switches2[term.normal]; - return; - } - if (prefix4.test(term.normal)) { - let stem = term.normal.replace(prefix4, ""); - if (stem.length > 3 && switches2.hasOwnProperty(stem)) { - term.switch = switches2[stem]; - } - } -}; -var tagSwitch_default = tagSwitch; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/_fastTag.js -var log2 = (term, tag, reason = "") => { - const yellow = (str) => "\x1B[33m\x1B[3m" + str + "\x1B[0m"; - const i3 = (str) => "\x1B[3m" + str + "\x1B[0m"; - let word = term.text || "[" + term.implicit + "]"; - if (typeof tag !== "string" && tag.length > 2) { - tag = tag.slice(0, 2).join(", #") + " +"; - } - tag = typeof tag !== "string" ? tag.join(", #") : tag; - console.log(` ${yellow(word).padEnd(24)} \x1B[32m\u2192\x1B[0m #${tag.padEnd(22)} ${i3(reason)}`); -}; -var setTag2 = function(term, tag, reason) { - if (!tag || tag.length === 0) { - return; - } - const env2 = typeof process === "undefined" || !process.env ? self.env || {} : process.env; - if (env2 && env2.DEBUG_TAGS) { - log2(term, tag, reason); - } - term.tags = term.tags || /* @__PURE__ */ new Set(); - if (typeof tag === "string") { - term.tags.add(tag); - } else { - tag.forEach((tg) => term.tags.add(tg)); - } -}; -var fastTag_default = setTag2; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/_fillTags.js -var uncountable = [ - "Acronym", - "Abbreviation", - "ProperNoun", - "Uncountable", - "Possessive", - "Pronoun", - "Activity", - "Honorific" -]; -var setPluralSingular = function(term) { - if (!term.tags.has("Noun") || term.tags.has("Plural") || term.tags.has("Singular") || term.tags.has("Date")) { - return; - } - if (uncountable.find((tag) => term.tags.has(tag))) { - return; - } - if (looksPlural_default(term.normal)) { - fastTag_default(term, "Plural", "3-plural-guess"); - } else { - fastTag_default(term, "Singular", "3-singular-guess"); - } -}; -var setTense = function(term) { - let tags = term.tags; - if (tags.has("Verb") && tags.size === 1) { - let guess = getTense_default(term.normal); - if (guess) { - fastTag_default(term, guess, "3-verb-tense-guess"); - } - } -}; -var fillTags = function(terms, i3, model5) { - let term = terms[i3]; - let tags = Array.from(term.tags); - for (let k2 = 0; k2 < tags.length; k2 += 1) { - if (model5.one.tagSet[tags[k2]]) { - let toAdd = model5.one.tagSet[tags[k2]].parents; - fastTag_default(term, toAdd, ` -inferred by #${tags[k2]}`); - } - } - setPluralSingular(term); - setTense(term, model5); -}; -var fillTags_default = fillTags; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/2nd-pass/01-case.js -var titleCase3 = /^\p{Lu}[\p{Ll}'’]/u; -var hasNumber = /[0-9]/; -var notProper = ["Date", "Month", "WeekDay", "Unit", "Expression"]; -var hasIVX = /[IVX]/; -var romanNumeral = /^[IVXLCDM]{2,}$/; -var romanNumValid = /^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/; -var nope = { - li: true, - dc: true, - md: true, - dm: true, - ml: true -}; -var checkCase = function(terms, i3, model5) { - let term = terms[i3]; - term.index = term.index || [0, 0]; - let index3 = term.index[1]; - let str = term.text || ""; - if (index3 !== 0 && titleCase3.test(str) === true && hasNumber.test(str) === false) { - if (notProper.find((tag) => term.tags.has(tag))) { - return null; - } - if (term.pre.match(/["']$/)) { - return null; - } - fillTags_default(terms, i3, model5); - if (!term.tags.has("Noun")) { - term.tags.clear(); - } - fastTag_default(term, "ProperNoun", "2-titlecase"); - return true; - } - if (str.length >= 2 && romanNumeral.test(str) && hasIVX.test(str) && romanNumValid.test(str) && !nope[term.normal]) { - fastTag_default(term, "RomanNumeral", "2-xvii"); - return true; - } - return null; -}; -var case_default2 = checkCase; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/2nd-pass/02-suffix.js -var suffixLoop2 = function(str = "", suffixes6 = []) { - const len = str.length; - let max3 = 7; - if (len <= max3) { - max3 = len - 1; - } - for (let i3 = max3; i3 > 1; i3 -= 1) { - let suffix = str.substring(len - i3, len); - if (suffixes6[suffix.length].hasOwnProperty(suffix) === true) { - let tag = suffixes6[suffix.length][suffix]; - return tag; - } - } - return null; -}; -var tagBySuffix = function(terms, i3, model5) { - let term = terms[i3]; - if (term.tags.size === 0) { - let tag = suffixLoop2(term.normal, model5.two.suffixPatterns); - if (tag !== null) { - fastTag_default(term, tag, "2-suffix"); - term.confidence = 0.7; - return true; - } - if (term.implicit) { - tag = suffixLoop2(term.implicit, model5.two.suffixPatterns); - if (tag !== null) { - fastTag_default(term, tag, "2-implicit-suffix"); - term.confidence = 0.7; - return true; - } - } - } - return null; -}; -var suffix_default = tagBySuffix; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/2nd-pass/03-regex.js -var hasApostrophe = /['‘’‛‵′`´]/; -var doRegs = function(str, regs) { - for (let i3 = 0; i3 < regs.length; i3 += 1) { - if (regs[i3][0].test(str) === true) { - return regs[i3]; - } - } - return null; -}; -var doEndsWith = function(str = "", byEnd3) { - let char = str[str.length - 1]; - if (byEnd3.hasOwnProperty(char) === true) { - let regs = byEnd3[char] || []; - for (let r2 = 0; r2 < regs.length; r2 += 1) { - if (regs[r2][0].test(str) === true) { - return regs[r2]; - } - } - } - return null; -}; -var checkRegex = function(terms, i3, model5, world2) { - const setTag3 = world2.methods.one.setTag; - let { regexText, regexNormal, regexNumbers, endsWith } = model5.two; - let term = terms[i3]; - let normal = term.machine || term.normal; - let text = term.text; - if (hasApostrophe.test(term.post) && !hasApostrophe.test(term.pre)) { - text += term.post.trim(); - } - let arr = doRegs(text, regexText) || doRegs(normal, regexNormal); - if (!arr && /[0-9]/.test(normal)) { - arr = doRegs(normal, regexNumbers); - } - if (!arr && term.tags.size === 0) { - arr = doEndsWith(normal, endsWith); - } - if (arr) { - setTag3([term], arr[1], world2, null, `2-regex-'${arr[2] || arr[0]}'`); - term.confidence = 0.6; - return true; - } - return null; -}; -var regex_default = checkRegex; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/2nd-pass/04-prefix.js -var prefixLoop = function(str = "", prefixes2 = []) { - const len = str.length; - let max3 = 7; - if (max3 > len - 3) { - max3 = len - 3; - } - for (let i3 = max3; i3 > 2; i3 -= 1) { - let prefix6 = str.substring(0, i3); - if (prefixes2[prefix6.length].hasOwnProperty(prefix6) === true) { - let tag = prefixes2[prefix6.length][prefix6]; - return tag; - } - } - return null; -}; -var checkPrefix = function(terms, i3, model5) { - let term = terms[i3]; - if (term.tags.size === 0) { - let tag = prefixLoop(term.normal, model5.two.prefixPatterns); - if (tag !== null) { - fastTag_default(term, tag, "2-prefix"); - term.confidence = 0.5; - return true; - } - } - return null; -}; -var prefix_default = checkPrefix; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/2nd-pass/05-year.js -var min = 1400; -var max2 = 2100; -var dateWords = /* @__PURE__ */ new Set([ - "in", - "on", - "by", - "until", - "for", - "to", - "during", - "throughout", - "through", - "within", - "before", - "after", - "of", - "this", - "next", - "last", - "circa", - "around", - "post", - "pre", - "budget", - "classic", - "plan", - "may" -]); -var seemsGood = function(term) { - if (!term) { - return false; - } - let str = term.normal || term.implicit; - if (dateWords.has(str)) { - return true; - } - if (term.tags.has("Date") || term.tags.has("Month") || term.tags.has("WeekDay") || term.tags.has("Year")) { - return true; - } - if (term.tags.has("ProperNoun")) { - return true; - } - return false; -}; -var seemsOkay = function(term) { - if (!term) { - return false; - } - if (term.tags.has("Ordinal")) { - return true; - } - if (term.tags.has("Cardinal") && term.normal.length < 3) { - return true; - } - if (term.normal === "is" || term.normal === "was") { - return true; - } - return false; -}; -var seemsFine = function(term) { - return term && (term.tags.has("Date") || term.tags.has("Month") || term.tags.has("WeekDay") || term.tags.has("Year")); -}; -var tagYear = function(terms, i3) { - const term = terms[i3]; - if (term.tags.has("NumericValue") && term.tags.has("Cardinal") && term.normal.length === 4) { - let num = Number(term.normal); - if (num && !isNaN(num)) { - if (num > min && num < max2) { - let lastTerm = terms[i3 - 1]; - let nextTerm = terms[i3 + 1]; - if (seemsGood(lastTerm) || seemsGood(nextTerm)) { - return fastTag_default(term, "Year", "2-tagYear"); - } - if (num >= 1920 && num < 2025) { - if (seemsOkay(lastTerm) || seemsOkay(nextTerm)) { - return fastTag_default(term, "Year", "2-tagYear-close"); - } - if (seemsFine(terms[i3 - 2]) || seemsFine(terms[i3 + 2])) { - return fastTag_default(term, "Year", "2-tagYear-far"); - } - if (lastTerm && (lastTerm.tags.has("Determiner") || lastTerm.tags.has("Possessive"))) { - if (nextTerm && nextTerm.tags.has("Noun") && !nextTerm.tags.has("Plural")) { - return fastTag_default(term, "Year", "2-tagYear-noun"); - } - } - } - } - } - } - return null; -}; -var year_default = tagYear; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/06-verb-type.js -var verbType = function(terms, i3, model5, world2) { - const setTag3 = world2.methods.one.setTag; - const term = terms[i3]; - const types = ["PastTense", "PresentTense", "Auxiliary", "Modal", "Particle"]; - if (term.tags.has("Verb")) { - let type = types.find((typ) => term.tags.has(typ)); - if (!type) { - setTag3([term], "Infinitive", world2, null, `2-verb-type''`); - } - } -}; -var verb_type_default = verbType; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/01-acronym.js -var oneLetterAcronym2 = /^[A-Z]('s|,)?$/; -var isUpperCase = /^[A-Z-]+$/; -var upperThenS = /^[A-Z]+s$/; -var periodAcronym2 = /([A-Z]\.)+[A-Z]?,?$/; -var noPeriodAcronym2 = /[A-Z]{2,}('s|,)?$/; -var lowerCaseAcronym2 = /([a-z]\.)+[a-z]\.?$/; -var oneLetterWord = { - I: true, - A: true -}; -var places = { - la: true, - ny: true, - us: true, - dc: true, - gb: true -}; -var isNoPeriodAcronym = function(term, model5) { - let str = term.text; - if (isUpperCase.test(str) === false) { - if (str.length > 3 && upperThenS.test(str) === true) { - str = str.replace(/s$/, ""); - } else { - return false; - } - } - if (str.length > 5) { - return false; - } - if (oneLetterWord.hasOwnProperty(str)) { - return false; - } - if (model5.one.lexicon.hasOwnProperty(term.normal)) { - return false; - } - if (periodAcronym2.test(str) === true) { - return true; - } - if (lowerCaseAcronym2.test(str) === true) { - return true; - } - if (oneLetterAcronym2.test(str) === true) { - return true; - } - if (noPeriodAcronym2.test(str) === true) { - return true; - } - return false; -}; -var isAcronym3 = function(terms, i3, model5) { - let term = terms[i3]; - if (term.tags.has("RomanNumeral") || term.tags.has("Acronym")) { - return null; - } - if (isNoPeriodAcronym(term, model5)) { - term.tags.clear(); - fastTag_default(term, ["Acronym", "Noun"], "3-no-period-acronym"); - if (places[term.normal] === true) { - fastTag_default(term, "Place", "3-place-acronym"); - } - if (upperThenS.test(term.text) === true) { - fastTag_default(term, "Plural", "3-plural-acronym"); - } - return true; - } - if (!oneLetterWord.hasOwnProperty(term.text) && oneLetterAcronym2.test(term.text)) { - term.tags.clear(); - fastTag_default(term, ["Acronym", "Noun"], "3-one-letter-acronym"); - return true; - } - if (term.tags.has("Organization") && term.text.length <= 3) { - fastTag_default(term, "Acronym", "3-org-acronym"); - return true; - } - if (term.tags.has("Organization") && isUpperCase.test(term.text) && term.text.length <= 6) { - fastTag_default(term, "Acronym", "3-titlecase-acronym"); - return true; - } - return null; -}; -var acronym_default = isAcronym3; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/02-neighbours.js -var lookAtWord = function(term, words) { - if (!term) { - return null; - } - let found = words.find((a2) => term.normal === a2[0]); - if (found) { - return found[1]; - } - return null; -}; -var lookAtTag = function(term, tags) { - if (!term) { - return null; - } - let found = tags.find((a2) => term.tags.has(a2[0])); - if (found) { - return found[1]; - } - return null; -}; -var neighbours = function(terms, i3, model5) { - const { leftTags, leftWords, rightWords, rightTags } = model5.two.neighbours; - let term = terms[i3]; - if (term.tags.size === 0) { - let tag = null; - tag = tag || lookAtWord(terms[i3 - 1], leftWords); - tag = tag || lookAtWord(terms[i3 + 1], rightWords); - tag = tag || lookAtTag(terms[i3 - 1], leftTags); - tag = tag || lookAtTag(terms[i3 + 1], rightTags); - if (tag) { - fastTag_default(term, tag, "3-[neighbour]"); - fillTags_default(terms, i3, model5); - terms[i3].confidence = 0.2; - return true; - } - } - return null; -}; -var neighbours_default2 = neighbours; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/03-orgWords.js -var isTitleCase2 = (str) => /^\p{Lu}[\p{Ll}'’]/u.test(str); -var isOrg = function(term, i3, yelling) { - if (!term) { - return false; - } - if (term.tags.has("FirstName") || term.tags.has("Place")) { - return false; - } - if (term.tags.has("ProperNoun") || term.tags.has("Organization") || term.tags.has("Acronym")) { - return true; - } - if (!yelling && isTitleCase2(term.text)) { - if (i3 === 0) { - return term.tags.has("Singular"); - } - return true; - } - return false; -}; -var tagOrgs = function(terms, i3, world2, yelling) { - const orgWords = world2.model.two.orgWords; - const setTag3 = world2.methods.one.setTag; - let term = terms[i3]; - let str = term.machine || term.normal; - if (orgWords[str] === true && isOrg(terms[i3 - 1], i3 - 1, yelling)) { - setTag3([terms[i3]], "Organization", world2, null, "3-[org-word]"); - for (let t2 = i3; t2 >= 0; t2 -= 1) { - if (isOrg(terms[t2], t2, yelling)) { - setTag3([terms[t2]], "Organization", world2, null, "3-[org-word]"); - } else { - break; - } - } - } - return null; -}; -var orgWords_default2 = tagOrgs; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/04-fallback.js -var nounFallback = function(terms, i3, model5) { - let isEmpty = false; - let tags = terms[i3].tags; - if (tags.size === 0) { - isEmpty = true; - } else if (tags.size === 1) { - if (tags.has("Hyphenated") || tags.has("HashTag") || tags.has("Prefix")) { - isEmpty = true; - } - } - if (isEmpty) { - fastTag_default(terms[i3], "Noun", "3-[fallback]"); - fillTags_default(terms, i3, model5); - terms[i3].confidence = 0.1; - } -}; -var fallback_default = nounFallback; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/_adhoc.js -var isTitleCase3 = /^[A-Z][a-z]/; -var isCapital = (terms, i3) => { - if (terms[i3].tags.has("ProperNoun") && isTitleCase3.test(terms[i3].text)) { - return "Noun"; - } - return null; -}; -var isAloneVerb = (terms, i3, tag) => { - if (i3 === 0 && !terms[1]) { - return tag; - } - return null; -}; -var isEndNoun = function(terms, i3) { - if (!terms[i3 + 1] && terms[i3 - 1] && terms[i3 - 1].tags.has("Determiner")) { - return "Noun"; - } - return null; -}; -var isStart = function(terms, i3, tag) { - if (i3 === 0 && terms.length > 3) { - return tag; - } - return null; -}; -var adhoc = { - "Adj|Gerund": (terms, i3) => { - return isCapital(terms, i3); - }, - "Adj|Noun": (terms, i3) => { - return isCapital(terms, i3) || isEndNoun(terms, i3); - }, - "Adj|Past": (terms, i3) => { - return isCapital(terms, i3); - }, - "Adj|Present": (terms, i3) => { - return isCapital(terms, i3); - }, - "Noun|Gerund": (terms, i3) => { - return isCapital(terms, i3); - }, - "Noun|Verb": (terms, i3) => { - return isCapital(terms, i3) || isAloneVerb(terms, i3, "Infinitive"); - }, - "Plural|Verb": (terms, i3) => { - return isCapital(terms, i3) || isAloneVerb(terms, i3, "PresentTense") || isStart(terms, i3, "Plural"); - }, - "Person|Noun": (terms, i3) => { - return isCapital(terms, i3); - }, - "Person|Verb": (terms, i3) => { - if (i3 !== 0) { - return isCapital(terms, i3); - } - return null; - } -}; -var adhoc_default = adhoc; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/06-switches.js -var env = typeof process === "undefined" || !process.env ? self.env || {} : process.env; -var prefix5 = /^(under|over|mis|re|un|dis|semi)-?/; -var checkWord = (term, obj) => { - if (!term || !obj) { - return null; - } - let str = term.normal || term.implicit; - let found = null; - if (obj.hasOwnProperty(str)) { - found = obj[str]; - } - if (found && env.DEBUG_TAGS) { - console.log(` - \x1B[2m\x1B[3m \u2193 - '${str}' \x1B[0m`); - } - return found; -}; -var checkTag = (term, obj = {}, tagSet) => { - if (!term || !obj) { - return null; - } - let tags = Array.from(term.tags).sort((a2, b) => { - let numA = tagSet[a2] ? tagSet[a2].parents.length : 0; - let numB = tagSet[b] ? tagSet[b].parents.length : 0; - return numA > numB ? -1 : 1; - }); - let found = tags.find((tag) => obj[tag]); - if (found && env.DEBUG_TAGS) { - console.log(` \x1B[2m\x1B[3m \u2193 - '${term.normal || term.implicit}' (#${found}) \x1B[0m`); - } - found = obj[found]; - return found; -}; -var pickTag = function(terms, i3, clues4, model5) { - if (!clues4) { - return null; - } - const tagSet = model5.one.tagSet; - let tag = checkWord(terms[i3 + 1], clues4.afterWords); - tag = tag || checkWord(terms[i3 - 1], clues4.beforeWords); - tag = tag || checkTag(terms[i3 - 1], clues4.beforeTags, tagSet); - tag = tag || checkTag(terms[i3 + 1], clues4.afterTags, tagSet); - return tag; -}; -var doSwitches = function(terms, i3, world2) { - const model5 = world2.model; - const setTag3 = world2.methods.one.setTag; - const { switches: switches2, clues: clues4 } = model5.two; - const term = terms[i3]; - let str = term.normal || term.implicit || ""; - if (prefix5.test(str) && !switches2[str]) { - str = str.replace(prefix5, ""); - } - if (term.switch) { - let form = term.switch; - if (term.tags.has("Acronym") || term.tags.has("PhrasalVerb")) { - return; - } - let tag = pickTag(terms, i3, clues4[form], model5); - if (adhoc_default[form]) { - tag = adhoc_default[form](terms, i3) || tag; - } - if (tag) { - setTag3([term], tag, world2, null, `3-[switch] (${form})`); - fillTags_default(terms, i3, model5); - } else if (env.DEBUG_TAGS) { - console.log(` - -> X - '${str}' : (${form}) `); - } - } -}; -var switches_default = doSwitches; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/3rd-pass/07-imperative.js -var beside = { - there: true, - this: true, - it: true, - him: true, - her: true, - us: true -}; -var imperative = function(terms, world2) { - const setTag3 = world2.methods.one.setTag; - const multiWords = world2.model.one._multiCache || {}; - let t2 = terms[0]; - let isRight = t2.switch === "Noun|Verb" || t2.tags.has("Infinitive"); - if (isRight && terms.length >= 2) { - if (terms.length < 4 && !beside[terms[1].normal]) { - return; - } - if (!t2.tags.has("PhrasalVerb") && multiWords.hasOwnProperty(t2.normal)) { - return; - } - let nextNoun = terms[1].tags.has("Noun") || terms[1].tags.has("Determiner"); - if (nextNoun) { - let soonVerb = terms.slice(1, 3).some((term) => term.tags.has("Verb")); - if (!soonVerb || t2.tags.has("#PhrasalVerb")) { - setTag3([t2], "Imperative", world2, null, "3-[imperative]"); - } - } - } -}; -var imperative_default = imperative; - -// node_modules/compromise/src/2-two/preTagger/compute/tagger/index.js -var ignoreCase = function(terms) { - if (terms.filter((t2) => !t2.tags.has("ProperNoun")).length <= 3) { - return false; - } - const lowerCase = /^[a-z]/; - return terms.every((t2) => !lowerCase.test(t2.text)); -}; -var firstPass = function(docs, model5, world2) { - docs.forEach((terms) => { - colons_default(terms, 0, model5, world2); - for (let i3 = 0; i3 < terms.length; i3 += 1) { - } - }); -}; -var secondPass = function(terms, model5, world2, isYelling) { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - tagSwitch_default(terms, i3, model5); - if (isYelling === false) { - case_default2(terms, i3, model5); - } - suffix_default(terms, i3, model5); - regex_default(terms, i3, model5, world2); - prefix_default(terms, i3, model5); - year_default(terms, i3, model5); - } -}; -var thirdPass = function(terms, model5, world2, isYelling) { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let found = acronym_default(terms, i3, model5); - fillTags_default(terms, i3, model5); - found = found || neighbours_default2(terms, i3, model5); - found = found || fallback_default(terms, i3, model5); - } - for (let i3 = 0; i3 < terms.length; i3 += 1) { - orgWords_default2(terms, i3, world2, isYelling); - switches_default(terms, i3, world2); - verb_type_default(terms, i3, model5, world2); - hyphens_default(terms, i3, model5, world2); - } - imperative_default(terms, world2); -}; -var preTagger = function(view) { - const { methods: methods16, model: model5, world: world2 } = view; - let docs = view.docs; - firstPass(docs, model5, world2); - let document2 = methods16.two.quickSplit(docs); - for (let n3 = 0; n3 < document2.length; n3 += 1) { - let terms = document2[n3]; - const isYelling = ignoreCase(terms); - secondPass(terms, model5, world2, isYelling); - thirdPass(terms, model5, world2, isYelling); - } - return document2; -}; -var tagger_default2 = preTagger; - -// node_modules/compromise/src/2-two/preTagger/compute/root.js -var toRoot = { - "Possessive": (term) => { - let str = term.machine || term.normal || term.text; - str = str.replace(/'s$/, ""); - return str; - }, - "Plural": (term, world2) => { - let str = term.machine || term.normal || term.text; - return world2.methods.two.transform.noun.toSingular(str, world2.model); - }, - "Copula": () => { - return "is"; - }, - "PastTense": (term, world2) => { - let str = term.machine || term.normal || term.text; - return world2.methods.two.transform.verb.toInfinitive(str, world2.model, "PastTense"); - }, - "Gerund": (term, world2) => { - let str = term.machine || term.normal || term.text; - return world2.methods.two.transform.verb.toInfinitive(str, world2.model, "Gerund"); - }, - "PresentTense": (term, world2) => { - let str = term.machine || term.normal || term.text; - if (term.tags.has("Infinitive")) { - return str; - } - return world2.methods.two.transform.verb.toInfinitive(str, world2.model, "PresentTense"); - }, - "Comparative": (term, world2) => { - let str = term.machine || term.normal || term.text; - return world2.methods.two.transform.adjective.fromComparative(str, world2.model); - }, - "Superlative": (term, world2) => { - let str = term.machine || term.normal || term.text; - return world2.methods.two.transform.adjective.fromSuperlative(str, world2.model); - }, - "Adverb": (term, world2) => { - const { fromAdverb } = world2.methods.two.transform.adjective; - let str = term.machine || term.normal || term.text; - return fromAdverb(str); - } -}; -var getRoot = function(view) { - const world2 = view.world; - const keys = Object.keys(toRoot); - view.docs.forEach((terms) => { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - const term = terms[i3]; - for (let k2 = 0; k2 < keys.length; k2 += 1) { - if (term.tags.has(keys[k2])) { - const fn = toRoot[keys[k2]]; - let root = fn(term, world2); - if (term.normal !== root) { - term.root = root; - } - break; - } - } - } - }); -}; -var root_default = getRoot; - -// node_modules/compromise/src/2-two/preTagger/compute/penn.js -var mapping = { - "Adverb": "RB", - "Comparative": "JJR", - "Superlative": "JJS", - "Adjective": "JJ", - "TO": "Conjunction", - "Modal": "MD", - "Auxiliary": "MD", - "Gerund": "VBG", - "PastTense": "VBD", - "Participle": "VBN", - "PresentTense": "VBZ", - "Infinitive": "VB", - "Particle": "RP", - "Verb": "VB", - "Pronoun": "PRP", - "Cardinal": "CD", - "Conjunction": "CC", - "Determiner": "DT", - "Preposition": "IN", - "QuestionWord": "WP", - "Expression": "UH", - "Possessive": "POS", - "ProperNoun": "NNP", - "Person": "NNP", - "Place": "NNP", - "Organization": "NNP", - "Singular": "NNP", - "Plural": "NNS", - "Noun": "NN", - "There": "EX" -}; -var toPenn = function(term) { - if (term.tags.has("ProperNoun") && term.tags.has("Plural")) { - return "NNPS"; - } - if (term.tags.has("Possessive") && term.tags.has("Pronoun")) { - return "PRP$"; - } - if (term.normal === "there") { - return "EX"; - } - if (term.normal === "to") { - return "TO"; - } - let arr = term.tagRank || []; - for (let i3 = 0; i3 < arr.length; i3 += 1) { - if (mapping.hasOwnProperty(arr[i3])) { - return mapping[arr[i3]]; - } - } - return null; -}; -var pennTag = function(view) { - view.compute("tagRank"); - view.docs.forEach((terms) => { - terms.forEach((term) => { - term.penn = toPenn(term); - }); - }); -}; -var penn_default = pennTag; - -// node_modules/compromise/src/2-two/preTagger/compute/index.js -var compute_default8 = { preTagger: tagger_default2, root: root_default, penn: penn_default }; - -// node_modules/compromise/src/2-two/preTagger/tagSet/nouns.js -var entity = ["Person", "Place", "Organization"]; -var nouns_default3 = { - Noun: { - not: ["Verb", "Adjective", "Adverb", "Value", "Determiner"] - }, - Singular: { - is: "Noun", - not: ["Plural", "Uncountable"] - }, - ProperNoun: { - is: "Noun" - }, - Person: { - is: "Singular", - also: ["ProperNoun"], - not: ["Place", "Organization", "Date"] - }, - FirstName: { - is: "Person" - }, - MaleName: { - is: "FirstName", - not: ["FemaleName", "LastName"] - }, - FemaleName: { - is: "FirstName", - not: ["MaleName", "LastName"] - }, - LastName: { - is: "Person", - not: ["FirstName"] - }, - Honorific: { - is: "Person", - not: ["FirstName", "LastName", "Value"] - }, - Place: { - is: "Singular", - not: ["Person", "Organization"] - }, - Country: { - is: "Place", - also: ["ProperNoun"], - not: ["City"] - }, - City: { - is: "Place", - also: ["ProperNoun"], - not: ["Country"] - }, - Region: { - is: "Place", - also: ["ProperNoun"] - }, - Address: {}, - Organization: { - is: "ProperNoun", - not: ["Person", "Place"] - }, - SportsTeam: { - is: "Organization" - }, - School: { - is: "Organization" - }, - Company: { - is: "Organization" - }, - Plural: { - is: "Noun", - not: ["Singular", "Uncountable"] - }, - Uncountable: { - is: "Noun" - }, - Pronoun: { - is: "Noun", - not: entity - }, - Actor: { - is: "Noun", - not: entity - }, - Activity: { - is: "Noun", - not: ["Person", "Place"] - }, - Unit: { - is: "Noun", - not: entity - }, - Demonym: { - is: "Noun", - also: ["ProperNoun"], - not: entity - }, - Possessive: { - is: "Noun" - }, - Reflexive: { - is: "Pronoun" - } -}; - -// node_modules/compromise/src/2-two/preTagger/tagSet/verbs.js -var verbs_default2 = { - Verb: { - not: ["Noun", "Adjective", "Adverb", "Value", "Expression"] - }, - PresentTense: { - is: "Verb", - not: ["PastTense"] - }, - Infinitive: { - is: "PresentTense", - not: ["Gerund"] - }, - Imperative: { - is: "Infinitive", - not: ["PastTense", "Gerund", "Copula"] - }, - Gerund: { - is: "PresentTense", - not: ["Copula"] - }, - PastTense: { - is: "Verb", - not: ["PresentTense", "Gerund"] - }, - Copula: { - is: "Verb" - }, - Modal: { - is: "Verb", - not: ["Infinitive"] - }, - Participle: { - is: "PastTense" - }, - Auxiliary: { - is: "Verb", - not: ["PastTense", "PresentTense", "Gerund", "Conjunction"] - }, - PhrasalVerb: { - is: "Verb" - }, - Particle: { - is: "PhrasalVerb", - not: ["PastTense", "PresentTense", "Copula", "Gerund"] - }, - Passive: { - is: "Verb" - } -}; - -// node_modules/compromise/src/2-two/preTagger/tagSet/values.js -var values_default = { - Value: { - not: ["Verb", "Adjective", "Adverb"] - }, - Ordinal: { - is: "Value", - not: ["Cardinal"] - }, - Cardinal: { - is: "Value", - not: ["Ordinal"] - }, - Fraction: { - is: "Value", - not: ["Noun"] - }, - Multiple: { - is: "TextValue" - }, - RomanNumeral: { - is: "Cardinal", - not: ["TextValue"] - }, - TextValue: { - is: "Value", - not: ["NumericValue"] - }, - NumericValue: { - is: "Value", - not: ["TextValue"] - }, - Money: { - is: "Cardinal" - }, - Percent: { - is: "Value" - } -}; - -// node_modules/compromise/src/2-two/preTagger/tagSet/dates.js -var dates_default = { - Date: { - not: ["Verb", "Adverb", "Adjective"] - }, - Month: { - is: "Date", - also: ["Noun"], - not: ["Year", "WeekDay", "Time"] - }, - WeekDay: { - is: "Date", - also: ["Noun"] - }, - Year: { - is: "Date", - not: ["RomanNumeral"] - }, - FinancialQuarter: { - is: "Date", - not: "Fraction" - }, - Holiday: { - is: "Date", - also: ["Noun"] - }, - Season: { - is: "Date" - }, - Timezone: { - is: "Date", - also: ["Noun"], - not: ["ProperNoun"] - }, - Time: { - is: "Date", - not: ["AtMention"] - }, - Duration: { - is: "Date", - also: ["Noun"] - } -}; - -// node_modules/compromise/src/2-two/preTagger/tagSet/misc.js -var anything = ["Noun", "Verb", "Adjective", "Adverb", "Value", "QuestionWord"]; -var misc_default3 = { - Adjective: { - not: ["Noun", "Verb", "Adverb", "Value"] - }, - Comparable: { - is: "Adjective" - }, - Comparative: { - is: "Adjective" - }, - Superlative: { - is: "Adjective", - not: ["Comparative"] - }, - NumberRange: {}, - Adverb: { - not: ["Noun", "Verb", "Adjective", "Value"] - }, - Determiner: { - not: ["Noun", "Verb", "Adjective", "Adverb", "QuestionWord", "Conjunction"] - }, - Conjunction: { - not: anything - }, - Preposition: { - not: ["Noun", "Verb", "Adjective", "Adverb", "QuestionWord", "Determiner"] - }, - QuestionWord: { - not: ["Determiner"] - }, - Currency: { - is: "Noun" - }, - Expression: { - not: ["Noun", "Adjective", "Verb", "Adverb"] - }, - Abbreviation: {}, - Url: { - not: ["HashTag", "PhoneNumber", "Verb", "Adjective", "Value", "AtMention", "Email"] - }, - PhoneNumber: { - not: ["HashTag", "Verb", "Adjective", "Value", "AtMention", "Email"] - }, - HashTag: {}, - AtMention: { - is: "Noun", - not: ["HashTag", "Email"] - }, - Emoji: { - not: ["HashTag", "Verb", "Adjective", "Value", "AtMention"] - }, - Emoticon: { - not: ["HashTag", "Verb", "Adjective", "Value", "AtMention"] - }, - Email: { - not: ["HashTag", "Verb", "Adjective", "Value", "AtMention"] - }, - Acronym: { - not: ["Plural", "RomanNumeral"] - }, - Negative: { - not: ["Noun", "Adjective", "Value", "Expression"] - }, - Condition: { - not: ["Verb", "Adjective", "Noun", "Value"] - }, - There: { - not: ["Verb", "Adjective", "Noun", "Value", "Conjunction", "Preposition"] - }, - Prefix: { - not: ["Abbreviation", "Acronym", "ProperNoun"] - }, - Hyphenated: {} -}; - -// node_modules/compromise/src/2-two/preTagger/tagSet/index.js -var allTags = Object.assign({}, nouns_default3, verbs_default2, values_default, dates_default, misc_default3); -var tagSet_default = allTags; - -// node_modules/compromise/src/2-two/preTagger/plugin.js -var plugin_default13 = { - compute: compute_default8, - methods: methods_default9, - model: model_default3, - tags: tagSet_default, - hooks: ["preTagger"] -}; - -// node_modules/compromise/src/2-two/contraction-two/api/contract.js -var postPunct = /[,)"';:\-–—.…]/; -var setContraction = function(m3, suffix) { - if (!m3.found) { - return; - } - let terms = m3.termList(); - for (let i3 = 0; i3 < terms.length - 1; i3++) { - const t2 = terms[i3]; - if (postPunct.test(t2.post)) { - return; - } - } - terms[0].implicit = terms[0].normal; - terms[0].text += suffix; - terms[0].normal += suffix; - terms.slice(1).forEach((t2) => { - t2.implicit = t2.normal; - t2.text = ""; - t2.normal = ""; - }); - for (let i3 = 0; i3 < terms.length - 1; i3++) { - terms[i3].post = terms[i3].post.replace(/ /, ""); - } -}; -var contract = function() { - let doc = this.not("@hasContraction"); - let m3 = doc.match("(we|they|you) are"); - setContraction(m3, `'re`); - m3 = doc.match("(he|she|they|it|we|you) will"); - setContraction(m3, `'ll`); - m3 = doc.match("(he|she|they|it|we) is"); - setContraction(m3, `'s`); - m3 = doc.match("#Person is"); - setContraction(m3, `'s`); - m3 = doc.match("#Person would"); - setContraction(m3, `'d`); - m3 = doc.match("(is|was|had|would|should|could|do|does|have|has|can) not"); - setContraction(m3, `n't`); - m3 = doc.match("(i|we|they) have"); - setContraction(m3, `'ve`); - m3 = doc.match("(would|should|could) have"); - setContraction(m3, `'ve`); - m3 = doc.match("i am"); - setContraction(m3, `'m`); - m3 = doc.match("going to"); - return this; -}; -var contract_default = contract; - -// node_modules/compromise/src/2-two/contraction-two/api/index.js -var titleCase4 = /^\p{Lu}[\p{Ll}'’]/u; -var toTitleCase2 = function(str = "") { - str = str.replace(/^ *[a-z\u00C0-\u00FF]/, (x) => x.toUpperCase()); - return str; -}; -var api3 = function(View2) { - class Contractions extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Contraction"; - } - expand() { - this.docs.forEach((terms) => { - let isTitleCase4 = titleCase4.test(terms[0].text); - terms.forEach((t2, i3) => { - t2.text = t2.implicit; - delete t2.implicit; - if (i3 < terms.length - 1 && t2.post === "") { - t2.post += " "; - } - t2.dirty = true; - }); - if (isTitleCase4) { - terms[0].text = toTitleCase2(terms[0].text); - } - }); - this.compute("normal"); - return this; - } - } - View2.prototype.contractions = function() { - let m3 = this.match("@hasContraction+"); - return new Contractions(this.document, m3.pointer); - }; - View2.prototype.contract = contract_default; -}; -var api_default10 = api3; - -// node_modules/compromise/src/2-two/contraction-two/compute/_splice.js -var insertContraction2 = function(document2, point, words) { - let [n3, w] = point; - if (!words || words.length === 0) { - return; - } - words = words.map((word, i3) => { - word.implicit = word.text; - word.machine = word.text; - word.pre = ""; - word.post = ""; - word.text = ""; - word.normal = ""; - word.index = [n3, w + i3]; - return word; - }); - if (words[0]) { - words[0].pre = document2[n3][w].pre; - words[words.length - 1].post = document2[n3][w].post; - words[0].text = document2[n3][w].text; - words[0].normal = document2[n3][w].normal; - } - document2[n3].splice(w, 1, ...words); -}; -var splice_default2 = insertContraction2; - -// node_modules/compromise/src/2-two/contraction-two/compute/apostrophe-s.js -var hasContraction3 = /'/; -var isHas = (terms, i3) => { - let after2 = terms.slice(i3 + 1, i3 + 3); - return after2.some((t2) => t2.tags.has("PastTense")); -}; -var apostropheS = function(terms, i3) { - let before2 = terms[i3].normal.split(hasContraction3)[0]; - if (isHas(terms, i3)) { - return [before2, "has"]; - } - if (before2 === "let") { - return [before2, "us"]; - } - if (before2 === "there") { - let nextTerm = terms[i3 + 1]; - if (nextTerm && nextTerm.tags.has("Plural")) { - return [before2, "are"]; - } - } - return [before2, "is"]; -}; -var apostrophe_s_default = apostropheS; - -// node_modules/compromise/src/2-two/contraction-two/compute/apostrophe-d.js -var hasContraction4 = /'/; -var pickHad = (terms, i3) => { - if (terms[i3 + 1] && terms[i3 + 1].normal == "better") { - return true; - } - let after2 = terms.slice(i3 + 1, i3 + 3); - return after2.some((t2) => t2.tags.has("PastTense")); -}; -var _apostropheD2 = function(terms, i3) { - let before2 = terms[i3].normal.split(hasContraction4)[0]; - if (before2 === "how" || before2 === "what") { - return [before2, "did"]; - } - if (pickHad(terms, i3) === true) { - return [before2, "had"]; - } - return [before2, "would"]; -}; -var apostrophe_d_default2 = _apostropheD2; - -// node_modules/compromise/src/2-two/contraction-two/compute/apostrophe-t.js -var lastNoun = function(terms, i3) { - for (let n3 = i3 - 1; n3 >= 0; n3 -= 1) { - if (terms[n3].tags.has("Noun") || terms[n3].tags.has("Pronoun") || terms[n3].tags.has("Plural") || terms[n3].tags.has("Singular")) { - return terms[n3]; - } - } - return null; -}; -var apostropheT2 = function(terms, i3) { - if (terms[i3].normal === "ain't" || terms[i3].normal === "aint") { - if (terms[i3 + 1] && terms[i3 + 1].normal === "never") { - return ["have"]; - } - let noun = lastNoun(terms, i3); - if (noun) { - if (noun.normal === "we" || noun.normal === "they") { - return ["are", "not"]; - } - if (noun.normal === "i") { - return ["am", "not"]; - } - if (noun.tags && noun.tags.has("Plural")) { - return ["are", "not"]; - } - } - return ["is", "not"]; - } - let before2 = terms[i3].normal.replace(/n't/, ""); - return [before2, "not"]; -}; -var apostrophe_t_default2 = apostropheT2; - -// node_modules/compromise/src/2-two/contraction-two/compute/isPossessive.js -var banList = { - that: true, - there: true, - let: true, - here: true, - everywhere: true -}; -var beforePossessive = { - in: true, - by: true, - for: true -}; -var isPossessive = (terms, i3) => { - let term = terms[i3]; - if (banList.hasOwnProperty(term.machine || term.normal)) { - return false; - } - if (term.tags.has("Possessive")) { - return true; - } - if (term.tags.has("QuestionWord")) { - return false; - } - if (term.normal === `he's` || term.normal === `she's`) { - return false; - } - let nextTerm = terms[i3 + 1]; - if (!nextTerm) { - return true; - } - if (term.normal === `it's`) { - if (nextTerm.tags.has("#Noun")) { - return true; - } - return false; - } - if (nextTerm.tags.has("Verb")) { - if (nextTerm.tags.has("Infinitive")) { - return true; - } - if (nextTerm.tags.has("PresentTense")) { - return true; - } - return false; - } - if (nextTerm.tags.has("Noun")) { - let nextStr = nextTerm.machine || nextTerm.normal; - if (nextStr === "here" || nextStr === "there" || nextStr === "everywhere") { - return false; - } - if (nextTerm.tags.has("Possessive")) { - return false; - } - if (nextTerm.tags.has("ProperNoun") && !term.tags.has("ProperNoun")) { - return false; - } - return true; - } - if (terms[i3 - 1] && beforePossessive[terms[i3 - 1].normal] === true) { - return true; - } - let twoTerm = terms[i3 + 2]; - if (twoTerm && twoTerm.tags.has("Noun") && !twoTerm.tags.has("Pronoun")) { - return true; - } - if (nextTerm.tags.has("Adjective") || nextTerm.tags.has("Adverb") || nextTerm.tags.has("Verb")) { - return false; - } - return false; -}; -var isPossessive_default = isPossessive; - -// node_modules/compromise/src/2-two/contraction-two/compute/index.js -var byApostrophe2 = /'/; -var reIndex = function(terms) { - terms.forEach((t2, i3) => { - if (t2.index) { - t2.index[1] = i3; - } - }); -}; -var reTag2 = function(terms, view, start2, len) { - let tmp = view.update(); - tmp.document = [terms]; - let end2 = start2 + len; - if (start2 > 0) { - start2 -= 1; - } - if (terms[end2]) { - end2 += 1; - } - tmp.ptrs = [[0, start2, end2]]; - tmp.compute(["lexicon", "preTagger"]); - reIndex(terms); -}; -var byEnd2 = { - d: (terms, i3) => apostrophe_d_default2(terms, i3), - t: (terms, i3) => apostrophe_t_default2(terms, i3), - s: (terms, i3, world2) => { - if (isPossessive_default(terms, i3)) { - return world2.methods.one.setTag([terms[i3]], "Possessive", world2, "2-contraction"); - } - return apostrophe_s_default(terms, i3); - } -}; -var toDocs2 = function(words, view) { - let doc = view.fromText(words.join(" ")); - doc.compute("id"); - return doc.docs[0]; -}; -var contractionTwo = (view) => { - let { world: world2, document: document2 } = view; - document2.forEach((terms, n3) => { - for (let i3 = terms.length - 1; i3 >= 0; i3 -= 1) { - if (terms[i3].implicit) { - return; - } - let after2 = null; - if (byApostrophe2.test(terms[i3].normal) === true) { - [, after2] = terms[i3].normal.split(byApostrophe2); - } - let words = null; - if (byEnd2.hasOwnProperty(after2)) { - words = byEnd2[after2](terms, i3, world2); - } - if (words) { - words = toDocs2(words, view); - splice_default2(document2, [n3, i3], words); - reTag2(document2[n3], view, i3, words.length); - continue; - } - } - }); -}; -var compute_default9 = { contractionTwo }; - -// node_modules/compromise/src/2-two/contraction-two/plugin.js -var plugin_default14 = { - compute: compute_default9, - api: api_default10, - hooks: ["contractionTwo"] -}; - -// node_modules/compromise/src/2-two/postTagger/model/adjective/adjective.js -var adjective_default = [ - { match: "[(all|both)] #Determiner #Noun", group: 0, tag: "Noun", reason: "all-noun" }, - { match: "#Copula [(just|alone)]$", group: 0, tag: "Adjective", reason: "not-adverb" }, - { match: "#Singular is #Adverb? [#PastTense$]", group: 0, tag: "Adjective", reason: "is-filled" }, - { match: "[#PastTense] #Singular is", group: 0, tag: "Adjective", reason: "smoked-poutine" }, - { match: "[#PastTense] #Plural are", group: 0, tag: "Adjective", reason: "baked-onions" }, - { match: "well [#PastTense]", group: 0, tag: "Adjective", reason: "well-made" }, - { match: "#Copula [fucked up?]", group: 0, tag: "Adjective", reason: "swears-adjective" }, - { match: "#Singular (seems|appears) #Adverb? [#PastTense$]", group: 0, tag: "Adjective", reason: "seems-filled" }, - { match: "#Copula #Adjective? [(out|in|through)]$", group: 0, tag: "Adjective", reason: "still-out" }, - { match: "^[#Adjective] (the|your) #Noun", group: 0, notIf: "(all|even)", tag: "Infinitive", reason: "shut-the" }, - { match: "the [said] #Noun", group: 0, tag: "Adjective", reason: "the-said-card" }, - { match: "[#Hyphenated (#Hyphenated && #PastTense)] (#Noun|#Conjunction)", group: 0, tag: "Adjective", notIf: "#Adverb", reason: "faith-based" }, - { match: "[#Hyphenated (#Hyphenated && #Gerund)] (#Noun|#Conjunction)", group: 0, tag: "Adjective", notIf: "#Adverb", reason: "self-driving" }, - { match: "[#PastTense (#Hyphenated && #PhrasalVerb)] (#Noun|#Conjunction)", group: 0, tag: "Adjective", reason: "dammed-up" }, - { match: "(#Hyphenated && #Value) fold", tag: "Adjective", reason: "two-fold" }, - { match: "must (#Hyphenated && #Infinitive)", tag: "Adjective", reason: "must-win" }, - { match: `(#Hyphenated && #Infinitive) #Hyphenated`, tag: "Adjective", notIf: "#PhrasalVerb", reason: "vacuum-sealed" }, - { match: "too much", tag: "Adverb Adjective", reason: "bit-4" }, - { match: "a bit much", tag: "Determiner Adverb Adjective", reason: "bit-3" }, - { match: "[(un|contra|extra|inter|intra|macro|micro|mid|mis|mono|multi|pre|sub|tri|ex)] #Adjective", group: 0, tag: ["Adjective", "Prefix"], reason: "un-skilled" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/adjective/adj-adverb.js -var adverbAdj = `(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)`; -var adj_adverb_default = [ - { match: `#Adverb [#Adverb] (and|or|then)`, group: 0, tag: "Adjective", reason: "kinda-sparkly-and" }, - { match: `[${adverbAdj}] #Adjective`, group: 0, tag: "Adverb", reason: "dark-green" }, - { match: `#Copula [far too] #Adjective`, group: 0, tag: "Adverb", reason: "far-too" }, - { match: `#Copula [still] (in|#Gerund|#Adjective)`, group: 0, tag: "Adverb", reason: "was-still-walking" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/adjective/adj-gerund.js -var adj_gerund_default2 = [ - { match: "(a|an) [#Gerund]", group: 0, tag: "Adjective", reason: "a|an" }, - { match: "as [#Gerund] as", group: 0, tag: "Adjective", reason: "as-gerund-as" }, - { match: "more [#Gerund] than", group: 0, tag: "Adjective", reason: "more-gerund-than" }, - { match: "(so|very|extremely) [#Gerund]", group: 0, tag: "Adjective", reason: "so-gerund" }, - { match: "(found|found) it #Adverb? [#Gerund]", group: 0, tag: "Adjective", reason: "found-it-gerund" }, - { match: "a (little|bit|wee) bit? [#Gerund]", group: 0, tag: "Adjective", reason: "a-bit-gerund" }, - { match: "#Gerund [#Gerund]", group: 0, tag: "Adjective", notIf: "(impersonating|practicing|considering|assuming)", reason: "looking-annoying" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/adjective/adj-noun.js -var adj_noun_default2 = [ - { match: "#Determiner [#Adjective] #Copula", group: 0, tag: "Noun", reason: "the-adj-is" }, - { match: "#Adjective [#Adjective] #Copula", group: 0, tag: "Noun", reason: "adj-adj-is" }, - { match: "(his|its) [%Adj|Noun%]", group: 0, tag: "Noun", notIf: "#Hyphenated", reason: "his-fine" }, - { match: "#Copula #Adverb? [all]", group: 0, tag: "Noun", reason: "is-all" }, - { match: `(have|had) [#Adjective] #Preposition .`, group: 0, tag: "Noun", reason: "have-fun" }, - { match: `#Gerund (giant|capital|center|zone|application)`, tag: "Noun", reason: "brewing-giant" }, - { match: `#Preposition (a|an) [#Adjective]$`, group: 0, tag: "Noun", reason: "an-instant" }, - { match: `no [#Adjective] #Modal`, group: 0, tag: "Noun", reason: "no-golden" }, - { match: `[brand #Gerund?] new`, group: 0, tag: "Adverb", reason: "brand-new" }, - { match: `(#Determiner|#Comparative|new|different) [kind]`, group: 0, tag: "Noun", reason: "some-kind" }, - { match: `#Possessive [%Adj|Noun%] #Noun`, group: 0, tag: "Adjective", reason: "her-favourite" }, - { match: `must && #Hyphenated .`, tag: "Adjective", reason: "must-win" }, - { match: `#Determiner [#Adjective]$`, tag: "Noun", notIf: "(this|that|#Comparative|#Superlative)", reason: "the-south" }, - { match: `(#Noun && #Hyphenated) (#Adjective && #Hyphenated)`, tag: "Adjective", notIf: "(this|that|#Comparative|#Superlative)", reason: "company-wide" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/adjective/adj-verb.js -var adj_verb_default = [ - { match: "(slowly|quickly) [#Adjective]", group: 0, tag: "Verb", reason: "slowly-adj" }, - { match: "does (#Adverb|not)? [#Adjective]", group: 0, tag: "PresentTense", reason: "does-mean" }, - { match: "[(fine|okay|cool|ok)] by me", group: 0, tag: "Adjective", reason: "okay-by-me" }, - { match: "i (#Adverb|do)? not? [mean]", group: 0, tag: "PresentTense", reason: "i-mean" }, - { match: "will #Adjective", tag: "Auxiliary Infinitive", reason: "will-adj" }, - { match: "#Pronoun [#Adjective] #Determiner #Adjective? #Noun", group: 0, tag: "Verb", reason: "he-adj-the" }, - { match: "#Copula [%Adj|Present%] to #Verb", group: 0, tag: "Verb", reason: "adj-to" }, - { match: "#Copula [#Adjective] (well|badly|quickly|slowly)", group: 0, tag: "Verb", reason: "done-well" }, - { match: "#Adjective and [#Gerund] !#Preposition?", group: 0, tag: "Adjective", reason: "rude-and-x" }, - { match: "#Copula #Adverb? (over|under) [#PastTense]", group: 0, tag: "Adjective", reason: "over-cooked" }, - { match: "#Copula #Adjective+ (and|or) [#PastTense]$", group: 0, tag: "Adjective", reason: "bland-and-overcooked" }, - { match: "got #Adverb? [#PastTense] of", group: 0, tag: "Adjective", reason: "got-tired-of" }, - { match: "(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]", group: 0, tag: "Adjective", reason: "felt-loved" }, - { match: "(seem|feel|seemed|felt) [#PastTense #Particle?]", group: 0, tag: "Adjective", reason: "seem-confused" }, - { match: "a (bit|little|tad) [#PastTense #Particle?]", group: 0, tag: "Adjective", reason: "a-bit-confused" }, - { match: "not be [%Adj|Past% #Particle?]", group: 0, tag: "Adjective", reason: "do-not-be-confused" }, - { match: "#Copula just [%Adj|Past% #Particle?]", group: 0, tag: "Adjective", reason: "is-just-right" }, - { match: "as [#Infinitive] as", group: 0, tag: "Adjective", reason: "as-pale-as" }, - { match: "[%Adj|Past%] and #Adjective", group: 0, tag: "Adjective", reason: "faled-and-oppressive" }, - { match: "or [#PastTense] #Noun", group: 0, tag: "Adjective", notIf: "(#Copula|#Pronoun)", reason: "or-heightened-emotion" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/adverb.js -var adverb_default = [ - { match: "[still] #Adjective", group: 0, tag: "Adverb", reason: "still-advb" }, - { match: "[still] #Verb", group: 0, tag: "Adverb", reason: "still-verb" }, - { match: "[so] #Adjective", group: 0, tag: "Adverb", reason: "so-adv" }, - { match: "[way] #Comparative", group: 0, tag: "Adverb", reason: "way-adj" }, - { match: "[way] #Adverb #Adjective", group: 0, tag: "Adverb", reason: "way-too-adj" }, - { match: "[all] #Verb", group: 0, tag: "Adverb", reason: "all-verb" }, - { match: "#Verb [like]", group: 0, notIf: "(#Modal|#PhrasalVerb)", tag: "Adverb", reason: "verb-like" }, - { match: "(barely|hardly) even", tag: "Adverb", reason: "barely-even" }, - { match: "[even] #Verb", group: 0, tag: "Adverb", reason: "even-walk" }, - { match: "[even] #Comparative", group: 0, tag: "Adverb", reason: "even-worse" }, - { match: "[even] (#Determiner|#Possessive)", group: 0, tag: "#Adverb", reason: "even-the" }, - { match: "even left", tag: "#Adverb #Verb", reason: "even-left" }, - { match: "[way] #Adjective", group: 0, tag: "#Adverb", reason: "way-over" }, - { - match: "#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]", - notIf: "#Copula", - group: 0, - tag: "Adverb", - reason: "lazy-ly" - }, - { match: "[much] #Adjective", group: 0, tag: "Adverb", reason: "bit-1" }, - { match: "#Copula [#Adverb]$", group: 0, tag: "Adjective", reason: "is-well" }, - { match: "a [(little|bit|wee) bit?] #Adjective", group: 0, tag: "Adverb", reason: "a-bit-cold" }, - { match: `[(super|pretty)] #Adjective`, group: 0, tag: "Adverb", reason: "super-strong" }, - { match: "(become|fall|grow) #Adverb? [#PastTense]", group: 0, tag: "Adjective", reason: "overly-weakened" }, - { match: "(a|an) #Adverb [#Participle] #Noun", group: 0, tag: "Adjective", reason: "completely-beaten" }, - { match: "#Determiner #Adverb? [close]", group: 0, tag: "Adjective", reason: "a-close" }, - { match: "#Gerund #Adverb? [close]", group: 0, tag: "Adverb", reason: "being-close" }, - { match: "(the|those|these|a|an) [#Participle] #Noun", group: 0, tag: "Adjective", reason: "blown-motor" }, - { match: "(#PresentTense|#PastTense) [back]", group: 0, tag: "Adverb", notIf: "#PhrasalVerb", reason: "charge-back" }, - { match: "#Verb [around]", group: 0, tag: "Adverb", notIf: "#PhrasalVerb", reason: "send-around" }, - { match: "[later] #PresentTense", group: 0, tag: "Adverb", reason: "later-say" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/dates/date-phrase.js -var date_phrase_default = [ - { match: "#Holiday (day|eve)", tag: "Holiday", reason: "holiday-day" }, - { match: "#Value of #Month", tag: "Date", reason: "value-of-month" }, - { match: "#Cardinal #Month", tag: "Date", reason: "cardinal-month" }, - { match: "#Month #Value to #Value", tag: "Date", reason: "value-to-value" }, - { match: "#Month the #Value", tag: "Date", reason: "month-the-value" }, - { match: "(#WeekDay|#Month) #Value", tag: "Date", reason: "date-value" }, - { match: "#Value (#WeekDay|#Month)", tag: "Date", reason: "value-date" }, - { match: "(#TextValue && #Date) #TextValue", tag: "Date", reason: "textvalue-date" }, - { match: `#Month #NumberRange`, tag: "Date", reason: "aug 20-21" }, - { match: `#WeekDay #Month #Ordinal`, tag: "Date", reason: "week mm-dd" }, - { match: `#Month #Ordinal #Cardinal`, tag: "Date", reason: "mm-dd-yyy" }, - { match: `(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time`, tag: "Timezone", reason: "std-time" }, - { - match: `(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time`, - tag: "Timezone", - reason: "eastern-time" - }, - { match: `#Time [(eastern|mountain|pacific|central|est|pst|gmt)]`, group: 0, tag: "Timezone", reason: "5pm-central" }, - { match: `(central|western|eastern) european time`, tag: "Timezone", reason: "cet" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/dates/date.js -var date_default = [ - { match: "[sun] the #Ordinal", tag: "WeekDay", reason: "sun-the-5th" }, - { match: "[sun] #Date", group: 0, tag: "WeekDay", reason: "sun-feb" }, - { match: "#Date (on|this|next|last|during)? [sun]", group: 0, tag: "WeekDay", reason: "1pm-sun" }, - { match: `(in|by|before|during|on|until|after|of|within|all) [sat]`, group: 0, tag: "WeekDay", reason: "sat" }, - { match: `(in|by|before|during|on|until|after|of|within|all) [wed]`, group: 0, tag: "WeekDay", reason: "wed" }, - { match: `(in|by|before|during|on|until|after|of|within|all) [march]`, group: 0, tag: "Month", reason: "march" }, - { match: "[sat] #Date", group: 0, tag: "WeekDay", reason: "sat-feb" }, - { match: `#Preposition [(march|may)]`, group: 0, tag: "Month", reason: "in-month" }, - { match: `(this|next|last) (march|may) !#Infinitive`, tag: "#Date #Month", reason: "this-month" }, - { match: `(march|may) the? #Value`, tag: "#Month #Date #Date", reason: "march-5th" }, - { match: `#Value of? (march|may)`, tag: "#Date #Date #Month", reason: "5th-of-march" }, - { match: `[(march|may)] .? #Date`, group: 0, tag: "Month", reason: "march-and-feb" }, - { match: `#Date .? [(march|may)]`, group: 0, tag: "Month", reason: "feb-and-march" }, - { match: `#Adverb [(march|may)]`, group: 0, tag: "Verb", reason: "quickly-march" }, - { match: `[(march|may)] #Adverb`, group: 0, tag: "Verb", reason: "march-quickly" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/nouns/nouns.js -var infNouns = "(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)"; -var nouns_default4 = [ - { match: "(the|any) [more]", group: 0, tag: "Singular", reason: "more-noun" }, - { match: "[more] #Noun", group: 0, tag: "Adjective", reason: "more-noun" }, - { match: "(right|rights) of .", tag: "Noun", reason: "right-of" }, - { match: "a [bit]", group: 0, tag: "Singular", reason: "bit-2" }, - { match: "a [must]", group: 0, tag: "Singular", reason: "must-2" }, - { match: "(we|us) [all]", group: 0, tag: "Noun", reason: "we all" }, - { match: "due to [#Verb]", group: 0, tag: "Noun", reason: "due-to" }, - { match: "some [#Verb] #Plural", group: 0, tag: "Noun", reason: "determiner6" }, - { match: "#Possessive #Ordinal [#PastTense]", group: 0, tag: "Noun", reason: "first-thought" }, - { match: "(the|this|those|these) #Adjective [%Verb|Noun%]", group: 0, tag: "Noun", notIf: "#Copula", reason: "the-adj-verb" }, - { match: "(the|this|those|these) #Adverb #Adjective [#Verb]", group: 0, tag: "Noun", reason: "determiner4" }, - { match: "the [#Verb] #Preposition .", group: 0, tag: "Noun", reason: "determiner1" }, - { match: "(a|an|the) [#Verb] of", group: 0, tag: "Noun", reason: "the-verb-of" }, - { match: "#Determiner #Noun of [#Verb]", group: 0, tag: "Noun", notIf: "#Gerund", reason: "noun-of-noun" }, - { match: "#PastTense #Preposition [#PresentTense]", group: 0, notIf: "#Gerund", tag: "Noun", reason: "ended-in-ruins" }, - { match: "#Conjunction [u]", group: 0, tag: "Pronoun", reason: "u-pronoun-2" }, - { match: "[u] #Verb", group: 0, tag: "Pronoun", reason: "u-pronoun-1" }, - { match: "#Determiner [(western|eastern|northern|southern|central)] #Noun", group: 0, tag: "Noun", reason: "western-line" }, - { match: "(#Singular && @hasHyphen) #PresentTense", tag: "Noun", reason: "hyphen-verb" }, - { match: "is no [#Verb]", group: 0, tag: "Noun", reason: "is-no-verb" }, - { match: "do [so]", group: 0, tag: "Noun", reason: "so-noun" }, - { match: "#Determiner [(shit|damn|hell)]", group: 0, tag: "Noun", reason: "swears-noun" }, - { match: "to [(shit|hell)]", group: 0, tag: "Noun", reason: "to-swears" }, - { match: "(the|these) [#Singular] (were|are)", group: 0, tag: "Plural", reason: "singular-were" }, - { match: `a #Noun+ or #Adverb+? [#Verb]`, group: 0, tag: "Noun", reason: "noun-or-noun" }, - { match: "(the|those|these|a|an) #Adjective? [#PresentTense #Particle?]", group: 0, tag: "Noun", notIf: "(seem|appear|include|#Gerund|#Copula)", reason: "det-inf" }, - { match: "#Noun #Actor", tag: "Actor", reason: "thing-doer" }, - { match: "[#Actor+] #ProperNoun", group: 0, tag: "Honorific", reason: "sgt-kelly" }, - { match: `co #Singular`, tag: "Actor", reason: "co-noun" }, - { match: "#Determiner [sun]", group: 0, tag: "Singular", reason: "the-sun" }, - { match: "#Verb (a|an) [#Value]", group: 0, tag: "Singular", reason: "did-a-value" }, - { match: "the [(can|will|may)]", group: 0, tag: "Singular", reason: "the can" }, - { match: "#FirstName #Acronym? (#Possessive && #LastName)", tag: "Possessive", reason: "name-poss" }, - { match: "#Organization+ #Possessive", tag: "Possessive", reason: "org-possessive" }, - { match: "#Place+ #Possessive", tag: "Possessive", reason: "place-possessive" }, - { match: "#Possessive #PresentTense #Particle?", notIf: "(#Gerund|her)", tag: "Noun", reason: "possessive-verb" }, - { match: "(my|our|their|her|his|its) [(#Plural && #Actor)] #Noun", tag: "Possessive", reason: "my-dads" }, - { match: "#Value of a [second]", group: 0, unTag: "Value", tag: "Singular", reason: "10th-of-a-second" }, - { match: "#Value [seconds]", group: 0, unTag: "Value", tag: "Plural", reason: "10-seconds" }, - { match: "in [#Infinitive]", group: 0, tag: "Singular", reason: "in-age" }, - { match: "a [#Adjective] #Preposition", group: 0, tag: "Noun", reason: "a-minor-in" }, - { match: "#Determiner [#Singular] said", group: 0, tag: "Actor", reason: "the-actor-said" }, - { match: `#Determiner #Noun [${infNouns}] !(#Preposition|to|#Adverb)?`, group: 0, tag: "Noun", reason: "the-noun-sense" }, - { match: "[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula", group: 0, tag: "Plural", reason: "photographs-of" }, - { match: "#Infinitive and [%Noun|Verb%]", group: 0, tag: "Infinitive", reason: "fight and win" }, - { match: "#Noun and [#Verb] and #Noun", group: 0, tag: "Noun", reason: "peace-and-flowers" }, - { match: "the #Cardinal [%Adj|Noun%]", group: 0, tag: "Noun", reason: "the-1992-classic" }, - { match: "#Copula the [%Adj|Noun%] #Noun", group: 0, tag: "Adjective", reason: "the-premier-university" }, - { match: "i #Verb [me] #Noun", group: 0, tag: "Possessive", reason: "scottish-me" }, - { match: "[#PresentTense] (music|class|lesson|night|party|festival|league|ceremony)", group: 0, tag: "Noun", reason: "dance-music" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/noun-gerund.js -var noun_gerund_default2 = [ - { match: "(this|that|the|a|an) [#Gerund #Infinitive]", group: 0, tag: "Singular", reason: "the-planning-process" }, - { match: "(that|the) [#Gerund #PresentTense]", group: 0, ifNo: "#Copula", tag: "Plural", reason: "the-paving-stones" }, - { match: "#Determiner [#Gerund] #Noun", group: 0, tag: "Adjective", reason: "the-gerund-noun" }, - { match: `#Pronoun #Infinitive [#Gerund] #PresentTense`, group: 0, tag: "Noun", reason: "tipping-sucks" }, - { match: "#Adjective [#Gerund]", group: 0, tag: "Noun", notIf: "(still|even|just)", reason: "early-warning" }, - { match: "[#Gerund] #Adverb? not? #Copula", group: 0, tag: "Activity", reason: "gerund-copula" }, - { match: "[#Gerund] #Modal", group: 0, tag: "Activity", reason: "gerund-modal" }, - { match: "#Singular for [%Noun|Gerund%]", group: 0, tag: "Gerund", reason: "noun-for-gerund" }, - { match: "#Comparative (for|at) [%Noun|Gerund%]", group: 0, tag: "Gerund", reason: "better-for-gerund" }, - { match: "#PresentTense the [#Gerund]", group: 0, tag: "Noun", reason: "keep-the-touching" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/verb-noun.js -var verb_noun_default = [ - { match: "#Infinitive (this|that|the) [#Infinitive]", group: 0, tag: "Noun", reason: "do-this-dance" }, - { match: "#Gerund #Determiner [#Infinitive]", group: 0, tag: "Noun", reason: "running-a-show" }, - { match: "#Determiner (only|further|just|more|backward) [#Infinitive]", group: 0, tag: "Noun", reason: "the-only-reason" }, - { match: "(the|this|a|an) [#Infinitive] #Adverb? #Verb", group: 0, tag: "Noun", reason: "determiner5" }, - { match: "#Determiner #Adjective #Adjective? [#Infinitive]", group: 0, tag: "Noun", reason: "a-nice-inf" }, - { match: "#Determiner #Demonym [#PresentTense]", group: 0, tag: "Noun", reason: "mexican-train" }, - { match: "#Adjective #Noun+ [#Infinitive] #Copula", group: 0, tag: "Noun", reason: "career-move" }, - { match: "at some [#Infinitive]", group: 0, tag: "Noun", reason: "at-some-inf" }, - { match: "(go|goes|went) to [#Infinitive]", group: 0, tag: "Noun", reason: "goes-to-verb" }, - { match: "(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)", group: 0, tag: "Noun", reason: "a-noun-inf" }, - { match: "(a|an) #Noun [#Infinitive]$", group: 0, tag: "Noun", reason: "a-noun-inf2" }, - { match: "#Gerund #Adjective? for [#Infinitive]", group: 0, tag: "Noun", reason: "running-for" }, - { match: "#Gerund #Adjective to [#Infinitive]", group: 0, tag: "Noun", reason: "running-to" }, - { match: "about [#Infinitive]", group: 0, tag: "Singular", reason: "about-love" }, - { match: "#Plural on [#Infinitive]", group: 0, tag: "Noun", reason: "on-stage" }, - { match: "any [#Infinitive]", group: 0, tag: "Noun", reason: "any-charge" }, - { match: "no [#Infinitive]", group: 0, tag: "Noun", reason: "no-doubt" }, - { match: "number of [#PresentTense]", group: 0, tag: "Noun", reason: "number-of-x" }, - { match: "(taught|teaches|learns|learned) [#PresentTense]", group: 0, tag: "Noun", reason: "teaches-x" }, - { match: "(try|use|attempt|build|make) [#Verb #Particle?]", notIf: "(#Copula|#Noun|sure|fun|up)", group: 0, tag: "Noun", reason: "do-verb" }, - { match: "^[#Infinitive] (is|was)", group: 0, tag: "Noun", reason: "checkmate-is" }, - { match: "#Infinitive much [#Infinitive]", group: 0, tag: "Noun", reason: "get-much" }, - { match: "[cause] #Pronoun #Verb", group: 0, tag: "Conjunction", reason: "cause-cuz" }, - { match: "the #Singular [#Infinitive] #Noun", group: 0, tag: "Noun", notIf: "#Pronoun", reason: "cardio-dance" }, - { match: "#Determiner #Modal [#Noun]", group: 0, tag: "PresentTense", reason: "should-smoke" }, - { match: "(this|that) [#Plural]", group: 0, tag: "PresentTense", notIf: "#Preposition", reason: "this-verbs" }, - { - match: "(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)", - group: 0, - tag: "Infinitive", - reason: "let-him-glue" - }, - { match: "#Verb (all|every|each|most|some|no) [#PresentTense]", notIf: "#Modal", group: 0, tag: "Noun", reason: "all-presentTense" }, - { match: "(had|have|#PastTense) #Adjective [#PresentTense]", group: 0, tag: "Noun", notIf: "better", reason: "adj-presentTense" }, - { match: "#Value #Adjective [#PresentTense]", group: 0, tag: "Noun", notIf: "#Copula", reason: "one-big-reason" }, - { match: "#PastTense #Adjective+ [#PresentTense]", group: 0, tag: "Noun", notIf: "(#Copula|better)", reason: "won-wide-support" }, - { match: "(many|few|several|couple) [#PresentTense]", group: 0, tag: "Noun", notIf: "#Copula", reason: "many-poses" }, - { match: "#Determiner #Adverb #Adjective [%Noun|Verb%]", group: 0, tag: "Noun", notIf: "#Copula", reason: "very-big-dream" }, - { match: "from #Noun to [%Noun|Verb%]", group: 0, tag: "Noun", reason: "start-to-finish" }, - { match: "(for|with|of) #Noun (and|or|not) [%Noun|Verb%]", group: 0, tag: "Noun", notIf: "#Pronoun", reason: "for-food-and-gas" }, - { match: "#Adjective #Adjective [#PresentTense]", group: 0, tag: "Noun", notIf: "#Copula", reason: "adorable-little-store" }, - { match: "#Gerund #Adverb? #Comparative [#PresentTense]", group: 0, tag: "Noun", notIf: "#Copula", reason: "higher-costs" }, - { match: "(#Noun && @hasComma) #Noun (and|or) [#PresentTense]", group: 0, tag: "Noun", notIf: "#Copula", reason: "noun-list" }, - { match: "(many|any|some|several) [#PresentTense] for", group: 0, tag: "Noun", reason: "any-verbs-for" }, - { match: `to #PresentTense #Noun [#PresentTense] #Preposition`, group: 0, tag: "Noun", reason: "gas-exchange" }, - { match: `#PastTense (until|as|through|without) [#PresentTense]`, group: 0, tag: "Noun", reason: "waited-until-release" }, - { match: `#Gerund like #Adjective? [#PresentTense]`, group: 0, tag: "Plural", reason: "like-hot-cakes" }, - { match: `some #Adjective [#PresentTense]`, group: 0, tag: "Noun", reason: "some-reason" }, - { match: `for some [#PresentTense]`, group: 0, tag: "Noun", reason: "for-some-reason" }, - { match: `(same|some|the|that|a) kind of [#PresentTense]`, group: 0, tag: "Noun", reason: "some-kind-of" }, - { match: `(same|some|the|that|a) type of [#PresentTense]`, group: 0, tag: "Noun", reason: "some-type-of" }, - { match: `#Gerund #Adjective #Preposition [#PresentTense]`, group: 0, tag: "Noun", reason: "doing-better-for-x" }, - { match: `(get|got|have) #Comparative [#PresentTense]`, group: 0, tag: "Noun", reason: "got-better-aim" }, - { match: "whose [#PresentTense] #Copula", group: 0, tag: "Noun", reason: "whos-name-was" }, - { match: `#PhrasalVerb #Particle #Preposition [#PresentTense]`, group: 0, tag: "Noun", reason: "given-up-on-x" }, - { match: "there (are|were) #Adjective? [#PresentTense]", group: 0, tag: "Plural", reason: "there-are" }, - { match: "#Value [#PresentTense] of", group: 0, notIf: "(one|1|#Copula|#Infinitive)", tag: "Plural", reason: "2-trains" }, - { match: "[#PresentTense] (are|were) #Adjective", group: 0, tag: "Plural", reason: "compromises-are-possible" }, - { match: "^[(hope|guess|thought|think)] #Pronoun #Verb", group: 0, tag: "Infinitive", reason: "suppose-i" }, - { match: "#Possessive #Adjective [#Verb]", group: 0, tag: "Noun", notIf: "#Copula", reason: "our-full-support" }, - { match: "[(tastes|smells)] #Adverb? #Adjective", group: 0, tag: "PresentTense", reason: "tastes-good" }, - { match: "#Copula #Gerund [#PresentTense] !by?", group: 0, tag: "Noun", notIf: "going", reason: "ignoring-commute" }, - { match: "#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]", group: 0, tag: "Noun", reason: "noun-past" }, - { match: "how to [%Noun|Verb%]", group: 0, tag: "Infinitive", reason: "how-to-noun" }, - { match: "which [%Noun|Verb%] #Noun", group: 0, tag: "Infinitive", reason: "which-boost-it" }, - { match: "#Gerund [%Plural|Verb%]", group: 0, tag: "Plural", reason: "asking-questions" }, - { match: "(ready|available|difficult|hard|easy|made|attempt|try) to [%Noun|Verb%]", group: 0, tag: "Infinitive", reason: "ready-to-noun" }, - { match: "(bring|went|go|drive|run|bike) to [%Noun|Verb%]", group: 0, tag: "Noun", reason: "bring-to-noun" }, - { match: "#Modal #Noun [%Noun|Verb%]", group: 0, tag: "Infinitive", reason: "would-you-look" }, - { match: "#Copula just [#Infinitive]", group: 0, tag: "Noun", reason: "is-just-spam" }, - { match: "^%Noun|Verb% %Plural|Verb%", tag: "Imperative #Plural", reason: "request-copies" }, - { match: "#Adjective #Plural and [%Plural|Verb%]", group: 0, tag: "#Plural", reason: "pickles-and-drinks" }, - { match: "#Determiner #Year [#Verb]", group: 0, tag: "Noun", reason: "the-1968-film" }, - { match: "#Determiner [#PhrasalVerb #Particle]", group: 0, tag: "Noun", reason: "the-break-up" }, - { match: "#Determiner [%Adj|Noun%] #Noun", group: 0, tag: "Adjective", notIf: "(#Pronoun|#Possessive|#ProperNoun)", reason: "the-individual-goals" }, - { match: "[%Noun|Verb%] or #Infinitive", group: 0, tag: "Infinitive", reason: "work-or-prepare" }, - { match: "to #Infinitive [#PresentTense]", group: 0, tag: "Noun", notIf: "(#Gerund|#Copula|help)", reason: "to-give-thanks" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/numbers/money.js -var money_default = [ - { match: "#Money and #Money #Currency?", tag: "Money", reason: "money-and-money" }, - { match: "#Value #Currency [and] #Value (cents|ore|centavos|sens)", group: 0, tag: "money", reason: "and-5-cents" }, - { match: "#Value (mark|rand|won|rub|ore)", tag: "#Money #Currency", reason: "4 mark" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/numbers/fractions.js -var fractions_default = [ - { match: "[(half|quarter)] of? (a|an)", group: 0, tag: "Fraction", reason: "millionth" }, - { match: "#Adverb [half]", group: 0, tag: "Fraction", reason: "nearly-half" }, - { match: "[half] the", group: 0, tag: "Fraction", reason: "half-the" }, - { match: "#Cardinal and a half", tag: "Fraction", reason: "and-a-half" }, - { match: "#Value (halves|halfs|quarters)", tag: "Fraction", reason: "two-halves" }, - { match: "a #Ordinal", tag: "Fraction", reason: "a-quarter" }, - { match: "[#Cardinal+] (#Fraction && /s$/)", tag: "Fraction", reason: "seven-fifths" }, - { match: "[#Cardinal+ #Ordinal] of .", group: 0, tag: "Fraction", reason: "ordinal-of" }, - { match: "[(#NumericValue && #Ordinal)] of .", group: 0, tag: "Fraction", reason: "num-ordinal-of" }, - { match: "(a|one) #Cardinal?+ #Ordinal", tag: "Fraction", reason: "a-ordinal" }, - { match: "#Cardinal+ out? of every? #Cardinal", tag: "Fraction", reason: "out-of" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/numbers/numbers.js -var numbers_default = [ - { match: `#Cardinal [second]`, tag: "Unit", reason: "one-second" }, - { - match: "!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)", - group: 0, - tag: "Value", - reason: "a-is-one" - }, - { match: "1 #Value #PhoneNumber", tag: "PhoneNumber", reason: "1-800-Value" }, - { match: "#NumericValue #PhoneNumber", tag: "PhoneNumber", reason: "(800) PhoneNumber" }, - { match: "#Demonym #Currency", tag: "Currency", reason: "demonym-currency" }, - { match: "#Value [(buck|bucks|grand)]", group: 0, tag: "Currency", reason: "value-bucks" }, - { match: "[#Value+] #Currency", group: 0, tag: "Money", reason: "15 usd" }, - { match: "[second] #Noun", group: 0, tag: "Ordinal", reason: "second-noun" }, - { match: "#Value+ [#Currency]", group: 0, tag: "Unit", reason: "5-yan" }, - { match: "#Value [(foot|feet)]", group: 0, tag: "Unit", reason: "foot-unit" }, - { match: "#Value [#Abbreviation]", group: 0, tag: "Unit", reason: "value-abbr" }, - { match: "#Value [k]", group: 0, tag: "Unit", reason: "value-k" }, - { match: "#Unit an hour", tag: "Unit", reason: "unit-an-hour" }, - { match: "(minus|negative) #Value", tag: "Value", reason: "minus-value" }, - { match: "#Value (point|decimal) #Value", tag: "Value", reason: "value-point-value" }, - { match: "#Determiner [(half|quarter)] #Ordinal", group: 0, tag: "Value", reason: "half-ordinal" }, - { match: `#Multiple+ and #Value`, tag: "Value", reason: "magnitude-and-value" }, - { match: "#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]", group: 0, tag: "Unit", reason: "12-miles-per-second" }, - { match: "#Value [(square|cubic)] #Unit", group: 0, tag: "Unit", reason: "square-miles" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/person/person-phrase.js -var person_phrase_default = [ - { match: "#Copula [(#Noun|#PresentTense)] #LastName", group: 0, tag: "FirstName", reason: "copula-noun-lastname" }, - { match: "(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun", tag: "Person", reason: "lady-titlecase", safe: true }, - { match: "#FirstName [#Determiner #Noun] #LastName", group: 0, tag: "Person", reason: "first-noun-last" }, - { - match: "#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun", - tag: "Person", - reason: "titlecase-acronym-titlecase", - safe: true - }, - { match: "#Acronym #LastName", tag: "Person", reason: "acronym-lastname", safe: true }, - { match: "#Person (jr|sr|md)", tag: "Person", reason: "person-honorific" }, - { match: "#Honorific #Acronym", tag: "Person", reason: "Honorific-TitleCase" }, - { match: "#Person #Person the? #RomanNumeral", tag: "Person", reason: "roman-numeral" }, - { match: "#FirstName [/^[^aiurck]$/]", group: 0, tag: ["Acronym", "Person"], reason: "john-e" }, - { match: "#Noun van der? #Noun", tag: "Person", reason: "van der noun", safe: true }, - { match: "(king|queen|prince|saint|lady) of #Noun", tag: "Person", reason: "king-of-noun", safe: true }, - { match: "(prince|lady) #Place", tag: "Person", reason: "lady-place" }, - { match: "(king|queen|prince|saint) #ProperNoun", tag: "Person", reason: "saint-foo" }, - { match: "al (#Person|#ProperNoun)", tag: "Person", reason: "al-borlen", safe: true }, - { match: "#FirstName de #Noun", tag: "Person", reason: "bill-de-noun" }, - { match: "#FirstName (bin|al) #Noun", tag: "Person", reason: "bill-al-noun" }, - { match: "#FirstName #Acronym #ProperNoun", tag: "Person", reason: "bill-acronym-title" }, - { match: "#FirstName #FirstName #ProperNoun", tag: "Person", reason: "bill-firstname-title" }, - { match: "(#Honorific|#Actor) #FirstName? #ProperNoun", tag: "Person", reason: "dr-john-Title" }, - { match: "#FirstName the #Adjective", tag: "Person", reason: "name-the-great" }, - { match: "#ProperNoun (van|al|bin) #ProperNoun", tag: "Person", reason: "title-van-title", safe: true }, - { match: "#ProperNoun (de|du) la? #ProperNoun", tag: "Person", reason: "title-de-title" }, - { match: "#Singular #Acronym #LastName", tag: "#FirstName #Person .", reason: "title-acro-noun", safe: true }, - { match: "[#ProperNoun] #Person", group: 0, tag: "Person", reason: "proper-person", safe: true }, - { match: "#Person [#ProperNoun #ProperNoun]", group: 0, tag: "Person", notIf: "#Possessive", reason: "three-name-person", safe: true }, - { match: "#FirstName #Acronym? [#ProperNoun]", group: 0, tag: "LastName", notIf: "#Possessive", reason: "firstname-titlecase" }, - { match: "#FirstName [#FirstName]", group: 0, tag: "LastName", reason: "firstname-firstname" }, - { match: "#FirstName #Acronym #Noun", tag: "Person", reason: "n-acro-noun", safe: true }, - { match: "#FirstName [(de|di|du|van|von)] #Person", group: 0, tag: "LastName", reason: "de-firstname" }, - { match: "[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person", group: 0, tag: ["Honorific", "Person"], reason: "ambg-honorifics" }, - { match: "#Honorific #FirstName [#Singular]", group: 0, tag: "LastName", notIf: "#Possessive", reason: "dr-john-foo", safe: true }, - { match: "[(his|her) (majesty|honour|worship|excellency|honorable)] #Person", group: 0, tag: "Honorific", reason: "his-excellency" }, - { match: "#Honorific #Actor", tag: "Honorific", reason: "Lieutenant colonel" }, - { match: "(first|second|third|1st|2nd|3rd) #Actor", tag: "Honorific", reason: "first lady" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/person/ambig-name.js -var personAdj = "(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)"; -var ambig_name_default = [ - { match: "%Person|Date% #Acronym? #ProperNoun", tag: "Person", reason: "jan-thierson" }, - { match: "%Person|Noun% #Acronym? #ProperNoun", tag: "Person", reason: "switch-person", safe: true }, - { match: "%Person|Noun% #Organization", tag: "Organization", reason: "olive-garden" }, - { match: "%Person|Verb% #Acronym? #ProperNoun", tag: "Person", reason: "verb-propernoun" }, - { match: `[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)`, group: 0, tag: "Person", reason: "person-said" }, - { match: `[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)`, group: 0, tag: "Place", reason: "sydney-harbour" }, - { match: `(west|east|north|south) [%Person|Place%]`, group: 0, tag: "Place", reason: "east-sydney" }, - { match: `${personAdj} #Person`, tag: "Person", reason: "randy-smith" }, - { match: `${personAdj} #Acronym? #ProperNoun`, tag: "Person", reason: "rusty-smith" }, - { match: `#Adverb [${personAdj}]`, group: 0, tag: "Adjective", reason: "really-rich" }, - { match: `#Modal [%Person|Verb%]`, group: 0, tag: "Verb", reason: "would-mark" }, - { match: `#Adverb [%Person|Verb%]`, group: 0, tag: "Verb", reason: "really-mark" }, - { match: `[%Person|Verb%] (#Adverb|#Comparative)`, group: 0, tag: "Verb", reason: "drew-closer" }, - { match: `%Person|Verb% #Person`, tag: "Person", reason: "rob-smith" }, - { match: `%Person|Verb% #Acronym #ProperNoun`, tag: "Person", reason: "rob-a-smith" }, - { match: "[will] #Verb", group: 0, tag: "Modal", reason: "will-verb" }, - { match: "(will && @isTitleCase) #ProperNoun", tag: "Person", reason: "will-name" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/verbs.js -var verbs_default3 = [ - { - match: "#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)", - tag: "#Copula #Adverb #Adjective", - reason: "sometimes-adverb" - }, - { match: "(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense", group: 0, tag: "Modal", reason: "i-better" }, - { match: "(#Modal|i|they|we|do) not? [like]", group: 0, tag: "PresentTense", reason: "modal-like" }, - { match: "#Noun #Adverb? [left]", group: 0, tag: "PastTense", reason: "left-verb" }, - { match: "will #Adverb? not? #Adverb? [be] #Gerund", group: 0, tag: "Copula", reason: "will-be-copula" }, - { match: "will #Adverb? not? #Adverb? [be] #Adjective", group: 0, tag: "Copula", reason: "be-copula" }, - { match: "[march] (up|down|back|toward)", notIf: "#Date", group: 0, tag: "Infinitive", reason: "march-to" }, - { match: "#Modal [march]", group: 0, tag: "Infinitive", reason: "must-march" }, - { match: `[may] be`, group: 0, tag: "Verb", reason: "may-be" }, - { match: `[(subject|subjects|subjected)] to`, group: 0, tag: "Verb", reason: "subject to" }, - { match: `[home] to`, group: 0, tag: "PresentTense", reason: "home to" }, - { match: "[open] #Determiner", group: 0, tag: "Infinitive", reason: "open-the" }, - { match: `(were|was) being [#PresentTense]`, group: 0, tag: "PastTense", reason: "was-being" }, - { match: `(had|has|have) [been /en$/]`, group: 0, tag: "Auxiliary Participle", reason: "had-been-broken" }, - { match: `(had|has|have) [been /ed$/]`, group: 0, tag: "Auxiliary PastTense", reason: "had-been-smoked" }, - { match: `(had|has) #Adverb? [been] #Adverb? #PastTense`, group: 0, tag: "Auxiliary", reason: "had-been-adj" }, - { match: `(had|has) to [#Noun] (#Determiner|#Possessive)`, group: 0, tag: "Infinitive", reason: "had-to-noun" }, - { match: `have [#PresentTense]`, group: 0, tag: "PastTense", notIf: "(come|gotten)", reason: "have-read" }, - { match: `(does|will|#Modal) that [work]`, group: 0, tag: "PastTense", reason: "does-that-work" }, - { match: `[(sound|sounds)] #Adjective`, group: 0, tag: "PresentTense", reason: "sounds-fun" }, - { match: `[(look|looks)] #Adjective`, group: 0, tag: "PresentTense", reason: "looks-good" }, - { match: `[(need|needs)] to #Infinitive`, group: 0, tag: "PresentTense", reason: "need-to-learn" }, - { match: `[(start|starts|stop|stops|begin|begins)] #Gerund`, group: 0, tag: "Verb", reason: "starts-thinking" }, - { match: `(have|had) read`, tag: "Modal #PastTense", reason: "read-read" }, - { - match: `(is|was|were) [(under|over) #PastTense]`, - group: 0, - tag: "Adverb Adjective", - reason: "was-under-cooked" - }, - { match: "[shit] (#Determiner|#Possessive|them)", group: 0, tag: "Verb", reason: "swear1-verb" }, - { match: "[damn] (#Determiner|#Possessive|them)", group: 0, tag: "Verb", reason: "swear2-verb" }, - { match: "[fuck] (#Determiner|#Possessive|them)", group: 0, tag: "Verb", reason: "swear3-verb" }, - { match: "#Plural that %Noun|Verb%", tag: ". #Preposition #Infinitive", reason: "jobs-that-work" }, - { match: "[works] for me", group: 0, tag: "PresentTense", reason: "works-for-me" }, - { match: "as #Pronoun [please]", group: 0, tag: "Infinitive", reason: "as-we-please" }, - { match: "[(co|mis|de|inter|intra|pre|re|un|out|under|over|counter)] #Verb", group: 0, tag: ["Verb", "Prefix"], notIf: "(#Copula|#PhrasalVerb)", reason: "co-write" }, - { match: "#PastTense and [%Adj|Past%]", group: 0, tag: "PastTense", reason: "dressed-and-left" }, - { match: "[%Adj|Past%] and #PastTense", group: 0, tag: "PastTense", reason: "dressed-and-left" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/auxiliary.js -var auxiliary_default = [ - { match: `will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb`, group: 0, tag: "Auxiliary", reason: "will-have-vb" }, - { match: `[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)`, group: 0, tag: "Auxiliary", reason: "copula-walking" }, - { match: `[(#Modal|did)+] (#Adverb|not)+? #Verb`, group: 0, tag: "Auxiliary", reason: "modal-verb" }, - { match: `#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb`, group: 0, tag: "Auxiliary", reason: "would-have" }, - { match: `[(has|had)] (#Adverb|not)+? #PastTense`, group: 0, tag: "Auxiliary", reason: "had-walked" }, - { match: "[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb", group: 0, tag: "Auxiliary", reason: "have-had" }, - { match: "[about to] #Adverb? #Verb", group: 0, tag: ["Auxiliary", "Verb"], reason: "about-to" }, - { match: `#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb`, group: 0, tag: "Auxiliary", reason: "would-be" }, - { match: `[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb`, group: 0, tag: "Auxiliary", reason: "had-been" }, - { match: "[(be|being|been)] #Participle", group: 0, tag: "Auxiliary", reason: "being-driven" }, - { match: "[may] #Adverb? #Infinitive", group: 0, tag: "Auxiliary", reason: "may-want" }, - { match: "#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense", group: 0, tag: "Auxiliary", reason: "being-walked" }, - { match: "will [be] #PastTense", group: 0, tag: "Auxiliary", reason: "will-be-x" }, - { match: "[(be|been)] (#Adverb|not)+? #Gerund", group: 0, tag: "Auxiliary", reason: "been-walking" }, - { match: "[used to] #PresentTense", group: 0, tag: "Auxiliary", reason: "used-to-walk" }, - { match: "#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense", group: 0, tag: "Auxiliary", reason: "going-to-walk" }, - { match: "#Imperative [(me|him|her)]", group: 0, tag: "Reflexive", reason: "tell-him" }, - { match: "(is|was) #Adverb? [no]", group: 0, tag: "Negative", reason: "is-no" }, - { match: "[(been|had|became|came)] #PastTense", group: 0, notIf: "#PhrasalVerb", tag: "Auxiliary", reason: "been-told" }, - { match: "[(being|having|getting)] #Verb", group: 0, tag: "Auxiliary", reason: "being-born" }, - { match: "[be] #Gerund", group: 0, tag: "Auxiliary", reason: "be-walking" }, - { match: "[better] #PresentTense", group: 0, tag: "Modal", notIf: "(#Copula|#Gerund)", reason: "better-go" }, - { match: "even better", tag: "Adverb #Comparative", reason: "even-better" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/phrasal.js -var phrasal_default = [ - { match: "(#Verb && @hasHyphen) up", tag: "PhrasalVerb", reason: "foo-up" }, - { match: "(#Verb && @hasHyphen) off", tag: "PhrasalVerb", reason: "foo-off" }, - { match: "(#Verb && @hasHyphen) over", tag: "PhrasalVerb", reason: "foo-over" }, - { match: "(#Verb && @hasHyphen) out", tag: "PhrasalVerb", reason: "foo-out" }, - { - match: "[#Verb (in|out|up|down|off|back)] (on|in)", - notIf: "#Copula", - tag: "PhrasalVerb Particle", - reason: "walk-in-on" - }, - { match: "(lived|went|crept|go) [on] for", group: 0, tag: "PhrasalVerb", reason: "went-on" }, - { match: "#Verb (up|down|in|on|for)$", tag: "PhrasalVerb #Particle", notIf: "#PhrasalVerb", reason: "come-down$" }, - { match: "help [(stop|end|make|start)]", group: 0, tag: "Infinitive", reason: "help-stop" }, - { match: "[(stop|start|finish|help)] #Gerund", group: 0, tag: "Infinitive", reason: "start-listening" }, - { - match: "#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]", - group: 0, - tag: "Adverb", - reason: "phrasal-pronoun-advb" - } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/imperative.js -var notIf2 = "(i|we|they)"; -var imperative_default2 = [ - { match: "^do not? [#Infinitive #Particle?]", notIf: notIf2, group: 0, tag: "Imperative", reason: "do-eat" }, - { match: "^please do? not? [#Infinitive #Particle?]", group: 0, tag: "Imperative", reason: "please-go" }, - { match: "^just do? not? [#Infinitive #Particle?]", group: 0, tag: "Imperative", reason: "just-go" }, - { match: "^[#Infinitive] it #Comparative", notIf: notIf2, group: 0, tag: "Imperative", reason: "do-it-better" }, - { match: "^[#Infinitive] it (please|now|again|plz)", notIf: notIf2, group: 0, tag: "Imperative", reason: "do-it-please" }, - { match: "^[#Infinitive] (#Adjective|#Adverb)$", group: 0, tag: "Imperative", notIf: "(so|such|rather|enough)", reason: "go-quickly" }, - { match: "^[#Infinitive] (up|down|over) #Determiner", group: 0, tag: "Imperative", reason: "turn-down" }, - { match: "^[#Infinitive] (your|my|the|a|an|any|each|every|some|more|with|on)", group: 0, notIf: "like", tag: "Imperative", reason: "eat-my-shorts" }, - { match: "^[#Infinitive] (him|her|it|us|me|there)", group: 0, tag: "Imperative", reason: "tell-him" }, - { match: "^[#Infinitive] #Adjective #Noun$", group: 0, tag: "Imperative", reason: "avoid-loud-noises" }, - { match: "^[#Infinitive] (#Adjective|#Adverb)? and #Infinitive", group: 0, tag: "Imperative", reason: "call-and-reserve" }, - { match: "^(go|stop|wait|hurry) please?$", tag: "Imperative", reason: "go" }, - { match: "^(somebody|everybody) [#Infinitive]", group: 0, tag: "Imperative", reason: "somebody-call" }, - { match: "^let (us|me) [#Infinitive]", group: 0, tag: "Imperative", reason: "lets-leave" }, - { match: "^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun", group: 0, tag: "Imperative", reason: "shut-the-door" }, - { match: "^[go] to .", group: 0, tag: "Imperative", reason: "go-to-toronto" }, - { match: "^#Modal you [#Infinitive]", group: 0, tag: "Imperative", reason: "would-you-" }, - { match: "^never [#Infinitive]", group: 0, tag: "Imperative", reason: "never-stop" }, - { match: "^come #Infinitive", tag: "Imperative", notIf: "on", reason: "come-have" }, - { match: "^come and? #Infinitive", tag: "Imperative . Imperative", notIf: "#PhrasalVerb", reason: "come-and-have" }, - { match: "^stay (out|away|back)", tag: "Imperative", reason: "stay-away" }, - { match: "^[(stay|be|keep)] #Adjective", group: 0, tag: "Imperative", reason: "stay-cool" }, - { match: "^[keep it] #Adjective", group: 0, tag: "Imperative", reason: "keep-it-cool" }, - { match: "^do not [#Infinitive]", group: 0, tag: "Imperative", reason: "do-not-be" }, - { match: "[#Infinitive] (yourself|yourselves)", group: 0, tag: "Imperative", reason: "allow-yourself" }, - { match: "[#Infinitive] what .", group: 0, tag: "Imperative", reason: "look-what" }, - { match: "^[#Infinitive] #Gerund", group: 0, tag: "Imperative", reason: "keep-playing" }, - { match: "^[#Infinitive] (to|for|into|toward|here|there)", group: 0, tag: "Imperative", reason: "go-to" }, - { match: "^[#Infinitive] (and|or) #Infinitive", group: 0, tag: "Imperative", reason: "inf-and-inf" }, - { match: "^[%Noun|Verb%] to", group: 0, tag: "Imperative", reason: "commit-to" }, - { match: "^[#Infinitive] #Adjective? #Singular #Singular", group: 0, tag: "Imperative", reason: "maintain-eye-contact" }, - { match: "do not (forget|omit|neglect) to [#Infinitive]", group: 0, tag: "Imperative", reason: "do-not-forget" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/adj-gerund.js -var adj_gerund_default3 = [ - { match: "(that|which) were [%Adj|Gerund%]", group: 0, tag: "Gerund", reason: "that-were-growing" }, - { match: "#Gerund [#Gerund] #Plural", group: 0, tag: "Adjective", reason: "hard-working-fam" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/verbs/passive.js -var passive_default = [ - { match: "(got|were|was|is|are|am) (#PastTense|#Participle)", tag: "Passive", reason: "got-walked" }, - { match: "(was|were|is|are|am) being (#PastTense|#Participle)", tag: "Passive", reason: "was-being" }, - { match: "(had|have|has) been (#PastTense|#Participle)", tag: "Passive", reason: "had-been" }, - { match: "will be being? (#PastTense|#Participle)", tag: "Passive", reason: "will-be-cleaned" }, - { match: "#Noun [(#PastTense|#Participle)] by (the|a) #Noun", group: 0, tag: "Passive", reason: "suffered-by" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/_misc.js -var matches = [ - { match: "u r", tag: "#Pronoun #Copula", reason: "u r" }, - { match: "#Noun [(who|whom)]", group: 0, tag: "Determiner", reason: "captain-who" }, - { match: "[had] #Noun+ #PastTense", group: 0, tag: "Condition", reason: "had-he" }, - { match: "[were] #Noun+ to #Infinitive", group: 0, tag: "Condition", reason: "were-he" }, - { match: "some sort of", tag: "Adjective Noun Conjunction", reason: "some-sort-of" }, - { match: "of some sort", tag: "Conjunction Adjective Noun", reason: "of-some-sort" }, - { match: "[such] (a|an|is)? #Noun", group: 0, tag: "Determiner", reason: "such-skill" }, - { match: "[right] (before|after|in|into|to|toward)", group: 0, tag: "#Adverb", reason: "right-into" }, - { match: "#Preposition [about]", group: 0, tag: "Adjective", reason: "at-about" }, - { match: "(are|#Modal|see|do|for) [ya]", group: 0, tag: "Pronoun", reason: "are-ya" }, - { match: "[long live] .", group: 0, tag: "#Adjective #Infinitive", reason: "long-live" }, - { match: "[plenty] of", group: 0, tag: "#Uncountable", reason: "plenty-of" }, - { match: "(always|nearly|barely|practically) [there]", group: 0, tag: "Adjective", reason: "always-there" }, - { match: "[there] (#Adverb|#Pronoun)? #Copula", group: 0, tag: "There", reason: "there-is" }, - { match: "#Copula [there] .", group: 0, tag: "There", reason: "is-there" }, - { match: "#Modal #Adverb? [there]", group: 0, tag: "There", reason: "should-there" }, - { match: "^[do] (you|we|they)", group: 0, tag: "QuestionWord", reason: "do-you" }, - { match: "^[does] (he|she|it|#ProperNoun)", group: 0, tag: "QuestionWord", reason: "does-he" }, - { match: "a [while]", group: 0, tag: "Noun", reason: "a-while" }, - { match: "guess who", tag: "#Infinitive #QuestionWord", reason: "guess-who" } -]; -var misc_default4 = matches; - -// node_modules/compromise/src/2-two/postTagger/model/orgs/organizations.js -var organizations_default2 = [ - { match: "#Noun (&|n) #Noun", tag: "Organization", reason: "Noun-&-Noun" }, - { match: "#Organization of the? #ProperNoun", tag: "Organization", reason: "org-of-place", safe: true }, - { match: "#Organization #Country", tag: "Organization", reason: "org-country" }, - { match: "#ProperNoun #Organization", tag: "Organization", reason: "titlecase-org" }, - { match: "#ProperNoun (ltd|co|inc|dept|assn|bros)", tag: "Organization", reason: "org-abbrv" }, - { match: "the [#Acronym]", group: 0, tag: "Organization", reason: "the-acronym", safe: true }, - { - match: "(world|global|international|national|#Demonym) #Organization", - tag: "Organization", - reason: "global-org" - }, - { match: "#Noun+ (public|private) school", tag: "School", reason: "noun-public-school" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/nouns/places.js -var places_default2 = [ - { - match: "(west|north|south|east|western|northern|southern|eastern)+ #Place", - tag: "Region", - reason: "west-norfolk" - }, - { - match: "#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]", - group: 0, - tag: "Region", - reason: "us-state" - }, - { - match: "portland [or]", - group: 0, - tag: "Region", - reason: "portland-or" - }, - { - match: "#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)", - tag: "Region", - reason: "foo-district" - }, - { - match: "(district|region|province|municipality|territory|burough|state) of #ProperNoun", - tag: "Region", - reason: "district-of-Foo" - }, - { - match: "in [#ProperNoun] #Place", - group: 0, - tag: "Place", - reason: "propernoun-place" - }, - { - match: "#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)", - tag: "Address", - reason: "address-st" - } -]; - -// node_modules/compromise/src/2-two/postTagger/model/conjunctions.js -var conjunctions_default = [ - { match: "[so] #Noun", group: 0, tag: "Conjunction", reason: "so-conj" }, - { - match: "[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)", - group: 0, - tag: "Conjunction", - reason: "how-he-is-x" - }, - { match: "#Copula [(who|what|where|why|how|when)] #Noun", group: 0, tag: "Conjunction", reason: "when-he" }, - { match: "#Verb [that] #Pronoun", group: 0, tag: "Conjunction", reason: "said-that-he" }, - { match: "#Noun [that] #Copula", group: 0, tag: "Conjunction", reason: "that-are" }, - { match: "#Noun [that] #Verb #Adjective", group: 0, tag: "Conjunction", reason: "that-seem" }, - { match: "#Noun #Copula not? [that] #Adjective", group: 0, tag: "Adverb", reason: "that-adj" }, - { match: "#Verb #Adverb? #Noun [(that|which)]", group: 0, tag: "Preposition", reason: "that-prep" }, - { match: "@hasComma [which] (#Pronoun|#Verb)", group: 0, tag: "Preposition", reason: "which-copula" }, - { match: "#Noun [like] #Noun", group: 0, tag: "Preposition", reason: "noun-like" }, - { match: "^[like] #Determiner", group: 0, tag: "Preposition", reason: "like-the" }, - { match: "a #Noun [like] (#Noun|#Determiner)", group: 0, tag: "Preposition", reason: "a-noun-like" }, - { match: "#Adverb [like]", group: 0, tag: "Verb", reason: "really-like" }, - { match: "(not|nothing|never) [like]", group: 0, tag: "Preposition", reason: "nothing-like" }, - { match: "#Infinitive #Pronoun [like]", group: 0, tag: "Preposition", reason: "treat-them-like" }, - { match: "[#QuestionWord] (#Pronoun|#Determiner)", group: 0, tag: "Preposition", reason: "how-he" }, - { match: "[#QuestionWord] #Participle", group: 0, tag: "Preposition", reason: "when-stolen" }, - { match: "[how] (#Determiner|#Copula|#Modal|#PastTense)", group: 0, tag: "QuestionWord", reason: "how-is" }, - { match: "#Plural [(who|which|when)] .", group: 0, tag: "Preposition", reason: "people-who" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/expressions.js -var expressions_default = [ - { match: "holy (shit|fuck|hell)", tag: "Expression", reason: "swears-expression" }, - { match: "^[(well|so|okay|now)] !#Adjective?", group: 0, tag: "Expression", reason: "well-" }, - { match: "^come on", tag: "Expression", reason: "come-on" }, - { match: "(say|says|said) [sorry]", group: 0, tag: "Expression", reason: "say-sorry" }, - { match: "^(ok|alright|shoot|hell|anyways)", tag: "Expression", reason: "ok-" }, - { match: "^(say && @hasComma)", tag: "Expression", reason: "say-" }, - { match: "^(like && @hasComma)", tag: "Expression", reason: "like-" }, - { match: "^[(dude|man|girl)] #Pronoun", group: 0, tag: "Expression", reason: "dude-i" } -]; - -// node_modules/compromise/src/2-two/postTagger/model/index.js -var matches2 = [].concat(passive_default, adjective_default, adj_adverb_default, adj_gerund_default2, adj_noun_default2, adverb_default, date_default, date_phrase_default, nouns_default4, noun_gerund_default2, verb_noun_default, money_default, fractions_default, numbers_default, person_phrase_default, ambig_name_default, verbs_default3, adj_verb_default, auxiliary_default, phrasal_default, imperative_default2, adj_gerund_default3, misc_default4, organizations_default2, places_default2, conjunctions_default, expressions_default); -var model_default4 = { - two: { - matches: matches2 - } -}; - -// node_modules/compromise/src/2-two/postTagger/compute/index.js -var net = null; -var postTagger = function(view) { - const { world: world2 } = view; - const { model: model5, methods: methods16 } = world2; - net = net || methods16.one.buildNet(model5.two.matches, world2); - let document2 = methods16.two.quickSplit(view.document); - let ptrs = document2.map((terms) => { - let t2 = terms[0]; - return [t2.index[0], t2.index[1], t2.index[1] + terms.length]; - }); - let m3 = view.update(ptrs); - m3.cache(); - m3.sweep(net); - view.uncache(); - return view; -}; -var tagger2 = (view) => view.compute(["lexicon", "preTagger", "postTagger"]); -var compute_default10 = { postTagger, tagger: tagger2 }; - -// node_modules/compromise/src/2-two/postTagger/api.js -var round = (n3) => Math.round(n3 * 100) / 100; -function api_default11(View2) { - View2.prototype.confidence = function() { - let sum = 0; - let count = 0; - this.docs.forEach((terms) => { - terms.forEach((term) => { - count += 1; - sum += term.confidence || 1; - }); - }); - if (count === 0) { - return 1; - } - return round(sum / count); - }; - View2.prototype.tagger = function() { - return this.compute(["tagger"]); - }; -} - -// node_modules/compromise/src/2-two/postTagger/plugin.js -var plugin2 = { - api: api_default11, - compute: compute_default10, - model: model_default4, - hooks: ["postTagger"] -}; -var plugin_default15 = plugin2; - -// node_modules/compromise/src/2-two/lazy/maybeMatch.js -var getWords2 = function(net3) { - return Object.keys(net3.hooks).filter((w) => !w.startsWith("#") && !w.startsWith("%")); -}; -var maybeMatch = function(doc, net3) { - let words = getWords2(net3); - if (words.length === 0) { - return doc; - } - if (!doc._cache) { - doc.cache(); - } - let cache2 = doc._cache; - return doc.filter((_m, i3) => { - return words.some((str) => cache2[i3].has(str)); - }); -}; -var maybeMatch_default = maybeMatch; - -// node_modules/compromise/src/2-two/lazy/lazyParse.js -var lazyParse = function(input, reg) { - let net3 = reg; - if (typeof reg === "string") { - net3 = this.buildNet([{ match: reg }]); - } - let doc = this.tokenize(input); - let m3 = maybeMatch_default(doc, net3); - if (m3.found) { - m3.compute(["index", "tagger"]); - return m3.match(reg); - } - return doc.none(); -}; -var lazyParse_default = lazyParse; - -// node_modules/compromise/src/2-two/lazy/plugin.js -var plugin_default16 = { - lib: { - lazy: lazyParse_default - } -}; - -// node_modules/compromise/src/2-two/swap/api/swap-verb.js -var matchVerb = function(m3, lemma) { - const conjugate2 = m3.methods.two.transform.verb.conjugate; - let all4 = conjugate2(lemma, m3.model); - if (m3.has("#Gerund")) { - return all4.Gerund; - } - if (m3.has("#PastTense")) { - return all4.PastTense; - } - if (m3.has("#PresentTense")) { - return all4.PresentTense; - } - if (m3.has("#Gerund")) { - return all4.Gerund; - } - return lemma; -}; -var swapVerb = function(vb3, lemma) { - let str = lemma; - vb3.forEach((m3) => { - if (!m3.has("#Infinitive")) { - str = matchVerb(m3, lemma); - } - m3.replaceWith(str); - }); - return vb3; -}; -var swap_verb_default = swapVerb; - -// node_modules/compromise/src/2-two/swap/api/swap.js -var swapNoun = function(m3, lemma) { - let str = lemma; - if (m3.has("#Plural")) { - const toPlural = m3.methods.two.transform.noun.toPlural; - str = toPlural(lemma, m3.model); - } - m3.replaceWith(str); -}; -var swapAdverb = function(m3, lemma) { - const { toAdverb: toAdverb2 } = m3.methods.two.transform.adjective; - let str = lemma; - let adv = toAdverb2(str); - if (adv) { - m3.replaceWith(adv); - } -}; -var swapAdjective = function(m3, lemma) { - const { toComparative: toComparative3, toSuperlative: toSuperlative3 } = m3.methods.two.transform.adjective; - let str = lemma; - if (m3.has("#Comparative")) { - str = toComparative3(str, m3.model); - } else if (m3.has("#Superlative")) { - str = toSuperlative3(str, m3.model); - } - if (str) { - m3.replaceWith(str); - } -}; -var swap = function(from, to, tag) { - let reg = from.split(/ /g).map((str) => `{${str}}`).join(" "); - let m3 = this.match(reg); - if (tag) { - m3 = m3.if(tag); - } - if (m3.has("#Verb")) { - return swap_verb_default(m3, to); - } - if (m3.has("#Noun")) { - return swapNoun(m3, to); - } - if (m3.has("#Adverb")) { - return swapAdverb(m3, to); - } - if (m3.has("#Adjective")) { - return swapAdjective(m3, to); - } - return this; -}; -var swap_default = swap; - -// node_modules/compromise/src/2-two/swap/plugin.js -var api4 = function(View2) { - View2.prototype.swap = swap_default; -}; -var plugin_default17 = { - api: api4 -}; - -// node_modules/compromise/src/two.js -one_default.plugin(plugin_default13); -one_default.plugin(plugin_default14); -one_default.plugin(plugin_default15); -one_default.plugin(plugin_default16); -one_default.plugin(plugin_default17); -var two_default = one_default; - -// node_modules/compromise/src/3-three/chunker/api/clauses.js -var byComma = function(doc) { - let commas = doc.match("@hasComma"); - commas = commas.filter((m3) => { - if (m3.growLeft(".").wordCount() === 1) { - return false; - } - if (m3.growRight(". .").wordCount() === 1) { - return false; - } - let more = m3.grow("."); - more = more.ifNo("@hasComma @hasComma"); - more = more.ifNo("@hasComma (and|or) ."); - more = more.ifNo("(#City && @hasComma) #Country"); - more = more.ifNo("(#WeekDay && @hasComma) #Date"); - more = more.ifNo("(#Date+ && @hasComma) #Value"); - more = more.ifNo("(#Adjective && @hasComma) #Adjective"); - return more.found; - }); - return doc.splitAfter(commas); -}; -var splitParentheses = function(doc) { - let matches3 = doc.parentheses(); - matches3 = matches3.filter((m3) => { - return m3.wordCount() >= 3 && m3.has("#Verb") && m3.has("#Noun"); - }); - return doc.splitOn(matches3); -}; -var splitQuotes = function(doc) { - let matches3 = doc.quotations(); - matches3 = matches3.filter((m3) => { - return m3.wordCount() >= 3 && m3.has("#Verb") && m3.has("#Noun"); - }); - return doc.splitOn(matches3); -}; -var clauses = function(n3) { - let found = this; - found = splitParentheses(found); - found = splitQuotes(found); - found = byComma(found); - found = found.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"); - found = found.splitAfter("^#Pronoun (said|says)"); - found = found.splitBefore("(said|says) #ProperNoun$"); - found = found.splitBefore(". . if .{4}"); - found = found.splitBefore("and while"); - found = found.splitBefore("now that"); - found = found.splitBefore("ever since"); - found = found.splitBefore("(supposing|although)"); - found = found.splitBefore("even (while|if|though)"); - found = found.splitBefore("(whereas|whose)"); - found = found.splitBefore("as (though|if)"); - found = found.splitBefore("(til|until)"); - if (typeof n3 === "number") { - found = found.get(n3); - } - return found; -}; -var clauses_default = clauses; - -// node_modules/compromise/src/3-three/chunker/api/chunks.js -var chunks = function(doc) { - let carry = []; - let ptr = null; - let current = null; - doc.docs.forEach((terms) => { - terms.forEach((term) => { - if (term.chunk !== current) { - if (ptr) { - ptr[2] = term.index[1]; - carry.push(ptr); - } - current = term.chunk; - ptr = [term.index[0], term.index[1]]; - } - }); - }); - if (ptr) { - carry.push(ptr); - } - let parts = doc.update(carry); - parts = parts.map((c2) => { - if (c2.has("")) { - return c2.nouns(); - } - return c2; - }); - return parts; -}; -var chunks_default2 = chunks; - -// node_modules/compromise/src/3-three/chunker/api/api.js -var api5 = function(View2) { - class Chunks extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Chunks"; - } - isVerb() { - return this.filter((c2) => c2.has("")); - } - isNoun() { - return this.filter((c2) => c2.has("")); - } - isAdjective() { - return this.filter((c2) => c2.has("")); - } - isPivot() { - return this.filter((c2) => c2.has("")); - } - debug() { - this.toView().debug("chunks"); - return this; - } - update(pointer) { - let m3 = new Chunks(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - View2.prototype.chunks = function(n3) { - let m3 = chunks_default2(this); - m3 = m3.getNth(n3); - return new Chunks(this.document, m3.pointer); - }; - View2.prototype.clauses = clauses_default; -}; -var api_default12 = api5; - -// node_modules/compromise/src/3-three/chunker/compute/01-easy.js -var byWord2 = { - this: "Noun", - then: "Pivot" -}; -var easyMode = function(document2) { - for (let n3 = 0; n3 < document2.length; n3 += 1) { - for (let t2 = 0; t2 < document2[n3].length; t2 += 1) { - let term = document2[n3][t2]; - if (byWord2.hasOwnProperty(term.normal) === true) { - term.chunk = byWord2[term.normal]; - continue; - } - if (term.tags.has("Verb")) { - term.chunk = "Verb"; - continue; - } - if (term.tags.has("Noun") || term.tags.has("Determiner")) { - term.chunk = "Noun"; - continue; - } - if (term.tags.has("Value")) { - term.chunk = "Noun"; - continue; - } - if (term.tags.has("QuestionWord")) { - term.chunk = "Pivot"; - continue; - } - } - } -}; -var easy_default = easyMode; - -// node_modules/compromise/src/3-three/chunker/compute/02-neighbours.js -var byNeighbour = function(document2) { - for (let n3 = 0; n3 < document2.length; n3 += 1) { - for (let t2 = 0; t2 < document2[n3].length; t2 += 1) { - let term = document2[n3][t2]; - if (term.chunk) { - continue; - } - let onRight = document2[n3][t2 + 1]; - let onLeft = document2[n3][t2 - 1]; - if (term.tags.has("Adjective")) { - if (onLeft && onLeft.tags.has("Copula")) { - term.chunk = "Adjective"; - continue; - } - if (onLeft && onLeft.tags.has("Determiner")) { - term.chunk = "Noun"; - continue; - } - if (onRight && onRight.tags.has("Noun")) { - term.chunk = "Noun"; - continue; - } - continue; - } - if (term.tags.has("Adverb") || term.tags.has("Negative")) { - if (onLeft && onLeft.tags.has("Adjective")) { - term.chunk = "Adjective"; - continue; - } - if (onLeft && onLeft.tags.has("Verb")) { - term.chunk = "Verb"; - continue; - } - if (onRight && onRight.tags.has("Adjective")) { - term.chunk = "Adjective"; - continue; - } - if (onRight && onRight.tags.has("Verb")) { - term.chunk = "Verb"; - continue; - } - } - } - } -}; -var neighbours_default3 = byNeighbour; - -// node_modules/compromise/src/3-three/chunker/compute/03-matcher.js -var rules = [ - { match: "[that] #Determiner #Noun", group: 0, chunk: "Pivot" }, - { match: "#PastTense [that]", group: 0, chunk: "Pivot" }, - { match: "[so] #Determiner", group: 0, chunk: "Pivot" }, - { match: "#Copula #Adverb+? [#Adjective]", group: 0, chunk: "Adjective" }, - { match: "#Adjective and #Adjective", chunk: "Adjective" }, - { match: "#Adverb+ and #Adverb #Verb", chunk: "Verb" }, - { match: "#Gerund #Adjective", chunk: "Verb" }, - { match: "#Gerund to #Verb", chunk: "Verb" }, - { match: "#PresentTense and #PresentTense", chunk: "Verb" }, - { match: "#Adverb #Negative", chunk: "Verb" }, - { match: "(want|wants|wanted) to #Infinitive", chunk: "Verb" }, - { match: "#Verb #Reflexive", chunk: "Verb" }, - { match: "#PresentTense [#Pronoun] #Determiner", group: 0, chunk: "Verb" }, - { match: "#Verb [to] #Adverb? #Infinitive", group: 0, chunk: "Verb" }, - { match: "[#Preposition] #Gerund", group: 0, chunk: "Verb" }, - { match: "#Noun of #Determiner? #Noun", chunk: "Noun" }, - { match: "#Noun in #Determiner? #Noun", chunk: "Noun" }, - { match: "#Singular and #Determiner? #Singular", chunk: "Noun" } -]; -var net2 = null; -var matcher = function(view, _2, world2) { - const { methods: methods16 } = world2; - net2 = net2 || methods16.one.buildNet(rules, world2); - view.sweep(net2); -}; -var matcher_default = matcher; - -// node_modules/compromise/src/3-three/chunker/compute/04-fallback.js -var setChunk = function(term, chunk) { - const env2 = typeof process === "undefined" || !process.env ? self.env || {} : process.env; - if (env2.DEBUG_CHUNKS) { - let str = (term.normal + "'").padEnd(8); - console.log(` | '${str} \u2192 \x1B[34m${chunk.padEnd(12)}\x1B[0m \x1B[2m -fallback- \x1B[0m`); - } - term.chunk = chunk; -}; -var fallback = function(document2) { - for (let n3 = 0; n3 < document2.length; n3 += 1) { - for (let t2 = 0; t2 < document2[n3].length; t2 += 1) { - let term = document2[n3][t2]; - if (term.chunk === void 0) { - if (term.tags.has("Conjunction")) { - setChunk(term, "Pivot"); - } else if (term.tags.has("Preposition")) { - setChunk(term, "Pivot"); - } else if (term.tags.has("Adverb")) { - setChunk(term, "Verb"); - } else { - term.chunk = "Noun"; - } - } - } - } -}; -var fallback_default2 = fallback; - -// node_modules/compromise/src/3-three/chunker/compute/05-fixUp.js -var fixUp = function(docs) { - let byChunk = []; - let current = null; - docs.forEach((terms) => { - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let term = terms[i3]; - if (current && term.chunk === current) { - byChunk[byChunk.length - 1].terms.push(term); - } else { - byChunk.push({ chunk: term.chunk, terms: [term] }); - current = term.chunk; - } - } - }); - byChunk.forEach((c2) => { - if (c2.chunk === "Verb") { - const hasVerb = c2.terms.find((t2) => t2.tags.has("Verb")); - if (!hasVerb) { - c2.terms.forEach((t2) => t2.chunk = null); - } - } - }); -}; -var fixUp_default = fixUp; - -// node_modules/compromise/src/3-three/chunker/compute/index.js -var findChunks = function(view) { - const { document: document2, world: world2 } = view; - easy_default(document2); - neighbours_default3(document2); - matcher_default(view, document2, world2); - fallback_default2(document2, world2); - fixUp_default(document2, world2); -}; -var compute_default11 = { chunks: findChunks }; - -// node_modules/compromise/src/3-three/chunker/plugin.js -var plugin_default18 = { - compute: compute_default11, - api: api_default12, - hooks: ["chunks"] -}; - -// node_modules/compromise/src/3-three/misc/acronyms/index.js -var hasPeriod = /\./g; -var api6 = function(View2) { - class Acronyms extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Acronyms"; - } - strip() { - this.docs.forEach((terms) => { - terms.forEach((term) => { - term.text = term.text.replace(hasPeriod, ""); - term.normal = term.normal.replace(hasPeriod, ""); - }); - }); - return this; - } - addPeriods() { - this.docs.forEach((terms) => { - terms.forEach((term) => { - term.text = term.text.replace(hasPeriod, ""); - term.normal = term.normal.replace(hasPeriod, ""); - term.text = term.text.split("").join(".") + "."; - term.normal = term.normal.split("").join(".") + "."; - }); - }); - return this; - } - } - View2.prototype.acronyms = function(n3) { - let m3 = this.match("#Acronym"); - m3 = m3.getNth(n3); - return new Acronyms(m3.document, m3.pointer); - }; -}; -var acronyms_default2 = api6; - -// node_modules/compromise/src/3-three/misc/adjectives/index.js -var toRoot2 = function(adj) { - const { fromComparative: fromComparative3, fromSuperlative: fromSuperlative3 } = adj.methods.two.transform.adjective; - let str = adj.text("normal"); - if (adj.has("#Comparative")) { - return fromComparative3(str, adj.model); - } - if (adj.has("#Superlative")) { - return fromSuperlative3(str, adj.model); - } - return str; -}; -var api7 = function(View2) { - class Adjectives extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Adjectives"; - } - json(opts2 = {}) { - const { toAdverb: toAdverb2, toNoun: toNoun2, toSuperlative: toSuperlative3, toComparative: toComparative3 } = this.methods.two.transform.adjective; - opts2.normal = true; - return this.map((m3) => { - let json = m3.toView().json(opts2)[0] || {}; - let str = toRoot2(m3); - json.adjective = { - adverb: toAdverb2(str), - noun: toNoun2(str), - superlative: toSuperlative3(str, this.model), - comparative: toComparative3(str, this.model) - }; - return json; - }, []); - } - adverbs() { - return this.before("#Adverb+$").concat(this.after("^#Adverb+")); - } - conjugate(n3) { - const { toComparative: toComparative3, toSuperlative: toSuperlative3, toNoun: toNoun2, toAdverb: toAdverb2 } = this.methods.two.transform.adjective; - return this.getNth(n3).map((adj) => { - let root = toRoot2(adj); - return { - Adjective: root, - Comparative: toComparative3(root, this.model), - Superlative: toSuperlative3(root, this.model), - Noun: toNoun2(root, this.model), - Adverb: toAdverb2(root, this.model) - }; - }, []); - } - toComparative(n3) { - const { toComparative: toComparative3 } = this.methods.two.transform.adjective; - return this.getNth(n3).map((adj) => { - let root = toRoot2(adj); - let str = toComparative3(root, this.model); - return adj.replaceWith(str); - }); - } - toSuperlative(n3) { - const { toSuperlative: toSuperlative3 } = this.methods.two.transform.adjective; - return this.getNth(n3).map((adj) => { - let root = toRoot2(adj); - let str = toSuperlative3(root, this.model); - return adj.replaceWith(str); - }); - } - toAdverb(n3) { - const { toAdverb: toAdverb2 } = this.methods.two.transform.adjective; - return this.getNth(n3).map((adj) => { - let root = toRoot2(adj); - let str = toAdverb2(root, this.model); - return adj.replaceWith(str); - }); - } - toNoun(n3) { - const { toNoun: toNoun2 } = this.methods.two.transform.adjective; - return this.getNth(n3).map((adj) => { - let root = toRoot2(adj); - let str = toNoun2(root, this.model); - return adj.replaceWith(str); - }); - } - } - View2.prototype.adjectives = function(n3) { - let m3 = this.match("#Adjective"); - m3 = m3.getNth(n3); - return new Adjectives(m3.document, m3.pointer); - }; - View2.prototype.superlatives = function(n3) { - let m3 = this.match("#Superlative"); - m3 = m3.getNth(n3); - return new Adjectives(m3.document, m3.pointer); - }; - View2.prototype.comparatives = function(n3) { - let m3 = this.match("#Comparative"); - m3 = m3.getNth(n3); - return new Adjectives(m3.document, m3.pointer); - }; -}; -var adjectives_default2 = api7; - -// node_modules/compromise/src/3-three/misc/adverbs/index.js -var api8 = function(View2) { - class Adverbs extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Adverbs"; - } - json(opts2 = {}) { - const fromAdverb = this.methods.two.transform.adjective.fromAdverb; - opts2.normal = true; - return this.map((m3) => { - let json = m3.toView().json(opts2)[0] || {}; - json.adverb = { - adjective: fromAdverb(json.normal) - }; - return json; - }, []); - } - } - View2.prototype.adverbs = function(n3) { - let m3 = this.match("#Adverb"); - m3 = m3.getNth(n3); - return new Adverbs(m3.document, m3.pointer); - }; -}; -var adverbs_default = api8; - -// node_modules/compromise/src/3-three/misc/parentheses/fns.js -var hasOpen2 = /\(/; -var hasClosed2 = /\)/; -var findEnd = function(terms, i3) { - for (; i3 < terms.length; i3 += 1) { - if (terms[i3].post && hasClosed2.test(terms[i3].post)) { - return i3; - } - } - return null; -}; -var find2 = function(doc) { - let ptrs = []; - doc.docs.forEach((terms) => { - let isOpen = false; - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let term = terms[i3]; - if (!isOpen && term.pre && hasOpen2.test(term.pre)) { - let end2 = findEnd(terms, i3); - if (end2 !== null) { - let [n3, start2] = terms[i3].index; - ptrs.push([n3, start2, end2 + 1, terms[i3].id]); - i3 = end2; - } - } - } - }); - return doc.update(ptrs); -}; -var strip = function(m3) { - m3.docs.forEach((terms) => { - terms[0].pre = terms[0].pre.replace(hasOpen2, ""); - let last = terms[terms.length - 1]; - last.post = last.post.replace(hasClosed2, ""); - }); - return m3; -}; - -// node_modules/compromise/src/3-three/misc/parentheses/index.js -var api9 = function(View2) { - class Parentheses extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Possessives"; - } - strip() { - return strip(this); - } - } - View2.prototype.parentheses = function(n3) { - let m3 = find2(this); - m3 = m3.getNth(n3); - return new Parentheses(m3.document, m3.pointer); - }; -}; -var parentheses_default = api9; - -// node_modules/compromise/src/3-three/misc/possessives/index.js -var apostropheS2 = /'s$/; -var find3 = function(doc) { - let m3 = doc.match("#Possessive+"); - if (m3.has("#Person")) { - m3 = m3.growLeft("#Person+"); - } - if (m3.has("#Place")) { - m3 = m3.growLeft("#Place+"); - } - if (m3.has("#Organization")) { - m3 = m3.growLeft("#Organization+"); - } - return m3; -}; -var api10 = function(View2) { - class Possessives extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Possessives"; - } - strip() { - this.docs.forEach((terms) => { - terms.forEach((term) => { - term.text = term.text.replace(apostropheS2, ""); - term.normal = term.normal.replace(apostropheS2, ""); - }); - }); - return this; - } - } - View2.prototype.possessives = function(n3) { - let m3 = find3(this); - m3 = m3.getNth(n3); - return new Possessives(m3.document, m3.pointer); - }; -}; -var possessives_default = api10; - -// node_modules/compromise/src/3-three/misc/quotations/fns.js -var pairs2 = { - '"': '"', - "\uFF02": "\uFF02", - "'": "'", - "\u201C": "\u201D", - "\u2018": "\u2019", - "\u201F": "\u201D", - "\u201B": "\u2019", - "\u201E": "\u201D", - "\u2E42": "\u201D", - "\u201A": "\u2019", - "\xAB": "\xBB", - "\u2039": "\u203A", - "\u2035": "\u2032", - "\u2036": "\u2033", - "\u2037": "\u2034", - "\u301D": "\u301E", - "`": "\xB4", - "\u301F": "\u301E" -}; -var hasOpen3 = RegExp("(" + Object.keys(pairs2).join("|") + ")"); -var hasClosed3 = RegExp("(" + Object.values(pairs2).join("|") + ")"); -var findEnd2 = function(terms, i3) { - const have = terms[i3].pre.match(hasOpen3)[0] || ""; - if (!have || !pairs2[have]) { - return null; - } - const want = pairs2[have]; - for (; i3 < terms.length; i3 += 1) { - if (terms[i3].post && terms[i3].post.match(want)) { - return i3; - } - } - return null; -}; -var find4 = function(doc) { - let ptrs = []; - doc.docs.forEach((terms) => { - let isOpen = false; - for (let i3 = 0; i3 < terms.length; i3 += 1) { - let term = terms[i3]; - if (!isOpen && term.pre && hasOpen3.test(term.pre)) { - let end2 = findEnd2(terms, i3); - if (end2 !== null) { - let [n3, start2] = terms[i3].index; - ptrs.push([n3, start2, end2 + 1, terms[i3].id]); - i3 = end2; - } - } - } - }); - return doc.update(ptrs); -}; -var strip2 = function(m3) { - m3.docs.forEach((terms) => { - terms[0].pre = terms[0].pre.replace(hasOpen3, ""); - let lastTerm = terms[terms.length - 1]; - lastTerm.post = lastTerm.post.replace(hasClosed3, ""); - }); -}; - -// node_modules/compromise/src/3-three/misc/quotations/index.js -var api11 = function(View2) { - class Quotations extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Possessives"; - } - strip() { - return strip2(this); - } - } - View2.prototype.quotations = function(n3) { - let m3 = find4(this); - m3 = m3.getNth(n3); - return new Quotations(m3.document, m3.pointer); - }; -}; -var quotations_default = api11; - -// node_modules/compromise/src/3-three/misc/selections/index.js -var phoneNumbers = function(n3) { - let m3 = this.splitAfter("@hasComma"); - m3 = m3.match("#PhoneNumber+"); - m3 = m3.getNth(n3); - return m3; -}; -var selections = [ - ["hyphenated", "@hasHyphen ."], - ["hashTags", "#HashTag"], - ["emails", "#Email"], - ["emoji", "#Emoji"], - ["emoticons", "#Emoticon"], - ["atMentions", "#AtMention"], - ["urls", "#Url"], - ["conjunctions", "#Conjunction"], - ["prepositions", "#Preposition"], - ["abbreviations", "#Abbreviation"], - ["honorifics", "#Honorific"] -]; -var aliases2 = [ - ["emojis", "emoji"], - ["atmentions", "atMentions"] -]; -var addMethods = function(View2) { - selections.forEach((a2) => { - View2.prototype[a2[0]] = function(n3) { - let m3 = this.match(a2[1]); - return typeof n3 === "number" ? m3.get(n3) : m3; - }; - }); - View2.prototype.phoneNumbers = phoneNumbers; - aliases2.forEach((a2) => { - View2.prototype[a2[0]] = View2.prototype[a2[1]]; - }); -}; -var selections_default = addMethods; - -// node_modules/compromise/src/3-three/misc/plugin.js -var plugin_default19 = { - api: function(View2) { - acronyms_default2(View2); - adjectives_default2(View2); - adverbs_default(View2); - parentheses_default(View2); - possessives_default(View2); - quotations_default(View2); - selections_default(View2); - } -}; - -// node_modules/compromise/src/3-three/normalize/methods.js -var termLoop2 = function(view, cb) { - view.docs.forEach((terms) => { - terms.forEach(cb); - }); -}; -var methods_default10 = { - "case": (doc) => { - termLoop2(doc, (term) => { - term.text = term.text.toLowerCase(); - }); - }, - "unicode": (doc) => { - const world2 = doc.world; - const killUnicode2 = world2.methods.one.killUnicode; - termLoop2(doc, (term) => term.text = killUnicode2(term.text, world2)); - }, - "whitespace": (doc) => { - termLoop2(doc, (term) => { - term.post = term.post.replace(/\s+/g, " "); - term.post = term.post.replace(/\s([.,?!:;])/g, "$1"); - term.pre = term.pre.replace(/\s+/g, ""); - }); - }, - "punctuation": (doc) => { - termLoop2(doc, (term) => { - term.post = term.post.replace(/[–—-]/g, " "); - term.post = term.post.replace(/[,:;]/g, ""); - term.post = term.post.replace(/\.{2,}/g, ""); - term.post = term.post.replace(/\?{2,}/g, "?"); - term.post = term.post.replace(/!{2,}/g, "!"); - term.post = term.post.replace(/\?!+/g, "?"); - }); - let docs = doc.docs; - let terms = docs[docs.length - 1]; - if (terms && terms.length > 0) { - let lastTerm = terms[terms.length - 1]; - lastTerm.post = lastTerm.post.replace(/ /g, ""); - } - }, - "contractions": (doc) => { - doc.contractions().expand(); - }, - "acronyms": (doc) => { - doc.acronyms().strip(); - }, - "parentheses": (doc) => { - doc.parentheses().strip(); - }, - "possessives": (doc) => { - doc.possessives().strip(); - }, - "quotations": (doc) => { - doc.quotations().strip(); - }, - "emoji": (doc) => { - doc.emojis().remove(); - }, - "honorifics": (doc) => { - doc.match("#Honorific+ #Person").honorifics().remove(); - }, - "adverbs": (doc) => { - doc.adverbs().remove(); - }, - "nouns": (doc) => { - doc.nouns().toSingular(); - }, - "verbs": (doc) => { - doc.verbs().toInfinitive(); - }, - "numbers": (doc) => { - doc.numbers().toNumber(); - } -}; - -// node_modules/compromise/src/3-three/normalize/api.js -var split2 = (str) => { - return str.split("|").reduce((h2, k2) => { - h2[k2] = true; - return h2; - }, {}); -}; -var light = "unicode|punctuation|whitespace|acronyms"; -var medium = "|case|contractions|parentheses|quotations|emoji|honorifics"; -var heavy = "|possessives|adverbs|nouns|verbs"; -var presets = { - light: split2(light), - medium: split2(light + medium), - heavy: split2(light + medium + heavy) -}; -function api_default13(View2) { - View2.prototype.normalize = function(opts2 = "light") { - if (typeof opts2 === "string") { - opts2 = presets[opts2]; - } - Object.keys(opts2).forEach((fn) => { - if (methods_default10.hasOwnProperty(fn)) { - methods_default10[fn](this, opts2[fn]); - } - }); - return this; - }; -} - -// node_modules/compromise/src/3-three/normalize/plugin.js -var plugin_default20 = { - api: api_default13 -}; - -// node_modules/compromise/src/3-three/nouns/find.js -var findNouns = function(doc) { - let m3 = doc.match(""); - let commas = m3.match("@hasComma"); - commas = commas.not("#Place"); - if (commas.found) { - m3 = m3.splitAfter(commas); - } - m3 = m3.splitOn("#Expression"); - m3 = m3.splitOn("(he|she|we|you|they|i)"); - m3 = m3.splitOn("(#Noun|#Adjective) [(he|him|she|it)]", 0); - m3 = m3.splitOn("[(he|him|she|it)] (#Determiner|#Value)", 0); - m3 = m3.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun", 0); - m3 = m3.splitOn("[(here|there)] #Noun", 0); - m3 = m3.splitOn("[#Noun] (here|there)", 0); - m3 = m3.splitBefore("(our|my|their|your)"); - m3 = m3.if("#Noun"); - return m3; -}; -var find_default = findNouns; - -// node_modules/compromise/src/3-three/nouns/api/isSubordinate.js -var list2 = [ - "after", - "although", - "as if", - "as long as", - "as", - "because", - "before", - "even if", - "even though", - "ever since", - "if", - "in order that", - "provided that", - "since", - "so that", - "than", - "that", - "though", - "unless", - "until", - "what", - "whatever", - "when", - "whenever", - "where", - "whereas", - "wherever", - "whether", - "which", - "whichever", - "who", - "whoever", - "whom", - "whomever", - "whose" -]; -var isSubordinate = function(m3) { - if (m3.before("#Preposition$").found) { - return true; - } - let leadIn = m3.before(); - if (!leadIn.found) { - return false; - } - for (let i3 = 0; i3 < list2.length; i3 += 1) { - if (m3.has(list2[i3])) { - return true; - } - } - return false; -}; -var isSubordinate_default = isSubordinate; - -// node_modules/compromise/src/3-three/nouns/api/isPlural.js -var notPlural2 = "(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)"; -var isPlural2 = function(m3, root) { - if (m3.has("#Plural")) { - return true; - } - if (m3.has("#Noun and #Noun")) { - return true; - } - if (m3.has("(we|they)")) { - return true; - } - if (root.has(notPlural2) === true) { - return false; - } - if (m3.has("#Singular")) { - return false; - } - let str = root.text("normal"); - return str.length > 3 && str.endsWith("s") && !str.endsWith("ss"); -}; -var isPlural_default = isPlural2; - -// node_modules/compromise/src/3-three/nouns/api/parse.js -var getRoot2 = function(m3) { - let tmp = m3.clone(); - tmp = tmp.match("#Noun+"); - tmp = tmp.remove("(#Adjective|#Preposition|#Determiner|#Value)"); - tmp = tmp.not("#Possessive"); - tmp = tmp.first(); - if (!tmp.found) { - return m3; - } - return tmp; -}; -var parseNoun = function(m3) { - let root = getRoot2(m3); - return { - determiner: m3.match("#Determiner").eq(0), - adjectives: m3.match("#Adjective"), - number: m3.values(), - isPlural: isPlural_default(m3, root), - isSubordinate: isSubordinate_default(m3), - root - }; -}; -var parse_default3 = parseNoun; - -// node_modules/compromise/src/3-three/nouns/api/toJSON.js -var toText2 = (m3) => m3.text(); -var toArray3 = (m3) => m3.json({ terms: false, normal: true }).map((s3) => s3.normal); -var getNum = function(m3) { - let num = null; - if (!m3.found) { - return num; - } - let val = m3.values(0); - if (val.found) { - let obj = val.parse()[0] || {}; - return obj.num; - } - return num; -}; -var toJSON2 = function(m3) { - let res = parse_default3(m3); - return { - root: toText2(res.root), - number: getNum(res.number), - determiner: toText2(res.determiner), - adjectives: toArray3(res.adjectives), - isPlural: res.isPlural, - isSubordinate: res.isSubordinate - }; -}; -var toJSON_default = toJSON2; - -// node_modules/compromise/src/3-three/nouns/api/toPlural.js -var keep = { tags: true }; -var hasPlural = function(parsed) { - let { root } = parsed; - if (root.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun|#Acronym)+$")) { - return false; - } - return true; -}; -var nounToPlural = function(m3, parsed) { - if (parsed.isPlural === true) { - return m3; - } - if (!hasPlural(parsed)) { - return m3; - } - const { methods: methods16, model: model5 } = m3.world; - const { toPlural } = methods16.two.transform.noun; - let str = parsed.root.text({ keepPunct: false }); - let plural2 = toPlural(str, model5); - m3.match(parsed.root).replaceWith(plural2, keep).tag("Plural", "toPlural"); - if (parsed.determiner.has("(a|an)")) { - m3.remove(parsed.determiner); - } - let copula = parsed.root.after("not? #Adverb+? [#Copula]", 0); - if (copula.found) { - if (copula.has("is")) { - m3.replace(copula, "are"); - } else if (copula.has("was")) { - m3.replace(copula, "were"); - } - } - return m3; -}; -var toPlural_default2 = nounToPlural; - -// node_modules/compromise/src/3-three/nouns/api/toSingular.js -var keep2 = { tags: true }; -var nounToSingular = function(m3, parsed) { - if (parsed.isPlural === false) { - return m3; - } - const { methods: methods16, model: model5 } = m3.world; - const { toSingular: toSingular2 } = methods16.two.transform.noun; - let str = parsed.root.text("normal"); - let single = toSingular2(str, model5); - m3.replace(parsed.root, single, keep2).tag("Singular", "toPlural"); - return m3; -}; -var toSingular_default2 = nounToSingular; - -// node_modules/compromise/src/3-three/nouns/api/api.js -var api12 = function(View2) { - class Nouns extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Nouns"; - } - parse(n3) { - return this.getNth(n3).map(parse_default3); - } - json(n3) { - let opts2 = typeof n3 === "object" ? n3 : {}; - return this.getNth(n3).map((m3) => { - let json = m3.toView().json(opts2)[0] || {}; - if (opts2 && opts2.noun !== true) { - json.noun = toJSON_default(m3); - } - return json; - }, []); - } - isPlural(n3) { - let res = this.filter((m3) => parse_default3(m3).isPlural); - return res.getNth(n3); - } - isSingular(n3) { - let res = this.filter((m3) => !parse_default3(m3).isPlural); - return res.getNth(n3); - } - adjectives(n3) { - let res = this.update([]); - this.forEach((m3) => { - let adj = parse_default3(m3).adjectives; - if (adj.found) { - res = res.concat(adj); - } - }); - return res.getNth(n3); - } - toPlural(n3) { - return this.getNth(n3).map((m3) => { - return toPlural_default2(m3, parse_default3(m3)); - }); - } - toSingular(n3) { - return this.getNth(n3).map((m3) => { - let res = parse_default3(m3); - return toSingular_default2(m3, res); - }); - } - update(pointer) { - let m3 = new Nouns(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - View2.prototype.nouns = function(n3) { - let m3 = find_default(this); - m3 = m3.getNth(n3); - return new Nouns(this.document, m3.pointer); - }; -}; -var api_default14 = api12; - -// node_modules/compromise/src/3-three/nouns/plugin.js -var plugin_default21 = { - api: api_default14 -}; - -// node_modules/compromise/src/3-three/numbers/fractions/find.js -var findFractions = function(doc, n3) { - let m3 = doc.match("#Fraction+"); - m3 = m3.filter((r2) => { - return !r2.lookBehind("#Value and$").found; - }); - m3 = m3.notIf("#Value seconds"); - if (typeof n3 === "number") { - m3 = m3.eq(n3); - } - return m3; -}; -var find_default2 = findFractions; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/toNumber/findModifiers.js -var findModifiers = (str) => { - const mults = [ - { - reg: /^(minus|negative)[\s-]/i, - mult: -1 - }, - { - reg: /^(a\s)?half[\s-](of\s)?/i, - mult: 0.5 - } - ]; - for (let i3 = 0; i3 < mults.length; i3++) { - if (mults[i3].reg.test(str) === true) { - return { - amount: mults[i3].mult, - str: str.replace(mults[i3].reg, "") - }; - } - } - return { - amount: 1, - str - }; -}; -var findModifiers_default = findModifiers; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/toNumber/data.js -var data_default3 = { - ones: { - zeroth: 0, - first: 1, - second: 2, - third: 3, - fourth: 4, - fifth: 5, - sixth: 6, - seventh: 7, - eighth: 8, - ninth: 9, - zero: 0, - one: 1, - two: 2, - three: 3, - four: 4, - five: 5, - six: 6, - seven: 7, - eight: 8, - nine: 9 - }, - teens: { - tenth: 10, - eleventh: 11, - twelfth: 12, - thirteenth: 13, - fourteenth: 14, - fifteenth: 15, - sixteenth: 16, - seventeenth: 17, - eighteenth: 18, - nineteenth: 19, - ten: 10, - eleven: 11, - twelve: 12, - thirteen: 13, - fourteen: 14, - fifteen: 15, - sixteen: 16, - seventeen: 17, - eighteen: 18, - nineteen: 19 - }, - tens: { - twentieth: 20, - thirtieth: 30, - fortieth: 40, - fourtieth: 40, - fiftieth: 50, - sixtieth: 60, - seventieth: 70, - eightieth: 80, - ninetieth: 90, - twenty: 20, - thirty: 30, - forty: 40, - fourty: 40, - fifty: 50, - sixty: 60, - seventy: 70, - eighty: 80, - ninety: 90 - }, - multiples: { - hundredth: 100, - thousandth: 1e3, - millionth: 1e6, - billionth: 1e9, - trillionth: 1e12, - quadrillionth: 1e15, - quintillionth: 1e18, - sextillionth: 1e21, - septillionth: 1e24, - hundred: 100, - thousand: 1e3, - million: 1e6, - billion: 1e9, - trillion: 1e12, - quadrillion: 1e15, - quintillion: 1e18, - sextillion: 1e21, - septillion: 1e24, - grand: 1e3 - } -}; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/toNumber/validate.js -var isValid = (w, has2) => { - if (data_default3.ones.hasOwnProperty(w)) { - if (has2.ones || has2.teens) { - return false; - } - } else if (data_default3.teens.hasOwnProperty(w)) { - if (has2.ones || has2.teens || has2.tens) { - return false; - } - } else if (data_default3.tens.hasOwnProperty(w)) { - if (has2.ones || has2.teens || has2.tens) { - return false; - } - } - return true; -}; -var validate_default2 = isValid; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/toNumber/parseDecimals.js -var parseDecimals = function(arr) { - let str = "0."; - for (let i3 = 0; i3 < arr.length; i3++) { - let w = arr[i3]; - if (data_default3.ones.hasOwnProperty(w) === true) { - str += data_default3.ones[w]; - } else if (data_default3.teens.hasOwnProperty(w) === true) { - str += data_default3.teens[w]; - } else if (data_default3.tens.hasOwnProperty(w) === true) { - str += data_default3.tens[w]; - } else if (/^[0-9]$/.test(w) === true) { - str += w; - } else { - return 0; - } - } - return parseFloat(str); -}; -var parseDecimals_default = parseDecimals; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/toNumber/parseNumeric.js -var parseNumeric = (str) => { - str = str.replace(/1st$/, "1"); - str = str.replace(/2nd$/, "2"); - str = str.replace(/3rd$/, "3"); - str = str.replace(/([4567890])r?th$/, "$1"); - str = str.replace(/^[$€¥£¢]/, ""); - str = str.replace(/[%$€¥£¢]$/, ""); - str = str.replace(/,/g, ""); - str = str.replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/, "$1"); - return str; -}; -var parseNumeric_default = parseNumeric; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/toNumber/index.js -var improperFraction = /^([0-9,. ]+)\/([0-9,. ]+)$/; -var casualForms = { - "a few": 3, - "a couple": 2, - "a dozen": 12, - "two dozen": 24, - zero: 0 -}; -var section_sum = (obj) => { - return Object.keys(obj).reduce((sum, k2) => { - sum += obj[k2]; - return sum; - }, 0); -}; -var parse4 = function(str) { - if (casualForms.hasOwnProperty(str) === true) { - return casualForms[str]; - } - if (str === "a" || str === "an") { - return 1; - } - const modifier = findModifiers_default(str); - str = modifier.str; - let last_mult = null; - let has2 = {}; - let sum = 0; - let isNegative = false; - const terms = str.split(/[ -]/); - for (let i3 = 0; i3 < terms.length; i3++) { - let w = terms[i3]; - w = parseNumeric_default(w); - if (!w || w === "and") { - continue; - } - if (w === "-" || w === "negative") { - isNegative = true; - continue; - } - if (w.charAt(0) === "-") { - isNegative = true; - w = w.substring(1); - } - if (w === "point") { - sum += section_sum(has2); - sum += parseDecimals_default(terms.slice(i3 + 1, terms.length)); - sum *= modifier.amount; - return sum; - } - const fm = w.match(improperFraction); - if (fm) { - const num = parseFloat(fm[1].replace(/[, ]/g, "")); - const denom = parseFloat(fm[2].replace(/[, ]/g, "")); - if (denom) { - sum += num / denom || 0; - } - continue; - } - if (data_default3.tens.hasOwnProperty(w)) { - if (has2.ones && Object.keys(has2).length === 1) { - sum = has2.ones * 100; - has2 = {}; - } - } - if (validate_default2(w, has2) === false) { - return null; - } - if (/^[0-9.]+$/.test(w)) { - has2.ones = parseFloat(w); - } else if (data_default3.ones.hasOwnProperty(w) === true) { - has2.ones = data_default3.ones[w]; - } else if (data_default3.teens.hasOwnProperty(w) === true) { - has2.teens = data_default3.teens[w]; - } else if (data_default3.tens.hasOwnProperty(w) === true) { - has2.tens = data_default3.tens[w]; - } else if (data_default3.multiples.hasOwnProperty(w) === true) { - let mult = data_default3.multiples[w]; - if (mult === last_mult) { - return null; - } - if (mult === 100 && terms[i3 + 1] !== void 0) { - const w2 = terms[i3 + 1]; - if (data_default3.multiples[w2]) { - mult *= data_default3.multiples[w2]; - i3 += 1; - } - } - if (last_mult === null || mult < last_mult) { - sum += (section_sum(has2) || 1) * mult; - last_mult = mult; - has2 = {}; - } else { - sum += section_sum(has2); - last_mult = mult; - sum = (sum || 1) * mult; - has2 = {}; - } - } - } - sum += section_sum(has2); - sum *= modifier.amount; - sum *= isNegative ? -1 : 1; - if (sum === 0 && Object.keys(has2).length === 0) { - return null; - } - return sum; -}; -var toNumber_default = parse4; - -// node_modules/compromise/src/3-three/numbers/fractions/parse.js -var endS = /s$/; -var parseNumber = function(m3) { - let str = m3.text("reduced"); - return toNumber_default(str); -}; -var mapping2 = { - half: 2, - halve: 2, - quarter: 4 -}; -var slashForm = function(m3) { - let str = m3.text("reduced"); - let found = str.match(/^([-+]?[0-9]+)\/([-+]?[0-9]+)(st|nd|rd|th)?s?$/); - if (found && found[1] && found[0]) { - return { - numerator: Number(found[1]), - denominator: Number(found[2]) - }; - } - return null; -}; -var nOutOfN = function(m3) { - let found = m3.match("[#Value+] out of every? [#Value+]"); - if (found.found !== true) { - return null; - } - let { num, den } = found.groups(); - if (!num || !den) { - return null; - } - num = parseNumber(num); - den = parseNumber(den); - if (!num || !den) { - return null; - } - if (typeof num === "number" && typeof den === "number") { - return { - numerator: num, - denominator: den - }; - } - return null; -}; -var nOrinalth = function(m3) { - let found = m3.match("[(#Cardinal|a)+] [#Fraction+]"); - if (found.found !== true) { - return null; - } - let { num, den } = found.groups(); - if (num.has("a")) { - num = 1; - } else { - num = parseNumber(num); - } - let str = den.text("reduced"); - if (endS.test(str)) { - str = str.replace(endS, ""); - den = den.replaceWith(str); - } - if (mapping2.hasOwnProperty(str)) { - den = mapping2[str]; - } else { - den = parseNumber(den); - } - if (typeof num === "number" && typeof den === "number") { - return { - numerator: num, - denominator: den - }; - } - return null; -}; -var oneNth = function(m3) { - let found = m3.match("^#Ordinal$"); - if (found.found !== true) { - return null; - } - if (m3.lookAhead("^of .")) { - let num = parseNumber(found); - return { - numerator: 1, - denominator: num - }; - } - return null; -}; -var named = function(m3) { - let str = m3.text("reduced"); - if (mapping2.hasOwnProperty(str)) { - return { numerator: 1, denominator: mapping2[str] }; - } - return null; -}; -var round2 = (n3) => { - let rounded = Math.round(n3 * 1e3) / 1e3; - if (rounded === 0 && n3 !== 0) { - return n3; - } - return rounded; -}; -var parseFraction = function(m3) { - m3 = m3.clone(); - let res = named(m3) || slashForm(m3) || nOutOfN(m3) || nOrinalth(m3) || oneNth(m3) || null; - if (res !== null) { - if (res.numerator && res.denominator) { - res.decimal = res.numerator / res.denominator; - res.decimal = round2(res.decimal); - } - } - return res; -}; -var parse_default4 = parseFraction; - -// node_modules/compromise/src/3-three/numbers/numbers/_toString.js -var numToString = function(n3) { - if (n3 < 1e6) { - return String(n3); - } - let str; - if (typeof n3 === "number") { - str = n3.toFixed(0); - } else { - str = n3; - } - if (str.indexOf("e+") === -1) { - return str; - } - return str.replace(".", "").split("e+").reduce(function(p4, b) { - return p4 + Array(b - p4.length + 2).join(0); - }); -}; -var toString_default = numToString; - -// node_modules/compromise/src/3-three/numbers/numbers/format/toText/data.js -var tens_mapping = [ - ["ninety", 90], - ["eighty", 80], - ["seventy", 70], - ["sixty", 60], - ["fifty", 50], - ["forty", 40], - ["thirty", 30], - ["twenty", 20] -]; -var ones_mapping = [ - "", - "one", - "two", - "three", - "four", - "five", - "six", - "seven", - "eight", - "nine", - "ten", - "eleven", - "twelve", - "thirteen", - "fourteen", - "fifteen", - "sixteen", - "seventeen", - "eighteen", - "nineteen" -]; -var sequence = [ - [1e24, "septillion"], - [1e20, "hundred sextillion"], - [1e21, "sextillion"], - [1e20, "hundred quintillion"], - [1e18, "quintillion"], - [1e17, "hundred quadrillion"], - [1e15, "quadrillion"], - [1e14, "hundred trillion"], - [1e12, "trillion"], - [1e11, "hundred billion"], - [1e9, "billion"], - [1e8, "hundred million"], - [1e6, "million"], - [1e5, "hundred thousand"], - [1e3, "thousand"], - [100, "hundred"], - [1, "one"] -]; - -// node_modules/compromise/src/3-three/numbers/numbers/format/toText/index.js -var breakdown_magnitudes = function(num) { - let working = num; - let have = []; - sequence.forEach((a2) => { - if (num >= a2[0]) { - let howmany = Math.floor(working / a2[0]); - working -= howmany * a2[0]; - if (howmany) { - have.push({ - unit: a2[1], - count: howmany - }); - } - } - }); - return have; -}; -var breakdown_hundred = function(num) { - let arr = []; - if (num > 100) { - return arr; - } - for (let i3 = 0; i3 < tens_mapping.length; i3++) { - if (num >= tens_mapping[i3][1]) { - num -= tens_mapping[i3][1]; - arr.push(tens_mapping[i3][0]); - } - } - if (ones_mapping[num]) { - arr.push(ones_mapping[num]); - } - return arr; -}; -var handle_decimal = (num) => { - const names = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; - let arr = []; - let str = toString_default(num); - let decimal = str.match(/\.([0-9]+)/); - if (!decimal || !decimal[0]) { - return arr; - } - arr.push("point"); - let decimals = decimal[0].split(""); - for (let i3 = 0; i3 < decimals.length; i3++) { - arr.push(names[decimals[i3]]); - } - return arr; -}; -var toText3 = function(obj) { - let num = obj.num; - if (num === 0 || num === "0") { - return "zero"; - } - if (num > 1e21) { - num = toString_default(num); - } - let arr = []; - if (num < 0) { - arr.push("minus"); - num = Math.abs(num); - } - let units = breakdown_magnitudes(num); - for (let i3 = 0; i3 < units.length; i3++) { - let unit_name = units[i3].unit; - if (unit_name === "one") { - unit_name = ""; - if (arr.length > 1) { - arr.push("and"); - } - } - arr = arr.concat(breakdown_hundred(units[i3].count)); - arr.push(unit_name); - } - arr = arr.concat(handle_decimal(num)); - arr = arr.filter((s3) => s3); - if (arr.length === 0) { - arr[0] = ""; - } - return arr.join(" "); -}; -var toText_default = toText3; - -// node_modules/compromise/src/3-three/numbers/fractions/convert/toCardinal.js -var toCardinal = function(obj) { - if (!obj.numerator || !obj.denominator) { - return ""; - } - let a2 = toText_default({ num: obj.numerator }); - let b = toText_default({ num: obj.denominator }); - return `${a2} out of ${b}`; -}; -var toCardinal_default = toCardinal; - -// node_modules/compromise/src/3-three/numbers/numbers/format/toOrdinal/textOrdinal.js -var irregulars = { - one: "first", - two: "second", - three: "third", - five: "fifth", - eight: "eighth", - nine: "ninth", - twelve: "twelfth", - twenty: "twentieth", - thirty: "thirtieth", - forty: "fortieth", - fourty: "fourtieth", - fifty: "fiftieth", - sixty: "sixtieth", - seventy: "seventieth", - eighty: "eightieth", - ninety: "ninetieth" -}; -var textOrdinal = (obj) => { - let words = toText_default(obj).split(" "); - let last = words[words.length - 1]; - if (irregulars.hasOwnProperty(last)) { - words[words.length - 1] = irregulars[last]; - } else { - words[words.length - 1] = last.replace(/y$/, "i") + "th"; - } - return words.join(" "); -}; -var textOrdinal_default = textOrdinal; - -// node_modules/compromise/src/3-three/numbers/fractions/convert/toOrdinal.js -var toOrdinal = function(obj) { - if (!obj.numerator || !obj.denominator) { - return ""; - } - let start2 = toText_default({ num: obj.numerator }); - let end2 = textOrdinal_default({ num: obj.denominator }); - if (obj.denominator === 2) { - end2 = "half"; - } - if (start2 && end2) { - if (obj.numerator !== 1) { - end2 += "s"; - } - return `${start2} ${end2}`; - } - return ""; -}; -var toOrdinal_default = toOrdinal; - -// node_modules/compromise/src/3-three/numbers/fractions/api.js -var plugin3 = function(View2) { - class Fractions extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Fractions"; - } - parse(n3) { - return this.getNth(n3).map(parse_default4); - } - get(n3) { - return this.getNth(n3).map(parse_default4); - } - json(n3) { - return this.getNth(n3).map((p4) => { - let json = p4.toView().json(n3)[0]; - let parsed = parse_default4(p4); - json.fraction = parsed; - return json; - }, []); - } - toDecimal(n3) { - this.getNth(n3).forEach((m3) => { - let { decimal } = parse_default4(m3); - m3 = m3.replaceWith(String(decimal), true); - m3.tag("NumericValue"); - m3.unTag("Fraction"); - }); - return this; - } - toFraction(n3) { - this.getNth(n3).forEach((m3) => { - let obj = parse_default4(m3); - if (obj && typeof obj.numerator === "number" && typeof obj.denominator === "number") { - let str = `${obj.numerator}/${obj.denominator}`; - this.replace(m3, str); - } - }); - return this; - } - toOrdinal(n3) { - this.getNth(n3).forEach((m3) => { - let obj = parse_default4(m3); - let str = toOrdinal_default(obj); - if (m3.after("^#Noun").found) { - str += " of"; - } - m3.replaceWith(str); - }); - return this; - } - toCardinal(n3) { - this.getNth(n3).forEach((m3) => { - let obj = parse_default4(m3); - let str = toCardinal_default(obj); - m3.replaceWith(str); - }); - return this; - } - toPercentage(n3) { - this.getNth(n3).forEach((m3) => { - let { decimal } = parse_default4(m3); - let percent = decimal * 100; - percent = Math.round(percent * 100) / 100; - m3.replaceWith(`${percent}%`); - }); - return this; - } - } - View2.prototype.fractions = function(n3) { - let m3 = find_default2(this); - m3 = m3.getNth(n3); - return new Fractions(this.document, m3.pointer); - }; -}; -var api_default15 = plugin3; - -// node_modules/compromise/src/3-three/numbers/numbers/find.js -var ones = "one|two|three|four|five|six|seven|eight|nine"; -var tens = "twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty"; -var teens = "eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen"; -var findNumbers = function(doc) { - let m3 = doc.match("#Value+"); - if (m3.has("#NumericValue #NumericValue")) { - if (m3.has("#Value @hasComma #Value")) { - m3.splitAfter("@hasComma"); - } else if (m3.has("#NumericValue #Fraction")) { - m3.splitAfter("#NumericValue #Fraction"); - } else { - m3 = m3.splitAfter("#NumericValue"); - } - } - if (m3.has("#Value #Value #Value") && !m3.has("#Multiple")) { - if (m3.has("(" + tens + ") #Cardinal #Cardinal")) { - m3 = m3.splitAfter("(" + tens + ") #Cardinal"); - } - } - if (m3.has("#Value #Value")) { - if (m3.has("#NumericValue #NumericValue")) { - m3 = m3.splitOn("#Year"); - } - if (m3.has("(" + tens + ") (" + teens + ")")) { - m3 = m3.splitAfter("(" + tens + ")"); - } - let double = m3.match("#Cardinal #Cardinal"); - if (double.found && !m3.has("(point|decimal|#Fraction)")) { - if (!double.has("#Cardinal (#Multiple|point|decimal)")) { - let noMultiple = m3.has(`(${ones}) (${tens})`); - let tensVal = double.has("(" + tens + ") #Cardinal"); - let multVal = double.has("#Multiple #Value"); - if (!noMultiple && !tensVal && !multVal) { - double.terms().forEach((d2) => { - m3 = m3.splitOn(d2); - }); - } - } - } - if (m3.match("#Ordinal #Ordinal").match("#TextValue").found && !m3.has("#Multiple")) { - if (!m3.has("(" + tens + ") #Ordinal")) { - m3 = m3.splitAfter("#Ordinal"); - } - } - m3 = m3.splitBefore("#Ordinal [#Cardinal]", 0); - if (m3.has("#TextValue #NumericValue") && !m3.has("(" + tens + "|#Multiple)")) { - m3 = m3.splitBefore("#TextValue #NumericValue"); - } - } - m3 = m3.splitAfter("#NumberRange"); - m3 = m3.splitBefore("#Year"); - return m3; -}; -var find_default3 = findNumbers; - -// node_modules/compromise/src/3-three/numbers/numbers/parse/index.js -var parseNumeric2 = function(str, m3) { - str = str.replace(/,/g, ""); - let arr = str.split(/([0-9.,]*)/); - let [prefix6, num] = arr; - let suffix = arr.slice(2).join(""); - if (num !== "" && m3.length < 2) { - num = Number(num || str); - if (typeof num !== "number") { - num = null; - } - suffix = suffix || ""; - if (suffix === "st" || suffix === "nd" || suffix === "rd" || suffix === "th") { - suffix = ""; - } - return { - prefix: prefix6 || "", - num, - suffix - }; - } - return null; -}; -var parseNumber2 = function(m3) { - if (typeof m3 === "string") { - return { num: toNumber_default(m3) }; - } - let str = m3.text("reduced"); - let unit = m3.growRight("#Unit").match("#Unit$").text("machine"); - let hasComma = /[0-9],[0-9]/.test(m3.text("text")); - if (m3.terms().length === 1 && !m3.has("#Multiple")) { - let res = parseNumeric2(str, m3); - if (res !== null) { - res.hasComma = hasComma; - res.unit = unit; - return res; - } - } - let frPart = m3.match("#Fraction{2,}$"); - frPart = frPart.found === false ? m3.match("^#Fraction$") : frPart; - let fraction = null; - if (frPart.found) { - if (frPart.has("#Value and #Value #Fraction")) { - frPart = frPart.match("and #Value #Fraction"); - } - fraction = parse_default4(frPart); - m3 = m3.not(frPart); - m3 = m3.not("and$"); - str = m3.text("reduced"); - } - let num = 0; - if (str) { - num = toNumber_default(str) || 0; - } - if (fraction && fraction.decimal) { - num += fraction.decimal; - } - return { - hasComma, - prefix: "", - num, - suffix: "", - isOrdinal: m3.has("#Ordinal"), - isText: m3.has("#TextValue"), - isFraction: m3.has("#Fraction"), - isMoney: m3.has("#Money"), - unit - }; -}; -var parse_default5 = parseNumber2; - -// node_modules/compromise/src/3-three/numbers/numbers/format/toOrdinal/numOrdinal.js -var numOrdinal = function(obj) { - let num = obj.num; - if (!num && num !== 0) { - return null; - } - let tens2 = num % 100; - if (tens2 > 10 && tens2 < 20) { - return String(num) + "th"; - } - const mapping3 = { - 0: "th", - 1: "st", - 2: "nd", - 3: "rd" - }; - let str = toString_default(num); - let last = str.slice(str.length - 1, str.length); - if (mapping3[last]) { - str += mapping3[last]; - } else { - str += "th"; - } - return str; -}; -var numOrdinal_default = numOrdinal; - -// node_modules/compromise/src/3-three/numbers/numbers/format/suffix.js -var prefixes = { - "\xA2": "cents", - $: "dollars", - "\xA3": "pounds", - "\xA5": "yen", - "\u20AC": "euros", - "\u20A1": "col\xF3n", - "\u0E3F": "baht", - "\u20AD": "kip", - "\u20A9": "won", - "\u20B9": "rupees", - "\u20BD": "ruble", - "\u20BA": "liras" -}; -var suffixes5 = { - "%": "percent", - "\xB0": "degrees" -}; -var addSuffix = function(obj) { - let res = { - suffix: "", - prefix: obj.prefix - }; - if (prefixes.hasOwnProperty(obj.prefix)) { - res.suffix += " " + prefixes[obj.prefix]; - res.prefix = ""; - } - if (suffixes5.hasOwnProperty(obj.suffix)) { - res.suffix += " " + suffixes5[obj.suffix]; - } - if (res.suffix && obj.num === 1) { - res.suffix = res.suffix.replace(/s$/, ""); - } - if (!res.suffix && obj.suffix) { - res.suffix += " " + obj.suffix; - } - return res; -}; -var suffix_default2 = addSuffix; - -// node_modules/compromise/src/3-three/numbers/numbers/format/index.js -var format = function(obj, fmt2) { - if (fmt2 === "TextOrdinal") { - let { prefix: prefix6, suffix } = suffix_default2(obj); - return prefix6 + textOrdinal_default(obj) + suffix; - } - if (fmt2 === "Ordinal") { - return obj.prefix + numOrdinal_default(obj) + obj.suffix; - } - if (fmt2 === "TextCardinal") { - let { prefix: prefix6, suffix } = suffix_default2(obj); - return prefix6 + toText_default(obj) + suffix; - } - let num = obj.num; - if (obj.hasComma) { - num = num.toLocaleString(); - } - return obj.prefix + String(num) + obj.suffix; -}; -var format_default = format; - -// node_modules/compromise/src/3-three/numbers/numbers/api.js -var addMethod = function(View2) { - class Numbers extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Numbers"; - } - parse(n3) { - return this.getNth(n3).map(parse_default5); - } - get(n3) { - return this.getNth(n3).map(parse_default5).map((o2) => o2.num); - } - json(n3) { - let opts2 = typeof n3 === "object" ? n3 : {}; - return this.getNth(n3).map((p4) => { - let json = p4.toView().json(opts2)[0]; - let parsed = parse_default5(p4); - json.number = { - prefix: parsed.prefix, - num: parsed.num, - suffix: parsed.suffix, - hasComma: parsed.hasComma, - unit: parsed.unit - }; - return json; - }, []); - } - units() { - return this.growRight("#Unit").match("#Unit$"); - } - isOrdinal() { - return this.if("#Ordinal"); - } - isCardinal() { - return this.if("#Cardinal"); - } - toNumber() { - let m3 = this.if("#TextValue"); - m3.forEach((val) => { - let obj = parse_default5(val); - if (obj.num === null) { - return; - } - let fmt2 = val.has("#Ordinal") ? "Ordinal" : "Cardinal"; - let str = format_default(obj, fmt2); - val.replaceWith(str, { tags: true }); - val.tag("NumericValue"); - }); - return this; - } - toLocaleString() { - let m3 = this; - m3.forEach((val) => { - let obj = parse_default5(val); - if (obj.num === null) { - return; - } - let num = obj.num.toLocaleString(); - if (val.has("#Ordinal")) { - let str = format_default(obj, "Ordinal"); - let end2 = str.match(/[a-z]+$/); - if (end2) { - num += end2[0] || ""; - } - } - val.replaceWith(num, { tags: true }); - }); - return this; - } - toText() { - let m3 = this; - let res = m3.map((val) => { - if (val.has("#TextValue")) { - return val; - } - let obj = parse_default5(val); - if (obj.num === null) { - return val; - } - let fmt2 = val.has("#Ordinal") ? "TextOrdinal" : "TextCardinal"; - let str = format_default(obj, fmt2); - val.replaceWith(str, { tags: true }); - val.tag("TextValue"); - return val; - }); - return new Numbers(res.document, res.pointer); - } - toCardinal() { - let m3 = this; - let res = m3.map((val) => { - if (!val.has("#Ordinal")) { - return val; - } - let obj = parse_default5(val); - if (obj.num === null) { - return val; - } - let fmt2 = val.has("#TextValue") ? "TextCardinal" : "Cardinal"; - let str = format_default(obj, fmt2); - val.replaceWith(str, { tags: true }); - val.tag("Cardinal"); - return val; - }); - return new Numbers(res.document, res.pointer); - } - toOrdinal() { - let m3 = this; - let res = m3.map((val) => { - if (val.has("#Ordinal")) { - return val; - } - let obj = parse_default5(val); - if (obj.num === null) { - return val; - } - let fmt2 = val.has("#TextValue") ? "TextOrdinal" : "Ordinal"; - let str = format_default(obj, fmt2); - val.replaceWith(str, { tags: true }); - val.tag("Ordinal"); - return val; - }); - return new Numbers(res.document, res.pointer); - } - isEqual(n3) { - return this.filter((val) => { - let num = parse_default5(val).num; - return num === n3; - }); - } - greaterThan(n3) { - return this.filter((val) => { - let num = parse_default5(val).num; - return num > n3; - }); - } - lessThan(n3) { - return this.filter((val) => { - let num = parse_default5(val).num; - return num < n3; - }); - } - between(min2, max3) { - return this.filter((val) => { - let num = parse_default5(val).num; - return num > min2 && num < max3; - }); - } - set(n3) { - if (n3 === void 0) { - return this; - } - if (typeof n3 === "string") { - n3 = parse_default5(n3).num; - } - let m3 = this; - let res = m3.map((val) => { - let obj = parse_default5(val); - obj.num = n3; - if (obj.num === null) { - return val; - } - let fmt2 = val.has("#Ordinal") ? "Ordinal" : "Cardinal"; - if (val.has("#TextValue")) { - fmt2 = val.has("#Ordinal") ? "TextOrdinal" : "TextCardinal"; - } - let str = format_default(obj, fmt2); - if (obj.hasComma && fmt2 === "Cardinal") { - str = Number(str).toLocaleString(); - } - val = val.not("#Currency"); - val.replaceWith(str, { tags: true }); - return val; - }); - return new Numbers(res.document, res.pointer); - } - add(n3) { - if (!n3) { - return this; - } - if (typeof n3 === "string") { - n3 = parse_default5(n3).num; - } - let m3 = this; - let res = m3.map((val) => { - let obj = parse_default5(val); - if (obj.num === null) { - return val; - } - obj.num += n3; - let fmt2 = val.has("#Ordinal") ? "Ordinal" : "Cardinal"; - if (obj.isText) { - fmt2 = val.has("#Ordinal") ? "TextOrdinal" : "TextCardinal"; - } - let str = format_default(obj, fmt2); - val.replaceWith(str, { tags: true }); - return val; - }); - return new Numbers(res.document, res.pointer); - } - subtract(n3, agree) { - return this.add(n3 * -1, agree); - } - increment(agree) { - return this.add(1, agree); - } - decrement(agree) { - return this.add(-1, agree); - } - update(pointer) { - let m3 = new Numbers(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - Numbers.prototype.toNice = Numbers.prototype.toLocaleString; - Numbers.prototype.isBetween = Numbers.prototype.between; - Numbers.prototype.minus = Numbers.prototype.subtract; - Numbers.prototype.plus = Numbers.prototype.add; - Numbers.prototype.equals = Numbers.prototype.isEqual; - View2.prototype.numbers = function(n3) { - let m3 = find_default3(this); - m3 = m3.getNth(n3); - return new Numbers(this.document, m3.pointer); - }; - View2.prototype.percentages = function(n3) { - let m3 = find_default3(this); - m3 = m3.filter((v2) => v2.has("#Percent") || v2.after("^percent")); - m3 = m3.getNth(n3); - return new Numbers(this.document, m3.pointer); - }; - View2.prototype.money = function(n3) { - let m3 = find_default3(this); - m3 = m3.filter((v2) => v2.has("#Money") || v2.after("^#Currency")); - m3 = m3.getNth(n3); - return new Numbers(this.document, m3.pointer); - }; - View2.prototype.values = View2.prototype.numbers; -}; -var api_default16 = addMethod; - -// node_modules/compromise/src/3-three/numbers/plugin.js -var api13 = function(View2) { - api_default15(View2); - api_default16(View2); -}; -var plugin_default22 = { - api: api13 -}; - -// node_modules/compromise/src/3-three/redact/plugin.js -var defaults3 = { - people: true, - emails: true, - phoneNumbers: true, - places: true -}; -var redact = function(opts2 = {}) { - opts2 = Object.assign({}, defaults3, opts2); - if (opts2.people !== false) { - this.people().replaceWith("\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"); - } - if (opts2.emails !== false) { - this.emails().replaceWith("\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"); - } - if (opts2.places !== false) { - this.places().replaceWith("\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588"); - } - if (opts2.phoneNumbers !== false) { - this.phoneNumbers().replaceWith("\u2588\u2588\u2588\u2588\u2588\u2588\u2588"); - } - return this; -}; -var plugin4 = { - api: function(View2) { - View2.prototype.redact = redact; - } -}; -var plugin_default23 = plugin4; - -// node_modules/compromise/src/3-three/sentences/questions.js -var isQuestion = function(doc) { - let clauses2 = doc.clauses(); - if (/\.\.$/.test(doc.out("text"))) { - return false; - } - if (doc.has("^#QuestionWord") && doc.has("@hasComma")) { - return false; - } - if (doc.has("or not$")) { - return true; - } - if (doc.has("^#QuestionWord")) { - return true; - } - if (doc.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")) { - return true; - } - if (doc.has("^(have|must) you")) { - return true; - } - if (clauses2.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$")) { - return true; - } - return false; -}; -var findQuestions = function(view) { - const hasQ = /\?/; - const { document: document2 } = view; - return view.filter((m3) => { - let terms = m3.docs[0] || []; - let lastTerm = terms[terms.length - 1]; - if (!lastTerm || document2[lastTerm.index[0]].length !== terms.length) { - return false; - } - if (hasQ.test(lastTerm.post)) { - return true; - } - return isQuestion(m3); - }); -}; -var questions_default = findQuestions; - -// node_modules/compromise/src/3-three/sentences/parse/mainClause.js -var subordinate = `(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)`; -var relative = `(that|which|whichever|who|whoever|whom|whose|whomever)`; -var mainClause = function(s3) { - let m3 = s3; - if (m3.length === 1) { - return m3; - } - m3 = m3.if("#Verb"); - if (m3.length === 1) { - return m3; - } - m3 = m3.ifNo(subordinate); - m3 = m3.ifNo("^even (if|though)"); - m3 = m3.ifNo("^so that"); - m3 = m3.ifNo("^rather than"); - m3 = m3.ifNo("^provided that"); - if (m3.length === 1) { - return m3; - } - m3 = m3.ifNo(relative); - if (m3.length === 1) { - return m3; - } - m3 = m3.ifNo("(despite|during|before|through|throughout)"); - if (m3.length === 1) { - return m3; - } - if (m3.length === 0) { - m3 = s3; - } - return m3.eq(0); -}; -var mainClause_default = mainClause; - -// node_modules/compromise/src/3-three/sentences/parse/index.js -var grammar = function(vb3) { - let tense = null; - if (vb3.has("#PastTense")) { - tense = "PastTense"; - } else if (vb3.has("#FutureTense")) { - tense = "FutureTense"; - } else if (vb3.has("#PresentTense")) { - tense = "PresentTense"; - } - return { - tense - }; -}; -var parse5 = function(s3) { - let clauses2 = s3.clauses(); - let main = mainClause_default(clauses2); - let chunks2 = main.chunks(); - let subj = s3.none(); - let verb = s3.none(); - let pred = s3.none(); - chunks2.forEach((ch, i3) => { - if (i3 === 0 && !ch.has("")) { - subj = ch; - return; - } - if (!verb.found && ch.has("")) { - verb = ch; - return; - } - if (verb.found) { - pred = pred.concat(ch); - } - }); - if (verb.found && !subj.found) { - subj = verb.before("+").first(); - } - return { - subj, - verb, - pred, - grammar: grammar(verb) - }; -}; -var parse_default6 = parse5; - -// node_modules/compromise/src/3-three/sentences/conjugate/toPast.js -var toPast2 = function(s3) { - let verbs = s3.verbs(); - let first = verbs.eq(0); - if (first.has("#PastTense")) { - return s3; - } - first.toPastTense(); - if (verbs.length > 1) { - verbs = verbs.slice(1); - verbs = verbs.filter((v2) => !v2.lookBehind("to$").found); - verbs = verbs.if("#PresentTense"); - verbs = verbs.notIf("#Gerund"); - let list4 = s3.match("to #Verb+ #Conjunction #Verb").terms(); - verbs = verbs.not(list4); - if (verbs.found) { - verbs.verbs().toPastTense(); - } - } - return s3; -}; -var toPast_default = toPast2; - -// node_modules/compromise/src/3-three/sentences/conjugate/toPresent.js -var toPresent2 = function(s3) { - let verbs = s3.verbs(); - let first = verbs.eq(0); - first.toPresentTense(); - if (verbs.length > 1) { - verbs = verbs.slice(1); - verbs = verbs.filter((v2) => !v2.lookBehind("to$").found); - verbs = verbs.notIf("#Gerund"); - if (verbs.found) { - verbs.verbs().toPresentTense(); - } - } - return s3; -}; -var toPresent_default = toPresent2; - -// node_modules/compromise/src/3-three/sentences/conjugate/toFuture.js -var toFuture = function(s3) { - let verbs = s3.verbs(); - let first = verbs.eq(0); - first.toFutureTense(); - s3 = s3.fullSentence(); - verbs = s3.verbs(); - if (verbs.length > 1) { - verbs = verbs.slice(1); - let toChange = verbs.filter((vb3) => { - if (vb3.lookBehind("to$").found) { - return false; - } - if (vb3.has("#Copula #Gerund")) { - return true; - } - if (vb3.has("#Gerund")) { - return false; - } - if (vb3.has("#Copula")) { - return true; - } - if (vb3.has("#PresentTense") && !vb3.has("#Infinitive") && vb3.lookBefore("(he|she|it|that|which)$").found) { - return false; - } - return true; - }); - if (toChange.found) { - toChange.forEach((m3) => { - if (m3.has("#Copula")) { - m3.match("was").replaceWith("is"); - m3.match("is").replaceWith("will be"); - return; - } - m3.toInfinitive(); - }); - } - } - return s3; -}; -var toFuture_default = toFuture; - -// node_modules/compromise/src/3-three/sentences/conjugate/toNegative.js -var toNegative = function(s3) { - s3.verbs().first().toNegative().compute("chunks"); - return s3; -}; -var toPositive = function(s3) { - s3.verbs().first().toPositive().compute("chunks"); - return s3; -}; - -// node_modules/compromise/src/3-three/sentences/conjugate/toInfinitive.js -var toInfinitive2 = function(s3) { - s3.verbs().toInfinitive(); - return s3; -}; -var toInfinitive_default2 = toInfinitive2; - -// node_modules/compromise/src/3-three/sentences/api.js -var api14 = function(View2) { - class Sentences extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Sentences"; - } - json(opts2 = {}) { - return this.map((m3) => { - let json = m3.toView().json(opts2)[0] || {}; - let { subj, verb, pred, grammar: grammar2 } = parse_default6(m3); - json.sentence = { - subject: subj.text("normal"), - verb: verb.text("normal"), - predicate: pred.text("normal"), - grammar: grammar2 - }; - return json; - }, []); - } - toPastTense(n3) { - return this.getNth(n3).map((s3) => { - let parsed = parse_default6(s3); - return toPast_default(s3, parsed); - }); - } - toPresentTense(n3) { - return this.getNth(n3).map((s3) => { - let parsed = parse_default6(s3); - return toPresent_default(s3, parsed); - }); - } - toFutureTense(n3) { - return this.getNth(n3).map((s3) => { - let parsed = parse_default6(s3); - s3 = toFuture_default(s3, parsed); - return s3; - }); - } - toInfinitive(n3) { - return this.getNth(n3).map((s3) => { - let parsed = parse_default6(s3); - return toInfinitive_default2(s3, parsed); - }); - } - toNegative(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default6(vb3); - return toNegative(vb3, parsed); - }); - } - toPositive(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default6(vb3); - return toPositive(vb3, parsed); - }); - } - isQuestion(n3) { - return this.questions(n3); - } - isExclamation(n3) { - let res = this.filter((s3) => s3.lastTerm().has("@hasExclamation")); - return res.getNth(n3); - } - isStatement(n3) { - let res = this.filter((s3) => !s3.isExclamation().found && !s3.isQuestion().found); - return res.getNth(n3); - } - update(pointer) { - let m3 = new Sentences(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - Sentences.prototype.toPresent = Sentences.prototype.toPresentTense; - Sentences.prototype.toPast = Sentences.prototype.toPastTense; - Sentences.prototype.toFuture = Sentences.prototype.toFutureTense; - const methods16 = { - sentences: function(n3) { - let m3 = this.map((s3) => s3.fullSentence()); - m3 = m3.getNth(n3); - return new Sentences(this.document, m3.pointer); - }, - questions: function(n3) { - let m3 = questions_default(this); - return m3.getNth(n3); - } - }; - Object.assign(View2.prototype, methods16); -}; -var api_default17 = api14; - -// node_modules/compromise/src/3-three/sentences/plugin.js -var plugin_default24 = { api: api_default17 }; - -// node_modules/compromise/src/3-three/topics/people/find.js -var find5 = function(doc) { - let m3 = doc.match("#Honorific+? #Person+"); - return m3; -}; -var find_default4 = find5; - -// node_modules/compromise/src/3-three/topics/people/parse.js -var parse6 = function(m3) { - let res = {}; - res.firstName = m3.match("#FirstName+"); - res.lastName = m3.match("#LastName+"); - res.honorific = m3.match("#Honorific+"); - let last = res.lastName; - let first = res.firstName; - if (!first.found || !last.found) { - if (!first.found && !last.found && m3.has("^#Honorific .$")) { - res.lastName = m3.match(".$"); - return res; - } - } - return res; -}; -var parse_default7 = parse6; - -// node_modules/compromise/src/3-three/topics/people/gender.js -var m2 = "male"; -var f2 = "female"; -var honorifics = { - mr: m2, - mrs: f2, - miss: f2, - madam: f2, - king: m2, - queen: f2, - duke: m2, - duchess: f2, - baron: m2, - baroness: f2, - count: m2, - countess: f2, - prince: m2, - princess: f2, - sire: m2, - dame: f2, - lady: f2, - ayatullah: m2, - congressman: m2, - congresswoman: f2, - "first lady": f2, - mx: null -}; -var predictGender = function(parsed, person) { - let { firstName, honorific } = parsed; - if (firstName.has("#FemaleName")) { - return f2; - } - if (firstName.has("#MaleName")) { - return m2; - } - if (honorific.found) { - let hon = honorific.text("normal"); - hon = hon.replace(/\./g, ""); - if (honorifics.hasOwnProperty(hon)) { - return honorifics[hon]; - } - if (/^her /.test(hon)) { - return f2; - } - if (/^his /.test(hon)) { - return m2; - } - } - let after2 = person.after(); - if (!after2.has("#Person") && after2.has("#Pronoun")) { - let pro = after2.match("#Pronoun"); - if (pro.has("(they|their)")) { - return null; - } - let hasMasc = pro.has("(he|his)"); - let hasFem = pro.has("(she|her|hers)"); - if (hasMasc && !hasFem) { - return m2; - } - if (hasFem && !hasMasc) { - return f2; - } - } - return null; -}; -var gender_default = predictGender; - -// node_modules/compromise/src/3-three/topics/people/api.js -var addMethod2 = function(View2) { - class People extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "People"; - } - parse(n3) { - return this.getNth(n3).map(parse_default7); - } - json(n3) { - let opts2 = typeof n3 === "object" ? n3 : {}; - return this.getNth(n3).map((p4) => { - let json = p4.toView().json(opts2)[0]; - let parsed = parse_default7(p4); - json.person = { - firstName: parsed.firstName.text("normal"), - lastName: parsed.lastName.text("normal"), - honorific: parsed.honorific.text("normal"), - presumed_gender: gender_default(parsed, p4) - }; - return json; - }, []); - } - presumedMale() { - return this.filter((m3) => { - return m3.has("(#MaleName|mr|mister|sr|jr|king|pope|prince|sir)"); - }); - } - presumedFemale() { - return this.filter((m3) => { - return m3.has("(#FemaleName|mrs|miss|queen|princess|madam)"); - }); - } - update(pointer) { - let m3 = new People(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - View2.prototype.people = function(n3) { - let m3 = find_default4(this); - m3 = m3.getNth(n3); - return new People(this.document, m3.pointer); - }; -}; -var api_default18 = addMethod2; - -// node_modules/compromise/src/3-three/topics/places/find.js -var find6 = function(doc) { - let m3 = doc.match("(#Place|#Address)+"); - let splits = m3.match("@hasComma"); - splits = splits.filter((c2) => { - if (c2.has("(asia|africa|europe|america)$")) { - return true; - } - if (c2.has("(#City|#Region|#ProperNoun)$") && c2.after("^(#Country|#Region)").found) { - return false; - } - return true; - }); - m3 = m3.splitAfter(splits); - return m3; -}; -var find_default5 = find6; - -// node_modules/compromise/src/3-three/topics/places/api.js -var addMethod3 = function(View2) { - View2.prototype.places = function(n3) { - let m3 = find_default5(this); - m3 = m3.getNth(n3); - return new View2(this.document, m3.pointer); - }; -}; -var api_default19 = addMethod3; - -// node_modules/compromise/src/3-three/topics/orgs/api.js -var api15 = function(View2) { - View2.prototype.organizations = function(n3) { - let m3 = this.match("#Organization+"); - return m3.getNth(n3); - }; -}; -var api_default20 = api15; - -// node_modules/compromise/src/3-three/topics/topics.js -var find7 = function(n3) { - let r2 = this.clauses(); - let m3 = r2.people(); - m3 = m3.concat(r2.places()); - m3 = m3.concat(r2.organizations()); - m3 = m3.not("(someone|man|woman|mother|brother|sister|father)"); - m3 = m3.sort("seq"); - m3 = m3.getNth(n3); - return m3; -}; -var api16 = function(View2) { - View2.prototype.topics = find7; -}; -var topics_default = api16; - -// node_modules/compromise/src/3-three/topics/plugin.js -var api17 = function(View2) { - api_default18(View2); - api_default19(View2); - api_default20(View2); - topics_default(View2); -}; -var plugin_default25 = { api: api17 }; - -// node_modules/compromise/src/3-three/verbs/find.js -var findVerbs = function(doc) { - let m3 = doc.match(""); - m3 = m3.not("(#Conjunction && !to)"); - m3 = m3.not("#Preposition"); - m3 = m3.splitAfter("@hasComma"); - m3 = m3.splitAfter("[(do|did|am|was|is|will)] (is|was)", 0); - m3 = m3.splitBefore("(#Verb && !#Copula) [being] #Verb", 0); - m3 = m3.splitBefore("#Verb [to be] #Verb", 0); - m3 = m3.splitAfter("[help] #PresentTense", 0); - m3 = m3.splitBefore("(#PresentTense|#PastTense) [#Copula]$", 0); - m3 = m3.splitBefore("(#PresentTense|#PastTense) [will be]$", 0); - m3 = m3.not("#Reflexive$"); - m3 = m3.splitAfter("[#PastTense] #PastTense", 0); - m3 = m3.splitAfter("[#PastTense] #Auxiliary+ #PastTense", 0); - m3 = m3.splitAfter("#Copula [#Gerund] #PastTense", 0); - m3 = m3.if("#Verb"); - if (m3.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")) { - m3 = m3.splitBefore("#Copula"); - } - return m3; -}; -var find_default6 = findVerbs; - -// node_modules/compromise/src/3-three/verbs/api/parse/root.js -var getMain = function(vb3) { - let root = vb3; - if (vb3.wordCount() > 1) { - root = vb3.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)"); - } - if (root.length > 1 && !root.has("#Phrasal #Particle")) { - root = root.last(); - } - root = root.not("(want|wants|wanted) to"); - if (!root.found) { - root = vb3.not("#Negative"); - return root; - } - return root; -}; -var root_default2 = getMain; - -// node_modules/compromise/src/3-three/verbs/api/parse/adverbs.js -var getAdverbs = function(vb3, root) { - let res = { - pre: vb3.none(), - post: vb3.none() - }; - if (!vb3.has("#Adverb")) { - return res; - } - let parts = vb3.splitOn(root); - if (parts.length === 3) { - return { - pre: parts.eq(0).adverbs(), - post: parts.eq(2).adverbs() - }; - } - if (parts.eq(0).isDoc(root)) { - res.post = parts.eq(1).adverbs(); - return res; - } - res.pre = parts.eq(0).adverbs(); - return res; -}; -var adverbs_default2 = getAdverbs; - -// node_modules/compromise/src/3-three/verbs/api/parse/index.js -var getAuxiliary = function(vb3, root) { - let parts = vb3.splitBefore(root); - if (parts.length <= 1) { - return vb3.none(); - } - let aux = parts.eq(0); - aux = aux.not("(#Adverb|#Negative|#Prefix)"); - return aux; -}; -var getNegative = function(vb3) { - return vb3.match("#Negative"); -}; -var getPhrasal = function(root) { - if (!root.has("(#Particle|#PhrasalVerb)")) { - return { - verb: root.none(), - particle: root.none() - }; - } - let particle = root.match("#Particle$"); - return { - verb: root.not(particle), - particle - }; -}; -var parseVerb = function(view) { - let vb3 = view.clone(); - vb3.contractions().expand(); - const root = root_default2(vb3); - let res = { - root, - prefix: vb3.match("#Prefix"), - adverbs: adverbs_default2(vb3, root), - auxiliary: getAuxiliary(vb3, root), - negative: getNegative(vb3), - phrasal: getPhrasal(root) - }; - return res; -}; -var parse_default8 = parseVerb; - -// node_modules/compromise/src/3-three/verbs/api/parse/grammar/forms.js -var present = { tense: "PresentTense" }; -var conditional = { conditional: true }; -var future = { tense: "FutureTense" }; -var prog = { progressive: true }; -var past2 = { tense: "PastTense" }; -var complete = { complete: true, progressive: false }; -var passive = { passive: true }; -var plural = { plural: true }; -var singular = { plural: false }; -var getData = function(tags) { - let data = {}; - tags.forEach((o2) => { - Object.assign(data, o2); - }); - return data; -}; -var verbForms = { - "imperative": [ - ["#Imperative", []] - ], - "want-infinitive": [ - ["^(want|wants|wanted) to #Infinitive$", [present]], - ["^wanted to #Infinitive$", [past2]], - ["^will want to #Infinitive$", [future]] - ], - "gerund-phrase": [ - ["^#PastTense #Gerund$", [past2]], - ["^#PresentTense #Gerund$", [present]], - ["^#Infinitive #Gerund$", [present]], - ["^will #Infinitive #Gerund$", [future]], - ["^have #PastTense #Gerund$", [past2]], - ["^will have #PastTense #Gerund$", [past2]] - ], - "simple-present": [ - ["^#PresentTense$", [present]], - ["^#Infinitive$", [present]] - ], - "simple-past": [ - ["^#PastTense$", [past2]] - ], - "simple-future": [ - ["^will #Adverb? #Infinitive", [future]] - ], - "present-progressive": [ - ["^(is|are|am) #Gerund$", [present, prog]] - ], - "past-progressive": [ - ["^(was|were) #Gerund$", [past2, prog]] - ], - "future-progressive": [ - ["^will be #Gerund$", [future, prog]] - ], - "present-perfect": [ - ["^(has|have) #PastTense$", [past2, complete]] - ], - "past-perfect": [ - ["^had #PastTense$", [past2, complete]], - ["^had #PastTense to #Infinitive", [past2, complete]] - ], - "future-perfect": [ - ["^will have #PastTense$", [future, complete]] - ], - "present-perfect-progressive": [ - ["^(has|have) been #Gerund$", [past2, prog]] - ], - "past-perfect-progressive": [ - ["^had been #Gerund$", [past2, prog]] - ], - "future-perfect-progressive": [ - ["^will have been #Gerund$", [future, prog]] - ], - "passive-past": [ - ["(got|were|was) #Passive", [past2, passive]], - ["^(was|were) being #Passive", [past2, passive]], - ["^(had|have) been #Passive", [past2, passive]] - ], - "passive-present": [ - ["^(is|are|am) #Passive", [present, passive]], - ["^(is|are|am) being #Passive", [present, passive]], - ["^has been #Passive", [present, passive]] - ], - "passive-future": [ - ["will have been #Passive", [future, passive, conditional]], - ["will be being? #Passive", [future, passive, conditional]] - ], - "present-conditional": [ - ["would be #PastTense", [present, conditional]] - ], - "past-conditional": [ - ["would have been #PastTense", [past2, conditional]] - ], - "auxiliary-future": [ - ["(is|are|am|was) going to (#Infinitive|#PresentTense)", [future]] - ], - "auxiliary-past": [ - ["^did #Infinitive$", [past2, singular]], - ["^used to #Infinitive$", [past2, complete]] - ], - "auxiliary-present": [ - ["^(does|do) #Infinitive$", [present, complete, plural]] - ], - "modal-past": [ - ["^(could|must|should|shall) have #PastTense$", [past2]] - ], - "modal-infinitive": [ - ["^#Modal #Infinitive$", []] - ], - "infinitive": [ - ["^#Infinitive$", []] - ] -}; -var list3 = []; -Object.keys(verbForms).map((k2) => { - verbForms[k2].forEach((a2) => { - list3.push({ - name: k2, - match: a2[0], - data: getData(a2[1]) - }); - }); -}); -var forms_default = list3; - -// node_modules/compromise/src/3-three/verbs/api/parse/grammar/index.js -var cleanUp2 = function(vb3, res) { - vb3 = vb3.clone(); - if (res.adverbs.post && res.adverbs.post.found) { - vb3.remove(res.adverbs.post); - } - if (res.adverbs.pre && res.adverbs.pre.found) { - vb3.remove(res.adverbs.pre); - } - if (vb3.has("#Negative")) { - vb3 = vb3.remove("#Negative"); - } - if (vb3.has("#Prefix")) { - vb3 = vb3.remove("#Prefix"); - } - if (res.root.has("#PhrasalVerb #Particle")) { - vb3.remove("#Particle$"); - } - vb3 = vb3.not("#Adverb"); - return vb3; -}; -var getGrammar = function(vb3, res) { - let grammar2 = {}; - vb3 = cleanUp2(vb3, res); - for (let i3 = 0; i3 < forms_default.length; i3 += 1) { - let todo = forms_default[i3]; - if (vb3.has(todo.match) === true) { - grammar2.form = todo.name; - Object.assign(grammar2, todo.data); - break; - } - } - if (!grammar2.form) { - if (vb3.has("^#Verb$")) { - grammar2.form = "infinitive"; - } - } - if (!grammar2.tense) { - grammar2.tense = res.root.has("#PastTense") ? "PastTense" : "PresentTense"; - } - grammar2.copula = res.root.has("#Copula"); - return grammar2; -}; -var grammar_default = getGrammar; - -// node_modules/compromise/src/3-three/verbs/api/parse/getSubject.js -var shouldSkip = function(last) { - if (last.length <= 1) { - return false; - } - let obj = last.parse()[0] || {}; - return obj.isSubordinate; -}; -var noSubClause = function(before2) { - let parts = before2.clauses(); - parts = parts.filter((m3, i3) => { - if (m3.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")) { - return false; - } - if (i3 > 0 && m3.has("^#Verb . #Noun+$")) { - return false; - } - if (i3 > 0 && m3.has("^#Adverb")) { - return false; - } - return true; - }); - if (parts.length === 0) { - return before2; - } - return parts; -}; -var lastNoun2 = function(vb3) { - let before2 = vb3.before(); - before2 = noSubClause(before2); - let nouns = before2.nouns(); - let last = nouns.last(); - let pronoun = last.match("(i|he|she|we|you|they)"); - if (pronoun.found) { - return pronoun.nouns(); - } - let det = nouns.if("^(that|this|those)"); - if (det.found) { - return det; - } - if (nouns.found === false) { - det = before2.match("^(that|this|those)"); - if (det.found) { - return det; - } - } - last = nouns.last(); - if (shouldSkip(last)) { - nouns.remove(last); - last = nouns.last(); - } - if (shouldSkip(last)) { - nouns.remove(last); - last = nouns.last(); - } - return last; -}; -var isPlural3 = function(subj, vb3) { - if (vb3.has("(are|were|does)")) { - return true; - } - if (subj.has("(those|they|we)")) { - return true; - } - if (subj.found && subj.isPlural) { - return subj.isPlural().found; - } - return false; -}; -var getSubject = function(vb3) { - let subj = lastNoun2(vb3); - return { - subject: subj, - plural: isPlural3(subj, vb3) - }; -}; -var getSubject_default = getSubject; - -// node_modules/compromise/src/3-three/verbs/api/lib.js -var noop = (vb3) => vb3; -var isPlural4 = (vb3, parsed) => { - let subj = getSubject_default(vb3, parsed); - let m3 = subj.subject; - if (m3.has("i") || m3.has("we")) { - return true; - } - return subj.plural; -}; -var wasWere = (vb3, parsed) => { - let { subject, plural: plural2 } = getSubject_default(vb3, parsed); - if (plural2 || subject.has("we")) { - return "were"; - } - return "was"; -}; -var isAreAm = function(vb3, parsed) { - if (vb3.has("were")) { - return "are"; - } - let { subject, plural: plural2 } = getSubject_default(vb3, parsed); - if (subject.has("i")) { - return "am"; - } - if (subject.has("we") || plural2) { - return "are"; - } - return "is"; -}; -var doDoes = function(vb3, parsed) { - let subj = getSubject_default(vb3, parsed); - let m3 = subj.subject; - if (m3.has("i") || m3.has("we")) { - return "do"; - } - if (subj.plural) { - return "do"; - } - return "does"; -}; -var getTense2 = function(m3) { - if (m3.has("#Infinitive")) { - return "Infinitive"; - } - if (m3.has("#Participle")) { - return "Participle"; - } - if (m3.has("#PastTense")) { - return "PastTense"; - } - if (m3.has("#Gerund")) { - return "Gerund"; - } - if (m3.has("#PresentTense")) { - return "PresentTense"; - } - return void 0; -}; -var toInf = function(vb3, parsed) { - const { toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - let str = parsed.root.text({ keepPunct: false }); - str = toInfinitive3(str, vb3.model, getTense2(vb3)); - if (str) { - vb3.replace(parsed.root, str); - } - return vb3; -}; -var noWill = (vb3) => { - if (vb3.has("will not")) { - return vb3.replace("will not", "have not"); - } - return vb3.remove("will"); -}; - -// node_modules/compromise/src/3-three/verbs/api/toJSON.js -var toArray4 = function(m3) { - if (!m3 || !m3.isView) { - return []; - } - const opts2 = { normal: true, terms: false, text: false }; - return m3.json(opts2).map((s3) => s3.normal); -}; -var toText4 = function(m3) { - if (!m3 || !m3.isView) { - return ""; - } - return m3.text("normal"); -}; -var toInf2 = function(root) { - const { toInfinitive: toInfinitive3 } = root.methods.two.transform.verb; - let str = root.text("normal"); - return toInfinitive3(str, root.model, getTense2(root)); -}; -var toJSON3 = function(vb3) { - let parsed = parse_default8(vb3); - vb3 = vb3.clone().toView(); - const info = grammar_default(vb3, parsed); - return { - root: parsed.root.text(), - preAdverbs: toArray4(parsed.adverbs.pre), - postAdverbs: toArray4(parsed.adverbs.post), - auxiliary: toText4(parsed.auxiliary), - negative: parsed.negative.found, - prefix: toText4(parsed.prefix), - infinitive: toInf2(parsed.root), - grammar: info - }; -}; -var toJSON_default2 = toJSON3; - -// node_modules/compromise/src/3-three/verbs/api/conjugate/toInfinitive.js -var keep3 = { tags: true }; -var toInf3 = function(vb3, parsed) { - const { toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const { root, auxiliary } = parsed; - let aux = auxiliary.terms().harden(); - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - if (str) { - vb3.replace(root, str, keep3).tag("Verb").firstTerm().tag("Infinitive"); - } - if (aux.found) { - vb3.remove(aux); - } - if (parsed.negative.found) { - if (!vb3.has("not")) { - vb3.prepend("not"); - } - let does = doDoes(vb3, parsed); - vb3.prepend(does); - } - vb3.fullSentence().compute(["lexicon", "preTagger", "postTagger", "chunks"]); - return vb3; -}; -var toInfinitive_default3 = toInf3; - -// node_modules/compromise/src/3-three/verbs/api/conjugate/toPast.js -var keep4 = { tags: true }; -var fns6 = { - noAux: (vb3, parsed) => { - if (parsed.auxiliary.found) { - vb3 = vb3.remove(parsed.auxiliary); - } - return vb3; - }, - simple: (vb3, parsed) => { - const { conjugate: conjugate2, toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const root = parsed.root; - if (root.has("#Modal")) { - return vb3; - } - let str = root.text({ keepPunct: false }); - str = toInfinitive3(str, vb3.model, getTense2(root)); - let all4 = conjugate2(str, vb3.model); - str = all4.PastTense; - str = str === "been" ? "was" : str; - if (str === "was") { - str = wasWere(vb3, parsed); - } - if (str) { - vb3.replace(root, str, keep4); - } - return vb3; - }, - both: function(vb3, parsed) { - if (parsed.negative.found) { - vb3.replace("will", "did"); - return vb3; - } - vb3 = fns6.simple(vb3, parsed); - vb3 = fns6.noAux(vb3, parsed); - return vb3; - }, - hasHad: (vb3) => { - vb3.replace("has", "had", keep4); - return vb3; - }, - hasParticiple: (vb3, parsed) => { - const { conjugate: conjugate2, toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const root = parsed.root; - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - return conjugate2(str, vb3.model).Participle; - } -}; -var forms = { - "infinitive": fns6.simple, - "simple-present": fns6.simple, - "simple-past": noop, - "simple-future": fns6.both, - "present-progressive": (vb3) => { - vb3.replace("are", "were", keep4); - vb3.replace("(is|are|am)", "was", keep4); - return vb3; - }, - "past-progressive": noop, - "future-progressive": (vb3, parsed) => { - vb3.match(parsed.root).insertBefore("was"); - vb3.remove("(will|be)"); - return vb3; - }, - "present-perfect": fns6.hasHad, - "past-perfect": noop, - "future-perfect": (vb3, parsed) => { - vb3.match(parsed.root).insertBefore("had"); - if (vb3.has("will")) { - vb3 = noWill(vb3); - } - vb3.remove("have"); - return vb3; - }, - "present-perfect-progressive": fns6.hasHad, - "past-perfect-progressive": noop, - "future-perfect-progressive": (vb3) => { - vb3.remove("will"); - vb3.replace("have", "had", keep4); - return vb3; - }, - "passive-past": (vb3) => { - vb3.replace("have", "had", keep4); - return vb3; - }, - "passive-present": (vb3) => { - vb3.replace("(is|are)", "was", keep4); - return vb3; - }, - "passive-future": (vb3, parsed) => { - if (parsed.auxiliary.has("will be")) { - vb3.match(parsed.root).insertBefore("had been"); - vb3.remove("(will|be)"); - } - if (parsed.auxiliary.has("will have been")) { - vb3.replace("have", "had", keep4); - vb3.remove("will"); - } - return vb3; - }, - "present-conditional": (vb3) => { - vb3.replace("be", "have been"); - return vb3; - }, - "past-conditional": noop, - "auxiliary-future": (vb3) => { - vb3.replace("(is|are|am)", "was", keep4); - return vb3; - }, - "auxiliary-past": noop, - "auxiliary-present": (vb3) => { - vb3.replace("(do|does)", "did", keep4); - return vb3; - }, - "modal-infinitive": (vb3, parsed) => { - if (vb3.has("can")) { - vb3.replace("can", "could", keep4); - } else { - fns6.simple(vb3, parsed); - vb3.match("#Modal").insertAfter("have").tag("Auxiliary"); - } - return vb3; - }, - "modal-past": noop, - "want-infinitive": (vb3) => { - vb3.replace("(want|wants)", "wanted", keep4); - vb3.remove("will"); - return vb3; - }, - "gerund-phrase": (vb3, parsed) => { - parsed.root = parsed.root.not("#Gerund$"); - fns6.simple(vb3, parsed); - noWill(vb3); - return vb3; - } -}; -var toPast3 = function(vb3, parsed, form) { - if (forms.hasOwnProperty(form)) { - vb3 = forms[form](vb3, parsed); - vb3.fullSentence().compute(["tagger", "chunks"]); - return vb3; - } - return vb3; -}; -var toPast_default2 = toPast3; - -// node_modules/compromise/src/3-three/verbs/api/conjugate/toPresent.js -var keep5 = { tags: true }; -var simple = (vb3, parsed) => { - const { conjugate: conjugate2, toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const root = parsed.root; - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - if (isPlural4(vb3, parsed) === false) { - str = conjugate2(str, vb3.model).PresentTense; - } - if (root.has("#Copula")) { - str = isAreAm(vb3, parsed); - } - if (str) { - vb3 = vb3.replace(root, str, keep5); - vb3.not("#Particle").tag("PresentTense"); - } - return vb3; -}; -var toGerund2 = (vb3, parsed) => { - const { conjugate: conjugate2, toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const root = parsed.root; - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - if (isPlural4(vb3, parsed) === false) { - str = conjugate2(str, vb3.model).Gerund; - } - if (str) { - vb3 = vb3.replace(root, str, keep5); - vb3.not("#Particle").tag("Gerund"); - } - return vb3; -}; -var vbToInf = (vb3, parsed) => { - const { toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const root = parsed.root; - let str = parsed.root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - if (str) { - vb3 = vb3.replace(parsed.root, str, keep5); - } - return vb3; -}; -var forms2 = { - "infinitive": simple, - "simple-present": (vb3, parsed) => { - const { conjugate: conjugate2 } = vb3.methods.two.transform.verb; - let { root } = parsed; - if (root.has("#Infinitive")) { - let subj = getSubject_default(vb3, parsed); - let m3 = subj.subject; - if (isPlural4(vb3, parsed) || m3.has("i")) { - return vb3; - } - let str = root.text("normal"); - let pres = conjugate2(str, vb3.model).PresentTense; - if (str !== pres) { - vb3.replace(root, pres, keep5); - } - } else { - return simple(vb3, parsed); - } - return vb3; - }, - "simple-past": simple, - "simple-future": (vb3, parsed) => { - const { root, auxiliary } = parsed; - if (auxiliary.has("will") && root.has("be")) { - let str = isAreAm(vb3, parsed); - vb3.replace(root, str); - vb3 = vb3.remove("will"); - vb3.replace("not " + str, str + " not"); - } else { - simple(vb3, parsed); - vb3 = vb3.remove("will"); - } - return vb3; - }, - "present-progressive": noop, - "past-progressive": (vb3, parsed) => { - let str = isAreAm(vb3, parsed); - return vb3.replace("(were|was)", str, keep5); - }, - "future-progressive": (vb3) => { - vb3.match("will").insertBefore("is"); - vb3.remove("be"); - return vb3.remove("will"); - }, - "present-perfect": (vb3, parsed) => { - simple(vb3, parsed); - vb3 = vb3.remove("(have|had|has)"); - return vb3; - }, - "past-perfect": (vb3, parsed) => { - let subj = getSubject_default(vb3, parsed); - let m3 = subj.subject; - if (isPlural4(vb3, parsed) || m3.has("i")) { - vb3 = toInf(vb3, parsed); - vb3.remove("had"); - return vb3; - } - vb3.replace("had", "has", keep5); - return vb3; - }, - "future-perfect": (vb3) => { - vb3.match("will").insertBefore("has"); - return vb3.remove("have").remove("will"); - }, - "present-perfect-progressive": noop, - "past-perfect-progressive": (vb3) => vb3.replace("had", "has", keep5), - "future-perfect-progressive": (vb3) => { - vb3.match("will").insertBefore("has"); - return vb3.remove("have").remove("will"); - }, - "passive-past": (vb3, parsed) => { - let str = isAreAm(vb3, parsed); - if (vb3.has("(had|have|has)") && vb3.has("been")) { - vb3.replace("(had|have|has)", str, keep5); - vb3.replace("been", "being"); - return vb3; - } - return vb3.replace("(got|was|were)", str); - }, - "passive-present": noop, - "passive-future": (vb3) => { - vb3.replace("will", "is"); - return vb3.replace("be", "being"); - }, - "present-conditional": noop, - "past-conditional": (vb3) => { - vb3.replace("been", "be"); - return vb3.remove("have"); - }, - "auxiliary-future": (vb3, parsed) => { - toGerund2(vb3, parsed); - vb3.remove("(going|to)"); - return vb3; - }, - "auxiliary-past": (vb3, parsed) => { - if (parsed.auxiliary.has("did")) { - let str = doDoes(vb3, parsed); - vb3.replace(parsed.auxiliary, str); - return vb3; - } - toGerund2(vb3, parsed); - vb3.replace(parsed.auxiliary, "is"); - return vb3; - }, - "auxiliary-present": noop, - "modal-infinitive": noop, - "modal-past": (vb3, parsed) => { - vbToInf(vb3, parsed); - return vb3.remove("have"); - }, - "gerund-phrase": (vb3, parsed) => { - parsed.root = parsed.root.not("#Gerund$"); - simple(vb3, parsed); - return vb3.remove("(will|have)"); - }, - "want-infinitive": (vb3, parsed) => { - let str = "wants"; - if (isPlural4(vb3, parsed)) { - str = "want"; - } - vb3.replace("(want|wanted|wants)", str, keep5); - vb3.remove("will"); - return vb3; - } -}; -var toPresent3 = function(vb3, parsed, form) { - if (forms2.hasOwnProperty(form)) { - vb3 = forms2[form](vb3, parsed); - vb3.fullSentence().compute(["tagger", "chunks"]); - return vb3; - } - return vb3; -}; -var toPresent_default2 = toPresent3; - -// node_modules/compromise/src/3-three/verbs/api/conjugate/toFuture.js -var keep6 = { tags: true }; -var simple2 = (vb3, parsed) => { - const { toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const { root, auxiliary } = parsed; - if (root.has("#Modal")) { - return vb3; - } - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - if (str) { - vb3 = vb3.replace(root, str, keep6); - vb3.not("#Particle").tag("Verb"); - } - vb3.prepend("will").match("will").tag("Auxiliary"); - vb3.remove(auxiliary); - return vb3; -}; -var progressive = (vb3, parsed) => { - const { conjugate: conjugate2, toInfinitive: toInfinitive3 } = vb3.methods.two.transform.verb; - const { root, auxiliary } = parsed; - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - if (str) { - str = conjugate2(str, vb3.model).Gerund; - vb3.replace(root, str, keep6); - vb3.not("#Particle").tag("PresentTense"); - } - vb3.remove(auxiliary); - vb3.prepend("will be").match("will be").tag("Auxiliary"); - return vb3; -}; -var forms3 = { - "infinitive": simple2, - "simple-present": simple2, - "simple-past": simple2, - "simple-future": noop, - "present-progressive": progressive, - "past-progressive": progressive, - "future-progressive": noop, - "present-perfect": (vb3) => { - vb3.match("(have|has)").replaceWith("will have"); - return vb3; - }, - "past-perfect": (vb3) => vb3.replace("(had|has)", "will have"), - "future-perfect": noop, - "present-perfect-progressive": (vb3) => vb3.replace("has", "will have"), - "past-perfect-progressive": (vb3) => vb3.replace("had", "will have"), - "future-perfect-progressive": noop, - "passive-past": (vb3) => { - if (vb3.has("got")) { - return vb3.replace("got", "will get"); - } - if (vb3.has("(was|were)")) { - vb3.replace("(was|were)", "will be"); - return vb3.remove("being"); - } - if (vb3.has("(have|has|had) been")) { - return vb3.replace("(have|has|had) been", "will be"); - } - return vb3; - }, - "passive-present": (vb3) => { - vb3.replace("being", "will be"); - vb3.remove("(is|are|am)"); - return vb3; - }, - "passive-future": noop, - "present-conditional": (vb3) => vb3.replace("would", "will"), - "past-conditional": (vb3) => vb3.replace("would", "will"), - "auxiliary-future": noop, - "auxiliary-past": (vb3) => { - if (vb3.has("used") && vb3.has("to")) { - vb3.replace("used", "will"); - return vb3.remove("to"); - } - vb3.replace("did", "will"); - return vb3; - }, - "auxiliary-present": (vb3) => { - return vb3.replace("(do|does)", "will"); - }, - "modal-infinitive": noop, - "modal-past": noop, - "gerund-phrase": (vb3, parsed) => { - parsed.root = parsed.root.not("#Gerund$"); - simple2(vb3, parsed); - return vb3.remove("(had|have)"); - }, - "want-infinitive": (vb3) => { - vb3.replace("(want|wants|wanted)", "will want"); - return vb3; - } -}; -var toFuture2 = function(vb3, parsed, form) { - if (vb3.has("will") || vb3.has("going to")) { - return vb3; - } - if (forms3.hasOwnProperty(form)) { - vb3 = forms3[form](vb3, parsed); - vb3.fullSentence().compute(["tagger", "chunks"]); - return vb3; - } - return vb3; -}; -var toFuture_default2 = toFuture2; - -// node_modules/compromise/src/3-three/verbs/api/conjugate/toGerund.js -var keep7 = { tags: true }; -var toGerund3 = function(vb3, parsed) { - const { toInfinitive: toInfinitive3, conjugate: conjugate2 } = vb3.methods.two.transform.verb; - const { root, auxiliary } = parsed; - if (vb3.has("#Gerund")) { - return vb3; - } - let str = root.text("normal"); - str = toInfinitive3(str, vb3.model, getTense2(root)); - let gerund = conjugate2(str, vb3.model).Gerund; - if (gerund) { - gerund = `${isAreAm(vb3, parsed)} ${gerund}`; - vb3.replace(root, gerund, keep7); - } - if (auxiliary.found) { - vb3.remove(auxiliary); - } - vb3.replace("not is", "is not"); - vb3.replace("not are", "are not"); - vb3.fullSentence().compute(["tagger", "chunks"]); - return vb3; -}; -var toGerund_default = toGerund3; - -// node_modules/compromise/src/3-three/verbs/api/conjugate/toNegative.js -var keep8 = { tags: true }; -var doesNot = function(vb3, parsed) { - let does = doDoes(vb3, parsed); - vb3.prepend(does + " not"); - return vb3; -}; -var isWas = function(vb3) { - let m3 = vb3.match("be"); - if (m3.found) { - m3.prepend("not"); - return vb3; - } - m3 = vb3.match("(is|was|am|are|will|were)"); - if (m3.found) { - m3.append("not"); - return vb3; - } - return vb3; -}; -var hasCopula = (vb3) => vb3.has("(is|was|am|are|will|were|be)"); -var forms4 = { - "simple-present": (vb3, parsed) => { - if (hasCopula(vb3) === true) { - return isWas(vb3, parsed); - } - vb3 = toInf(vb3, parsed); - vb3 = doesNot(vb3, parsed); - return vb3; - }, - "simple-past": (vb3, parsed) => { - if (hasCopula(vb3) === true) { - return isWas(vb3, parsed); - } - vb3 = toInf(vb3, parsed); - vb3.prepend("did not"); - return vb3; - }, - "imperative": (vb3) => { - vb3.prepend("do not"); - return vb3; - }, - "infinitive": (vb3, parsed) => { - if (hasCopula(vb3) === true) { - return isWas(vb3, parsed); - } - return doesNot(vb3, parsed); - }, - "passive-past": (vb3) => { - if (vb3.has("got")) { - vb3.replace("got", "get", keep8); - vb3.prepend("did not"); - return vb3; - } - let m3 = vb3.match("(was|were|had|have)"); - if (m3.found) { - m3.append("not"); - } - return vb3; - }, - "auxiliary-past": (vb3) => { - if (vb3.has("used")) { - vb3.prepend("did not"); - return vb3; - } - let m3 = vb3.match("(did|does|do)"); - if (m3.found) { - m3.append("not"); - } - return vb3; - }, - "want-infinitive": (vb3, parsed) => { - vb3 = doesNot(vb3, parsed); - vb3 = vb3.replace("wants", "want", keep8); - return vb3; - } -}; -var toNegative2 = function(vb3, parsed, form) { - if (vb3.has("#Negative")) { - return vb3; - } - if (forms4.hasOwnProperty(form)) { - vb3 = forms4[form](vb3, parsed); - return vb3; - } - let m3 = vb3.matchOne("be"); - if (m3.found) { - m3.prepend("not"); - return vb3; - } - if (hasCopula(vb3) === true) { - return isWas(vb3, parsed); - } - m3 = vb3.matchOne("(will|had|have|has|did|does|do|#Modal)"); - if (m3.found) { - m3.append("not"); - return vb3; - } - return vb3; -}; -var toNegative_default = toNegative2; - -// node_modules/compromise/src/3-three/verbs/api/api.js -var api18 = function(View2) { - class Verbs extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Verbs"; - } - parse(n3) { - return this.getNth(n3).map(parse_default8); - } - json(opts2, n3) { - let m3 = this.getNth(n3); - let arr = m3.map((vb3) => { - let json = vb3.toView().json(opts2)[0] || {}; - json.verb = toJSON_default2(vb3); - return json; - }, []); - return arr; - } - subjects(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - return getSubject_default(vb3, parsed).subject; - }); - } - adverbs(n3) { - return this.getNth(n3).map((vb3) => vb3.match("#Adverb")); - } - isSingular(n3) { - return this.getNth(n3).filter((vb3) => { - return getSubject_default(vb3).plural !== true; - }); - } - isPlural(n3) { - return this.getNth(n3).filter((vb3) => { - return getSubject_default(vb3).plural === true; - }); - } - isImperative(n3) { - return this.getNth(n3).filter((vb3) => vb3.has("#Imperative")); - } - toInfinitive(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - return toInfinitive_default3(vb3, parsed, info.form); - }); - } - toPresentTense(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - return toPresent_default2(vb3, parsed, info.form); - }); - } - toPastTense(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - return toPast_default2(vb3, parsed, info.form); - }); - } - toFutureTense(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - return toFuture_default2(vb3, parsed, info.form); - }); - } - toGerund(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - return toGerund_default(vb3, parsed, info.form); - }); - } - conjugate(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - if (info.form === "imperative") { - info.form = "simple-present"; - } - return { - Infinitive: toInfinitive_default3(vb3.clone(), parsed, info.form).text("normal"), - PastTense: toPast_default2(vb3.clone(), parsed, info.form).text("normal"), - PresentTense: toPresent_default2(vb3.clone(), parsed, info.form).text("normal"), - FutureTense: toFuture_default2(vb3.clone(), parsed, info.form).text("normal") - }; - }, []); - } - isNegative() { - return this.if("#Negative"); - } - isPositive() { - return this.ifNo("#Negative"); - } - toPositive() { - let m3 = this.match("do not #Verb"); - if (m3.found) { - m3.remove("do not"); - } - return this.remove("#Negative"); - } - toNegative(n3) { - return this.getNth(n3).map((vb3) => { - let parsed = parse_default8(vb3); - let info = grammar_default(vb3, parsed); - return toNegative_default(vb3, parsed, info.form); - }); - } - update(pointer) { - let m3 = new Verbs(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - Verbs.prototype.toPast = Verbs.prototype.toPastTense; - Verbs.prototype.toPresent = Verbs.prototype.toPresentTense; - Verbs.prototype.toFuture = Verbs.prototype.toFutureTense; - View2.prototype.verbs = function(n3) { - let vb3 = find_default6(this); - vb3 = vb3.getNth(n3); - return new Verbs(this.document, vb3.pointer); - }; -}; -var api_default21 = api18; - -// node_modules/compromise/src/3-three/verbs/plugin.js -var plugin_default26 = { - api: api_default21 -}; - -// node_modules/compromise/src/3-three/coreference/compute/lib.js -var findChained = function(want, s3) { - let m3 = s3.match(want); - if (m3.found) { - let ref = m3.pronouns().refersTo(); - if (ref.found) { - return ref; - } - } - return s3.none(); -}; -var prevSentence = function(m3) { - if (!m3.found) { - return m3; - } - let [n3] = m3.fullPointer[0]; - if (n3 && n3 > 0) { - return m3.update([[n3 - 1]]); - } - return m3.none(); -}; - -// node_modules/compromise/src/3-three/coreference/compute/findPerson.js -var byGender = function(ppl, gender) { - if (gender === "m") { - return ppl.filter((m3) => !m3.presumedFemale().found); - } else if (gender === "f") { - return ppl.filter((m3) => !m3.presumedMale().found); - } - return ppl; -}; -var getPerson = function(s3, gender) { - let people = s3.people(); - people = byGender(people, gender); - if (people.found) { - return people.last(); - } - people = s3.nouns("#Actor+"); - if (people.found) { - return people.last(); - } - if (gender === "f") { - return findChained("(she|her|hers)", s3); - } - if (gender === "m") { - return findChained("(he|him|his)", s3); - } - return s3.none(); -}; -var findPerson_default = getPerson; - -// node_modules/compromise/src/3-three/coreference/compute/findThey.js -var getThey = function(s3) { - let things = s3.nouns().isPlural(); - if (things.found) { - return things.last(); - } - let chain = findChained("(they|their|theirs)", s3); - if (chain.found) { - return chain; - } - return s3.none(); -}; -var findThey_default = getThey; - -// node_modules/compromise/src/3-three/coreference/compute/index.js -var addReference = function(pron, m3) { - if (m3 && m3.found) { - let term = pron.docs[0][0]; - term.reference = m3.ptrs[0]; - } -}; -var stepBack = function(m3, cb) { - let s3 = m3.before(); - let res = cb(s3); - if (res.found) { - return res; - } - s3 = prevSentence(m3); - res = cb(s3); - if (res.found) { - return res; - } - s3 = prevSentence(s3); - res = cb(s3); - if (res.found) { - return res; - } - return m3.none(); -}; -var coreference = function(view) { - let pronouns = view.match("(he|him|his|she|her|hers|they|their|theirs|it|its)"); - pronouns.forEach((pron) => { - let res = null; - if (pron.has("(he|him|his)")) { - res = stepBack(pron, (m3) => findPerson_default(m3, "m")); - } else if (pron.has("(she|her|hers)")) { - res = stepBack(pron, (m3) => findPerson_default(m3, "f")); - } else if (pron.has("(they|their|theirs)")) { - res = stepBack(pron, findThey_default); - } - if (res && res.found) { - addReference(pron, res); - } - }); -}; -var compute_default12 = coreference; - -// node_modules/compromise/src/3-three/coreference/api/pronouns.js -var api19 = function(View2) { - class Pronouns extends View2 { - constructor(document2, pointer, groups) { - super(document2, pointer, groups); - this.viewType = "Pronouns"; - } - refersTo() { - return this.map((m3) => { - if (!m3.found) { - return m3.none(); - } - let term = m3.docs[0][0]; - if (term.reference) { - return m3.update([term.reference]); - } - return m3.none(); - }); - } - update(pointer) { - let m3 = new Pronouns(this.document, pointer); - m3._cache = this._cache; - return m3; - } - } - View2.prototype.pronouns = function(n3) { - let m3 = this.match("#Pronoun"); - m3 = m3.getNth(n3); - return new Pronouns(m3.document, m3.pointer); - }; -}; -var pronouns_default = api19; - -// node_modules/compromise/src/3-three/coreference/plugin.js -var plugin_default27 = { - compute: { coreference: compute_default12 }, - api: pronouns_default -}; - -// node_modules/compromise/src/three.js -two_default.plugin(plugin_default18); -two_default.plugin(plugin_default27); -two_default.plugin(plugin_default19); -two_default.plugin(plugin_default20); -two_default.plugin(plugin_default21); -two_default.plugin(plugin_default22); -two_default.plugin(plugin_default23); -two_default.plugin(plugin_default24); -two_default.plugin(plugin_default25); -two_default.plugin(plugin_default26); -var three_default = two_default; - -// syntaxHighlight.ts -function getAllDecosByLine(view) { - const widgets = {}; - for (const visibleRange of view.visibleRanges) { - const startLine = view.state.doc.lineAt(visibleRange.from).number; - const endLine = view.state.doc.lineAt(visibleRange.to).number; - for (let i3 = startLine; i3 <= endLine; i3++) { - widgets[i3] = getDecosOnLine(view, i3); - } - } - return widgets; -} -function getDecosOnLine(view, lineNumber) { - const widgets = []; - const line = view.state.doc.line(lineNumber); - const docText = view.state.sliceDoc(line.from, line.to); - const doc = three_default(docText); - const wordsToHighlight = {}; - const adjectives = doc.adjectives(); - const nouns = doc.match("#Noun").not("#Pronoun").not("#Possessive"); - const adverbs = doc.adverbs(); - const verbs = doc.match("#Verb"); - const conjunctions = doc.conjunctions(); - wordsToHighlight["adjective"] = adjectives; - wordsToHighlight["noun"] = nouns; - wordsToHighlight["adverb"] = adverbs; - wordsToHighlight["verb"] = verbs; - wordsToHighlight["conjunction"] = conjunctions; - const plugin5 = window.app.plugins.plugins["nl-syntax-highlighting"]; - for (const partOfSpeech of Object.keys(wordsToHighlight)) { - const words = wordsToHighlight[partOfSpeech]; - for (const word of words.out("offset")) { - const offset2 = word.offset; - const start2 = offset2.start; - const end2 = start2 + word.terms[0].offset.length; - if (start2 === end2) - continue; - const truePartOfSpeech = word.text in plugin5.wordsToOverrideDict ? plugin5.wordsToOverrideDict[word.text] : partOfSpeech; - widgets.push({ partOfSpeech: truePartOfSpeech, start: start2, end: end2 }); - } - } - return widgets; -} -function decosByLineToDecorationSet(view, decorationsByLine) { - const allWidgets = []; - for (const lineNumberStr of Object.keys(decorationsByLine)) { - const lineNumber = parseInt(lineNumberStr); - const widgets = decorationsByLine[lineNumber]; - const lineStart = view.state.doc.line(lineNumber).from; - const offsetWidgets = widgets.map((decoSpec) => { - return import_view.Decoration.mark({ - inclusive: true, - attributes: {}, - class: decoSpec.partOfSpeech - }).range(decoSpec.start + lineStart, decoSpec.end + lineStart); - }); - allWidgets.push(...offsetWidgets); - } - return import_view.Decoration.set(allWidgets, true); -} -var NLSyntaxHighlightViewPlugin = import_view.ViewPlugin.fromClass(class { - constructor(view) { - this.decorationsByLine = getAllDecosByLine(view); - this.decorations = decosByLineToDecorationSet(view, this.decorationsByLine); - } - update(update) { - let shouldRegenerateAllDecorations = false; - if (update.docChanged) { - if (update.startState.doc.lines === update.state.doc.lines) { - let changeCount = 0; - let lineChangedNumber = 0; - let singleCharacterInserted = true; - update.changes.iterChangedRanges((fromA, toA, fromB, toB) => { - changeCount += 1; - if (changeCount > 1) - singleCharacterInserted = false; - if (!(fromA === toA && toB === fromB + 1)) - singleCharacterInserted = false; - lineChangedNumber = update.view.state.doc.lineAt(toB).number; - }); - if (singleCharacterInserted) { - this.decorationsByLine[lineChangedNumber] = getDecosOnLine(update.view, lineChangedNumber); - } else { - shouldRegenerateAllDecorations = true; - } - } else { - shouldRegenerateAllDecorations = true; - } - } else if (update.viewportChanged) { - shouldRegenerateAllDecorations = true; - } - if (shouldRegenerateAllDecorations) - this.decorationsByLine = getAllDecosByLine(update.view); - this.decorations = decosByLineToDecorationSet(update.view, this.decorationsByLine); - } -}, { decorations: (v2) => v2.decorations }); - -// settings.ts -var import_obsidian = require("obsidian"); -var DEFAULT_SETTINGS = { - adjectiveEnabled: true, - adjectiveColor: "#b97a0a", - nounEnabled: true, - nounColor: "#ce4924", - adverbEnabled: true, - adverbColor: "#c333a7", - verbEnabled: true, - verbColor: "#177eB8", - conjunctionEnabled: true, - conjunctionColor: "#01934e", - classToApplyHighlightingTo: "", - wordsToOverride: "" -}; -var NLSyntaxHighlightSettingTab = class extends import_obsidian.PluginSettingTab { - constructor(app, plugin5) { - super(app, plugin5); - this.plugin = plugin5; - } - display() { - const { containerEl } = this; - containerEl.empty(); - const adjectives = new import_obsidian.Setting(containerEl).setName("Adjectives"); - let adjectiveToggle; - adjectives.addToggle((toggle) => { - var _a, _b; - adjectiveToggle = toggle.toggleEl; - (_b = (_a = adjectiveToggle.parentElement) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.prepend(adjectiveToggle); - toggle.setValue(this.plugin.settings.adjectiveEnabled).onChange(async (value) => { - this.plugin.settings.adjectiveEnabled = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - }); - }); - adjectives.addColorPicker((component) => component.setValue(this.plugin.settings.adjectiveColor).onChange(async (value) => { - this.plugin.settings.adjectiveColor = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - })); - const nouns = new import_obsidian.Setting(containerEl).setName("Nouns"); - let nounToggle; - nouns.addToggle((toggle) => { - var _a, _b; - nounToggle = toggle.toggleEl; - (_b = (_a = nounToggle.parentElement) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.prepend(nounToggle); - toggle.setValue(this.plugin.settings.nounEnabled).onChange(async (value) => { - this.plugin.settings.nounEnabled = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - }); - }); - nouns.addColorPicker((component) => component.setValue(this.plugin.settings.nounColor).onChange(async (value) => { - this.plugin.settings.nounColor = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - })); - const adverbs = new import_obsidian.Setting(containerEl).setName("Adverbs"); - let adverbToggle; - adverbs.addToggle((toggle) => { - var _a, _b; - adverbToggle = toggle.toggleEl; - (_b = (_a = adverbToggle.parentElement) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.prepend(adverbToggle); - toggle.setValue(this.plugin.settings.adverbEnabled).onChange(async (value) => { - this.plugin.settings.adverbEnabled = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - }); - }); - adverbs.addColorPicker((component) => component.setValue(this.plugin.settings.adverbColor).onChange(async (value) => { - this.plugin.settings.adverbColor = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - })); - const verbs = new import_obsidian.Setting(containerEl).setName("Verbs"); - let verbToggle; - verbs.addToggle((toggle) => { - var _a, _b; - verbToggle = toggle.toggleEl; - (_b = (_a = verbToggle.parentElement) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.prepend(verbToggle); - toggle.setValue(this.plugin.settings.verbEnabled).onChange(async (value) => { - this.plugin.settings.verbEnabled = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - }); - }); - verbs.addColorPicker((component) => component.setValue(this.plugin.settings.verbColor).onChange(async (value) => { - this.plugin.settings.verbColor = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - })); - const conjunctions = new import_obsidian.Setting(containerEl).setName("Conjunctions"); - let conjunctionToggle; - conjunctions.addToggle((toggle) => { - var _a, _b; - conjunctionToggle = toggle.toggleEl; - (_b = (_a = conjunctionToggle.parentElement) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.prepend(conjunctionToggle); - toggle.setValue(this.plugin.settings.conjunctionEnabled).onChange(async (value) => { - this.plugin.settings.conjunctionEnabled = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - }); - }); - conjunctions.addColorPicker((component) => component.setValue(this.plugin.settings.conjunctionColor).onChange(async (value) => { - this.plugin.settings.conjunctionColor = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - })); - new import_obsidian.Setting(containerEl).setName("Words to override").setDesc("Occasionally, words may be misclassfied. Type words here to override their classification. Use the format word: part-of-speech, with each word separated by a new line. e.g. snowy: adjective").addTextArea((text) => text.setValue(this.plugin.settings.wordsToOverride).setPlaceholder(`snowy: adjective -cloud: noun`).onChange(async (value) => { - this.plugin.settings.wordsToOverride = value; - this.plugin.loadWordsToOverrideDict(); - this.plugin.reloadEditorExtensions(); - (0, import_obsidian.debounce)(() => { - this.plugin.reloadEditorExtensions(); - }, 1e3); - await this.plugin.saveSettings(); - })); - new import_obsidian.Setting(containerEl).setName("CSS class to apply syntax highlighting to").setDesc('If specified, the syntax highlighting will only be applied to notes with the "cssclass" property in their YAML equal to the specified value.').addText((text) => text.setValue(this.plugin.settings.classToApplyHighlightingTo).onChange(async (value) => { - this.plugin.settings.classToApplyHighlightingTo = value; - await this.plugin.saveSettings(); - this.plugin.reloadStyle(); - })); - } -}; - -// main.ts -var NLSyntaxHighlightPlugin = class extends import_obsidian2.Plugin { - async onload() { - await this.loadSettings(); - this.addSettingTab(new NLSyntaxHighlightSettingTab(this.app, this)); - this.loadWordsToOverrideDict(); - this.extensions = [NLSyntaxHighlightViewPlugin.extension]; - this.registerEditorExtension(this.extensions); - this.styleEl = document.head.createEl("style"); - this.reloadStyle(); - } - onunload() { - this.styleEl.remove(); - } - async loadSettings() { - this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); - } - async saveSettings() { - await this.saveData(this.settings); - } - convertSettingsToStyle(settings) { - let style = ""; - const partsOfSpeech = ["adjective", "noun", "adverb", "verb", "conjunction"]; - const enabled = [settings.adjectiveEnabled, settings.nounEnabled, settings.adverbEnabled, settings.verbEnabled, settings.conjunctionEnabled]; - const colors2 = [settings.adjectiveColor, settings.nounColor, settings.adverbColor, settings.verbColor, settings.conjunctionColor]; - for (let i3 = 0; i3 < partsOfSpeech.length; i3++) { - if (enabled[i3]) { - if (settings.classToApplyHighlightingTo.length > 0) { - style = style.concat(`.${settings.classToApplyHighlightingTo} .${partsOfSpeech[i3]} { color: ${colors2[i3]} } -`); - } else { - style = style.concat(`.${partsOfSpeech[i3]} { color: ${colors2[i3]} } -`); - } - } - } - return style; - } - reloadStyle() { - this.styleEl.textContent = this.convertSettingsToStyle(this.settings); - } - loadWordsToOverrideDict() { - const dict = {}; - const lines = this.settings.wordsToOverride.split("\n"); - lines.forEach((val) => { - const line = val.replaceAll(" ", "").split(":"); - if (line[1]) - dict[line[0]] = line[1]; - }); - this.wordsToOverrideDict = dict; - } - reloadEditorExtensions() { - this.extensions.pop(); - this.app.workspace.updateOptions(); - this.extensions.push(NLSyntaxHighlightViewPlugin.extension); - this.app.workspace.updateOptions(); - } -}; diff --git a/.obsidian/plugins/nl-syntax-highlighting/manifest.json b/.obsidian/plugins/nl-syntax-highlighting/manifest.json deleted file mode 100644 index b75ee960f..000000000 --- a/.obsidian/plugins/nl-syntax-highlighting/manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "nl-syntax-highlighting", - "name": "Natural Language Syntax Highlighting", - "version": "0.3.0", - "minAppVersion": "0.15.0", - "description": "Highlight adjectives, nouns, adverbs, verbs, and conjunctions in the editor", - "author": "artisticat", - "authorUrl": "https://github.com/artisticat1", - "fundingUrl": "https://ko-fi.com/artisticat", - "isDesktopOnly": false -} diff --git a/.obsidian/plugins/nl-syntax-highlighting/styles.css b/.obsidian/plugins/nl-syntax-highlighting/styles.css deleted file mode 100644 index bb7f70bbf..000000000 --- a/.obsidian/plugins/nl-syntax-highlighting/styles.css +++ /dev/null @@ -1,19 +0,0 @@ -/* .adjective { - color: #b97a0a; -} - -.noun { - color: #ce4924; -} - -.adverb { - color: #c333a7; -} - -.verb { - color: #177eB8; -} - -.conjunction { - color: #01934e; -} */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-enhancing-export/main.js b/.obsidian/plugins/obsidian-enhancing-export/main.js new file mode 100644 index 000000000..c48d73074 --- /dev/null +++ b/.obsidian/plugins/obsidian-enhancing-export/main.js @@ -0,0 +1,30 @@ +"use strict";var dl=e=>{throw TypeError(e)};var gl=(e,l,t)=>l.has(e)||dl("Cannot "+t);var bl=(e,l,t)=>(gl(e,l,"read from private field"),t?t.call(e):l.get(e)),Zl=(e,l,t)=>l.has(e)?dl("Cannot add the same private member more than once"):l instanceof WeakSet?l.add(e):l.set(e,t),ml=(e,l,t,n)=>(gl(e,l,"write to private field"),n?n.call(e,t):l.set(e,t),t);/*! +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository https://github.com/mokeyish/obsidian-enhancing-export . +*/Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const Ie=require("obsidian"),Sn=require("child_process"),pt=require("process"),Pl=require("electron"),Dl=require("fs"),ae=require("path"),wn=require("util");function Dt(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(l,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return l.default=e,Object.freeze(l)}const En=Dt(Ie),Be=Dt(Pl),yt=Dt(Dl),dt={Markdown:{name:"Markdown",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t commonmark_x-attributes',extension:".md"},"Markdown (Hugo)":{name:"Markdown (Hugo)",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown+hugo.lua" -s -o "${outputPath}" -t commonmark_x-attributes',extension:".md"},Html:{name:"Html",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/math_block.lua" --embed-resources --standalone --metadata title="${currentFileName}" -s -o "${outputPath}" -t html',customArguments:'--mathjax="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg-full.js"',extension:".html"},TextBundle:{name:"TextBundle",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -V media_dir="${outputDir}/${outputFileName}.textbundle/assets" -s -o "${outputDir}/${outputFileName}.textbundle/text.md" -t commonmark_x-attributes',extension:".md"},Typst:{name:"Typst",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/markdown.lua" -s -o "${outputPath}" -t typst',extension:".typ"},PDF:{name:"PDF",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/pdf.lua" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } -o "${outputPath}" -t pdf',customArguments:"--pdf-engine=pdflatex",optionsMeta:{textemplate:"preset:textemplate"},extension:".pdf"},"Word (.docx)":{name:"Word (.docx)",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t docx',extension:".docx"},OpenOffice:{name:"OpenOffice",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t odt',extension:".odt"},RTF:{name:"RTF",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rtf',extension:".rtf"},Epub:{name:"Epub",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -o "${outputPath}" -t epub',extension:".epub"},Latex:{name:"Latex",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" ${ options.textemplate ? `--resource-path="${pluginDir}/textemplate" --template="${options.textemplate}"` : ` ` } --extract-media="${outputDir}" -s -o "${outputPath}" -t latex',optionsMeta:{textemplate:"preset:textemplate"},extension:".tex"},"Media Wiki":{name:"Media Wiki",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t mediawiki',extension:".mediawiki"},reStructuredText:{name:"reStructuredText",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t rst',extension:".rst"},Textile:{name:"Textile",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t textile',extension:".textile"},OPML:{name:"OPML",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" -s -o "${outputPath}" -t opml',extension:".opml"},"Bibliography (.bib)":{name:"Bibliography",type:"pandoc",arguments:'-f ${fromFormat} --resource-path="${currentDir}" --resource-path="${attachmentFolderPath}" --lua-filter="${luaDir}/citefilter.lua" -o "${outputPath}" --to=bibtex "${currentPath}"',extension:".bib"},Custom:{name:"Custom",type:"custom",command:"your command",targetFileExtensions:".ext"}};function Ae(e,l,t){return typeof l=="string"&&l.trim()===""&&(l=void 0),t instanceof Array?t.reduce((n,c)=>Ae(n,l,c),e):(t??(t=pt.platform),{...e??{},[t]:l})}function de(e,l){e??(e={});const t=e[l??pt.platform],n=e["*"];return n&&typeof n=="object"?Object.assign({},n,t):t??n}function $(e,...l){return function(...t){const n=t[t.length-1]||{},c=[e[0]];return l.forEach(function(i,o){const s=Number.isInteger(i)?t[i]:n[i];c.push(s,e[o+1])}),c.join("")}}function zt(e,l){return l=l??{},new Promise((t,n)=>{Sn.exec(e,l,(c,i,o)=>{if(c){n(c),console.error(i,c);return}if(o&&o!==""){n(o),console.error(i,c);return}(i==null?void 0:i.trim().length)===0&&localStorage.getItem("debug-plugin")==="1"&&console.log(i),t(i)})})}function Kn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}function Ut(e,l={}){for(;;)try{const t=Object.keys(l).filter(Qn),n=t.map(c=>l[c]);return new Function(...t,`{ return \`${e.replaceAll("\\","\\\\")}\` }`).bind(l)(...n)}catch(t){if(t instanceof ReferenceError&&t.message.endsWith("is not defined")){const n=t.message.substring(0,t.message.indexOf(" ")),c=Object.keys(l).filter(i=>i.toLowerCase()===n.toLowerCase()).map(i=>l[i])[0]??`\${${n}}`;l[n]=c}else throw t}}const Qn=e=>{if(typeof e!="string"||e.trim()!==e)return!1;try{new Function(e,"var "+e)}catch{return!1}return!0},zn={textemplate:{title:"Latex Template",type:"dropdown",options:[{name:"None",value:null},{name:"Dissertation",value:"dissertation.tex"},{name:"Academic Paper",value:"neurips.tex"}]}},De=(()=>{let e={};return e=Ae(e,{HOME:"${HOME}",PATH:"${PATH}",TEXINPUTS:"${pluginDir}/textemplate/:"},"*"),e=Ae(e,{TEXINPUTS:"${pluginDir}/textemplate/;",PATH:"${HOME}\\AppData\\Local\\Pandoc;${PATH}"},"win32"),e=Ae(e,{PATH:"/opt/homebrew/bin:/usr/local/bin:/Library/TeX/texbin:${PATH}"},"darwin"),e})(),Le={items:Object.values(dt).filter(e=>e.type!=="custom"),pandocPath:void 0,defaultExportDirectoryMode:"Auto",openExportedFile:!0,env:De,showExportProgressBar:!0};function _l(e){var l;return e.type==="pandoc"?e.extension:e.type==="custom"?(l=e.targetFileExtensions)==null?void 0:l.split(",")[0]:""}function ql(e,l){return e=Object.assign({},de(De),e),l=Object.assign({HOME:process.env.HOME??process.env.USERPROFILE},process.env,l??{}),Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Ut(n,l)]))}function Un(e){return e?Object.fromEntries(Object.entries(e).map(([l,t])=>[l,typeof t=="string"?zn[t.startsWith("preset:")?t.substring(7):""]:t])):{}}const jn=(e,l)=>e===l,pe=Symbol("solid-proxy"),jt=Symbol("solid-track"),mt={equals:jn};let en=on;const Fe=1,ut=2,tn={owned:null,cleanups:null,context:null,owner:null};var T=null;let Bt=null,Ln=null,O=null,le=null,Je=null,Xt=0;function Se(e,l){const t=O,n=T,c=e.length===0,i=n,o=c?tn:{owned:null,cleanups:null,context:i?i.context:null,owner:i},s=c?e:()=>e(()=>P(()=>ft(o)));T=o,O=null;try{return Ue(s,!0)}finally{O=t,T=n}}function oe(e,l){l=l?Object.assign({},mt,l):mt;const t={value:e,observers:null,observerSlots:null,comparator:l.equals||void 0},n=c=>(typeof c=="function"&&(c=c(t.value)),sn(t,c));return[cn.bind(t),n]}function te(e,l,t){const n=_t(e,l,!1,Fe);tt(n)}function Ye(e,l,t){en=Pn;const n=_t(e,l,!1,Fe);n.user=!0,Je?Je.push(n):tt(n)}function ee(e,l,t){t=t?Object.assign({},mt,t):mt;const n=_t(e,l,!0,0);return n.observers=null,n.observerSlots=null,n.comparator=t.equals||void 0,tt(n),cn.bind(n)}function gt(e){return Ue(e,!1)}function P(e){if(O===null)return e();const l=O;O=null;try{return e()}finally{O=l}}function ln(e){Ye(()=>P(e))}function ze(e){return T===null||(T.cleanups===null?T.cleanups=[e]:T.cleanups.push(e)),e}function Lt(){return O}function $n(e,l){const t=Symbol("context");return{id:t,Provider:_n(t),defaultValue:e}}function Tn(e){return T&&T.context&&T.context[e.id]!==void 0?T.context[e.id]:e.defaultValue}function nn(e){const l=ee(e),t=ee(()=>$t(l()));return t.toArray=()=>{const n=t();return Array.isArray(n)?n:n!=null?[n]:[]},t}function cn(){if(this.sources&&this.state)if(this.state===Fe)tt(this);else{const e=le;le=null,Ue(()=>It(this),!1),le=e}if(O){const e=this.observers?this.observers.length:0;O.sources?(O.sources.push(this),O.sourceSlots.push(e)):(O.sources=[this],O.sourceSlots=[e]),this.observers?(this.observers.push(O),this.observerSlots.push(O.sources.length-1)):(this.observers=[O],this.observerSlots=[O.sources.length-1])}return this.value}function sn(e,l,t){let n=e.value;return(!e.comparator||!e.comparator(n,l))&&(e.value=l,e.observers&&e.observers.length&&Ue(()=>{for(let c=0;c1e6)throw le=[],new Error},!1)),l}function tt(e){if(!e.fn)return;ft(e);const l=Xt;Mn(e,e.value,l)}function Mn(e,l,t){let n;const c=T,i=O;O=T=e;try{n=e.fn(l)}catch(o){return e.pure&&(e.state=Fe,e.owned&&e.owned.forEach(ft),e.owned=null),e.updatedAt=t+1,rn(o)}finally{O=i,T=c}(!e.updatedAt||e.updatedAt<=t)&&(e.updatedAt!=null&&"observers"in e?sn(e,n):e.value=n,e.updatedAt=t)}function _t(e,l,t,n=Fe,c){const i={fn:e,state:n,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:l,owner:T,context:T?T.context:null,pure:t};return T===null||T!==tn&&(T.owned?T.owned.push(i):T.owned=[i]),i}function Gt(e){if(e.state===0)return;if(e.state===ut)return It(e);if(e.suspense&&P(e.suspense.inFallback))return e.suspense.effects.push(e);const l=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;t--)if(e=l[t],e.state===Fe)tt(e);else if(e.state===ut){const n=le;le=null,Ue(()=>It(e,l[0]),!1),le=n}}function Ue(e,l){if(le)return e();let t=!1;l||(le=[]),Je?t=!0:Je=[],Xt++;try{const n=e();return On(t),n}catch(n){t||(Je=null),le=null,rn(n)}}function On(e){if(le&&(on(le),le=null),e)return;const l=Je;Je=null,l.length&&Ue(()=>en(l),!1)}function on(e){for(let l=0;l=0;l--)ft(e.owned[l]);e.owned=null}if(e.cleanups){for(l=e.cleanups.length-1;l>=0;l--)e.cleanups[l]();e.cleanups=null}e.state=0}function Dn(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function rn(e,l=T){throw Dn(e)}function $t(e){if(typeof e=="function"&&!e.length)return $t(e());if(Array.isArray(e)){const l=[];for(let t=0;tc=P(()=>(T.context={...T.context,[e]:n.value},nn(()=>n.children))),void 0),c}}const qn=Symbol("fallback");function ul(e){for(let l=0;l1?[]:null;return ze(()=>ul(i)),()=>{let a=e()||[],Z,g;return a[jt],P(()=>{let x=a.length,p,Y,L,m,K,w,E,M,Q;if(x===0)o!==0&&(ul(i),i=[],n=[],c=[],o=0,s&&(s=[])),t.fallback&&(n=[qn],c[0]=Se(ge=>(i[0]=ge,t.fallback())),o=1);else if(o===0){for(c=new Array(x),g=0;g=w&&M>=w&&n[E]===a[M];E--,M--)L[M]=c[E],m[M]=i[E],s&&(K[M]=s[E]);for(p=new Map,Y=new Array(M+1),g=M;g>=w;g--)Q=a[g],Z=p.get(Q),Y[g]=Z===void 0?-1:Z,p.set(Q,g);for(Z=w;Z<=E;Z++)Q=n[Z],g=p.get(Q),g!==void 0&&g!==-1?(L[g]=c[Z],m[g]=i[Z],s&&(K[g]=s[Z]),g=Y[g],p.set(Q,g)):i[Z]();for(g=w;ge(l||{}))}function ct(){return!0}const Gl={get(e,l,t){return l===pe?t:e.get(l)},has(e,l){return l===pe?!0:e.has(l)},set:ct,deleteProperty:ct,getOwnPropertyDescriptor(e,l){return{configurable:!0,enumerable:!0,get(){return e.get(l)},set:ct,deleteProperty:ct}},ownKeys(e){return e.keys()}};function tc(e,...l){if(pe in e){const c=new Set(l.length>1?l.flat():l[0]),i=l.map(o=>new Proxy({get(s){return o.includes(s)?e[s]:void 0},has(s){return o.includes(s)&&s in e},keys(){return o.filter(s=>s in e)}},Gl));return i.push(new Proxy({get(o){return c.has(o)?void 0:e[o]},has(o){return c.has(o)?!1:o in e},keys(){return Object.keys(e).filter(o=>!c.has(o))}},Gl)),i}const t={},n=l.map(()=>({}));for(const c of Object.getOwnPropertyNames(e)){const i=Object.getOwnPropertyDescriptor(e,c),o=!i.get&&!i.set&&i.enumerable&&i.writable&&i.configurable;let s=!1,a=0;for(const Z of l)Z.includes(c)&&(s=!0,o?n[a][c]=i.value:Object.defineProperty(n[a],c,i)),++a;s||(o?t[c]=i.value:Object.defineProperty(t,c,i))}return[...n,t]}const dn=e=>`Stale read from <${e}>.`;function gn(e){const l="fallback"in e&&{fallback:()=>e.fallback};return ee(ec(()=>e.each,e.children,l||void 0))}function bt(e){const l=e.keyed,t=ee(()=>e.when,void 0,{equals:(n,c)=>l?n===c:!n==!c});return ee(()=>{const n=t();if(n){const c=e.children;return typeof c=="function"&&c.length>0?P(()=>c(l?n:()=>{if(!P(t))throw dn("Show");return e.when})):c}return e.fallback},void 0,void 0)}function lc(e){let l=!1;const t=(i,o)=>(l?i[1]===o[1]:!i[1]==!o[1])&&i[2]===o[2],n=nn(()=>e.children),c=ee(()=>{let i=n();Array.isArray(i)||(i=[i]);for(let o=0;o{const[i,o,s]=c();if(i<0)return e.fallback;const a=s.children;return typeof a=="function"&&a.length>0?P(()=>a(l?o:()=>{if(P(c)[0]!==i)throw dn("Match");return s.when})):a},void 0,void 0)}function Il(e){return e}const nc=["allowfullscreen","async","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected"],cc=new Set(["className","value","readOnly","formNoValidate","isMap","noModule","playsInline",...nc]),ic=new Set(["innerHTML","textContent","innerText","children"]),sc=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),oc=Object.assign(Object.create(null),{class:"className",formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1}});function ac(e,l){const t=oc[e];return typeof t=="object"?t[l]?t.$:void 0:t}const rc=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),dc=new Set(["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tref","tspan","use","view","vkern"]),gc={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"};function bc(e,l,t){let n=t.length,c=l.length,i=n,o=0,s=0,a=l[c-1].nextSibling,Z=null;for(;og-s){const Y=l[o];for(;s{const o=document.createElement("template");return o.innerHTML=e,o.content.firstChild},i=()=>(n||(n=c())).cloneNode(!0);return i.cloneNode=i,i}function qt(e,l=window.document){const t=l[Cl]||(l[Cl]=new Set);for(let n=0,c=e.length;nc.call(e,t[1],i))}else e.addEventListener(l,t)}function mc(e,l,t={}){const n=Object.keys(l||{}),c=Object.keys(t);let i,o;for(i=0,o=c.length;ic.children=_e(e,l.children,c.children)),te(()=>typeof l.ref=="function"?Rt(l.ref,e):l.ref=e),te(()=>Gc(e,l,t,!0,c,!0)),c}function Rt(e,l,t){return P(()=>e(l,t))}function ne(e,l,t,n){if(t!==void 0&&!n&&(n=[]),typeof l!="function")return _e(e,l,n,t);te(c=>_e(e,l(),c,t),n)}function Gc(e,l,t,n,c={},i=!1){l||(l={});for(const o in c)if(!(o in l)){if(o==="children")continue;c[o]=hl(e,o,null,c[o],t,i)}for(const o in l){if(o==="children")continue;const s=l[o];c[o]=hl(e,o,s,c[o],t,i)}}function Ic(e){return e.toLowerCase().replace(/-([a-z])/g,(l,t)=>t.toUpperCase())}function Wl(e,l,t){const n=l.trim().split(/\s+/);for(let c=0,i=n.length;c-1&&gc[l.split(":")[0]];I?Zc(e,I,l,t):xe(e,sc[l]||l,t)}return t}function Cc(e){const l=`$$${e.type}`;let t=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==t&&Object.defineProperty(e,"target",{configurable:!0,value:t}),Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}});t;){const n=t[l];if(n&&!t.disabled){const c=t[`${l}Data`];if(c!==void 0?n.call(t,c,e):n.call(t,e),e.cancelBubble)return}t=t._$host||t.parentNode||t.host}}function _e(e,l,t,n,c){for(;typeof t=="function";)t=t();if(l===t)return t;const i=typeof l,o=n!==void 0;if(e=o&&t[0]&&t[0].parentNode||e,i==="string"||i==="number"){if(i==="number"&&(l=l.toString(),l===t))return t;if(o){let s=t[0];s&&s.nodeType===3?s.data!==l&&(s.data=l):s=document.createTextNode(l),t=ve(e,t,n,s)}else t!==""&&typeof t=="string"?t=e.firstChild.data=l:t=e.textContent=l}else if(l==null||i==="boolean")t=ve(e,t,n);else{if(i==="function")return te(()=>{let s=l();for(;typeof s=="function";)s=s();t=_e(e,s,t,n)}),()=>t;if(Array.isArray(l)){const s=[],a=t&&Array.isArray(t);if(Tt(s,l,t,c))return te(()=>t=_e(e,s,t,n,!0)),()=>t;if(s.length===0){if(t=ve(e,t,n),o)return t}else a?t.length===0?pl(e,s,n):bc(e,t,s):(t&&ve(e),pl(e,s));t=s}else if(l.nodeType){if(Array.isArray(t)){if(o)return t=ve(e,t,n,l);ve(e,t,null,l)}else t==null||t===""||!e.firstChild?e.appendChild(l):e.replaceChild(l,e.firstChild);t=l}}return t}function Tt(e,l,t,n){let c=!1;for(let i=0,o=l.length;i=0;o--){const s=l[o];if(c!==s){const a=s.parentNode===e;!i&&!o?a?e.replaceChild(c,s):e.insertBefore(c,t):a&&s.remove()}else i=!0}}else e.insertBefore(c,t);return[c]}const Wc="http://www.w3.org/2000/svg";function hc(e,l=!1){return l?document.createElementNS(Wc,e):document.createElement(e)}function pc(e){const[l,t]=tc(e,["component"]),n=ee(()=>l.component);return ee(()=>{const c=n();switch(typeof c){case"function":return P(()=>c(t));case"string":const i=dc.has(c),o=hc(c,i);return uc(o,t,i),o}})}/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */function Te(e){if(e!==e.toLowerCase()&&e!==e.toUpperCase()||(e=e.toLowerCase()),e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;{let t="",n=!1;const c=e.match(/^-+/);for(let i=c?c[0].length:0;i0?n+=`${l}${t.charAt(c)}`:n+=o}return n}function mn(e){return e==null?!1:typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^0[^.]/.test(e)?!1:/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */function Xc(e){if(Array.isArray(e))return e.map(o=>typeof o!="string"?o+"":o);e=e.trim();let l=0,t=null,n=null,c=null;const i=[];for(let o=0;o{typeof b=="number"&&(m.nargs[r]=b,m.keys.push(r))}),typeof n.coerce=="object"&&Object.entries(n.coerce).forEach(([r,b])=>{typeof b=="function"&&(m.coercions[r]=b,m.keys.push(r))}),typeof n.config<"u"&&(Array.isArray(n.config)||typeof n.config=="string"?[].concat(n.config).filter(Boolean).forEach(function(r){m.configs[r]=!0}):typeof n.config=="object"&&Object.entries(n.config).forEach(([r,b])=>{(typeof b=="boolean"||typeof b=="function")&&(m.configs[r]=b)})),q(n.key,o,n.default,m.arrays),Object.keys(a).forEach(function(r){(m.aliases[r]||[]).forEach(function(b){a[b]=a[r]})});let E=null;kn();let M=[];const Q=Object.assign(Object.create(null),{_:[]}),ge={};for(let r=0;r=3&&(V(A[1],m.arrays)?r=f(r,A[1],c,A[2]):V(A[1],m.nargs)!==!1?r=X(r,A[1],c,A[2]):R(A[1],A[2],!0));else if(b.match(w)&&s["boolean-negation"])A=b.match(w),A!==null&&Array.isArray(A)&&A.length>=2&&(d=A[1],R(d,V(d,m.arrays)?[!1]:!1));else if(b.match(/^--.+/)||!s["short-option-groups"]&&b.match(/^-[^-]+/))A=b.match(/^--?(.+)/),A!==null&&Array.isArray(A)&&A.length>=2&&(d=A[1],V(d,m.arrays)?r=f(r,d,c):V(d,m.nargs)!==!1?r=X(r,d,c):(B=c[r+1],B!==void 0&&(!B.match(/^-/)||B.match(K))&&!V(d,m.bools)&&!V(d,m.counts)||/^(true|false)$/.test(B)?(R(d,B),r++):R(d,Ne(d))));else if(b.match(/^-.\..+=/))A=b.match(/^-([^=]+)=([\s\S]*)$/),A!==null&&Array.isArray(A)&&A.length>=3&&R(A[1],A[2]);else if(b.match(/^-.\..+/)&&!b.match(K))B=c[r+1],A=b.match(/^-(.\..+)/),A!==null&&Array.isArray(A)&&A.length>=2&&(d=A[1],B!==void 0&&!B.match(/^-/)&&!V(d,m.bools)&&!V(d,m.counts)?(R(d,B),r++):R(d,Ne(d)));else if(b.match(/^-[^-]+/)&&!b.match(K)){y=b.slice(1,-1).split(""),u=!1;for(let ie=0;ier!=="--"&&r.includes("-")).forEach(r=>{delete Q[r]}),s["strip-aliased"]&&[].concat(...Object.keys(o).map(r=>o[r])).forEach(r=>{s["camel-case-expansion"]&&r.includes("-")&&delete Q[r.split(".").map(b=>Te(b)).join(".")],delete Q[r]});function be(r){const b=W("_",r);(typeof b=="string"||typeof b=="number")&&Q._.push(b)}function X(r,b,h,u){let d,y=V(b,m.nargs);if(y=typeof y!="number"||isNaN(y)?1:y,y===0)return fe(u)||(E=Error(L("Argument unexpected for: %s",b))),R(b,Ne(b)),r;let A=fe(u)?0:1;if(s["nargs-eats-options"])h.length-(r+1)+A0&&(R(b,u),B--),d=r+1;d0||A&&typeof A=="number"&&d.length>=A||(y=h[B],/^-/.test(y)&&!K.test(y)&&!He(y)));B++)r=B,d.push(D(b,y,i))}return typeof A=="number"&&(A&&d.length1&&s["dot-notation"]&&(m.aliases[d[0]]||[]).forEach(function(y){let A=y.split(".");const B=[].concat(d);B.shift(),A=A.concat(B),(m.aliases[r]||[]).includes(A.join("."))||U(Q,A,u)}),V(r,m.normalize)&&!V(r,m.arrays)&&[r].concat(m.aliases[r]||[]).forEach(function(A){Object.defineProperty(ge,A,{enumerable:!0,get(){return b},set(B){b=typeof B=="string"?Re.normalize(B):B}})})}function v(r,b){m.aliases[r]&&m.aliases[r].length||(m.aliases[r]=[b],p[b]=!0),m.aliases[b]&&m.aliases[b].length||v(b,r)}function D(r,b,h){h&&(b=Vc(b)),(V(r,m.bools)||V(r,m.counts))&&typeof b=="string"&&(b=b==="true");let u=Array.isArray(b)?b.map(function(d){return W(r,d)}):W(r,b);return V(r,m.counts)&&(fe(u)||typeof u=="boolean")&&(u=Ft()),V(r,m.normalize)&&V(r,m.arrays)&&(Array.isArray(b)?u=b.map(d=>Re.normalize(d)):u=Re.normalize(b)),u}function W(r,b){return!s["parse-positional-numbers"]&&r==="_"||!V(r,m.strings)&&!V(r,m.bools)&&!Array.isArray(b)&&(mn(b)&&s["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${b}`)))||!fe(b)&&V(r,m.numbers))&&(b=Number(b)),b}function C(r){const b=Object.create(null);z(b,m.aliases,a),Object.keys(m.configs).forEach(function(h){const u=r[h]||b[h];if(u)try{let d=null;const y=Re.resolve(Re.cwd(),u),A=m.configs[h];if(typeof A=="function"){try{d=A(y)}catch(B){d=B}if(d instanceof Error){E=d;return}}else d=Re.require(y);N(d)}catch(d){d.name==="PermissionDenied"?E=d:r[h]&&(E=Error(L("Invalid JSON config file: %s",u)))}})}function N(r,b){Object.keys(r).forEach(function(h){const u=r[h],d=b?b+"."+h:h;typeof u=="object"&&u!==null&&!Array.isArray(u)&&s["dot-notation"]?N(u,d):(!S(Q,d.split("."))||V(d,m.arrays)&&s["combine-arrays"])&&R(d,u)})}function F(){typeof Z<"u"&&Z.forEach(function(r){N(r)})}function H(r,b){if(typeof g>"u")return;const h=typeof g=="string"?g:"",u=Re.env();Object.keys(u).forEach(function(d){if(h===""||d.lastIndexOf(h,0)===0){const y=d.split("__").map(function(A,B){return B===0&&(A=A.substring(h.length)),Te(A)});(b&&m.configs[y.join(".")]||!b)&&!S(r,y)&&R(y.join("."),u[d])}})}function J(r){let b;const h=new Set;Object.keys(r).forEach(function(u){if(!h.has(u)&&(b=V(u,m.coercions),typeof b=="function"))try{const d=W(u,b(r[u]));[].concat(m.aliases[u]||[],u).forEach(y=>{h.add(y),r[y]=d})}catch(d){E=d}})}function k(r){return m.keys.forEach(b=>{~b.indexOf(".")||typeof r[b]>"u"&&(r[b]=void 0)}),r}function z(r,b,h,u=!1){Object.keys(h).forEach(function(d){S(r,d.split("."))||(U(r,d.split("."),h[d]),u&&(Y[d]=!0),(b[d]||[]).forEach(function(y){S(r,y.split("."))||U(r,y.split("."),h[d])}))})}function S(r,b){let h=r;s["dot-notation"]||(b=[b.join(".")]),b.slice(0,-1).forEach(function(d){h=h[d]||{}});const u=b[b.length-1];return typeof h!="object"?!1:u in h}function U(r,b,h){let u=r;s["dot-notation"]||(b=[b.join(".")]),b.slice(0,-1).forEach(function(_){_=Xl(_),typeof u=="object"&&u[_]===void 0&&(u[_]={}),typeof u[_]!="object"||Array.isArray(u[_])?(Array.isArray(u[_])?u[_].push({}):u[_]=[u[_],{}],u=u[_][u[_].length-1]):u=u[_]});const d=Xl(b[b.length-1]),y=V(b.join("."),m.arrays),A=Array.isArray(h);let B=s["duplicate-arguments-array"];!B&&V(d,m.nargs)&&(B=!0,(!fe(u[d])&&m.nargs[d]===1||Array.isArray(u[d])&&u[d].length===m.nargs[d])&&(u[d]=void 0)),h===Ft()?u[d]=Ft(u[d]):Array.isArray(u[d])?B&&y&&A?u[d]=s["flatten-duplicate-arrays"]?u[d].concat(h):(Array.isArray(u[d][0])?u[d]:[u[d]]).concat([h]):!B&&!!y==!!A?u[d]=h:u[d]=u[d].concat([h]):u[d]===void 0&&y?u[d]=A?h:[h]:B&&!(u[d]===void 0||V(d,m.counts)||V(d,m.bools))?u[d]=[u[d],h]:u[d]=h}function q(...r){r.forEach(function(b){Object.keys(b||{}).forEach(function(h){m.aliases[h]||(m.aliases[h]=[].concat(o[h]||[]),m.aliases[h].concat(h).forEach(function(u){if(/-/.test(u)&&s["camel-case-expansion"]){const d=Te(u);d!==h&&m.aliases[h].indexOf(d)===-1&&(m.aliases[h].push(d),p[d]=!0)}}),m.aliases[h].concat(h).forEach(function(u){if(u.length>1&&/[A-Z]/.test(u)&&s["camel-case-expansion"]){const d=Zn(u,"-");d!==h&&m.aliases[h].indexOf(d)===-1&&(m.aliases[h].push(d),p[d]=!0)}}),m.aliases[h].forEach(function(u){m.aliases[u]=[h].concat(m.aliases[h].filter(function(d){return u!==d}))}))})})}function V(r,b){const h=[].concat(m.aliases[r]||[],r),u=Object.keys(b),d=h.find(y=>u.includes(y));return d?b[d]:!1}function me(r){const b=Object.keys(m);return[].concat(b.map(u=>m[u])).some(function(u){return Array.isArray(u)?u.includes(r):u[r]})}function ce(r,...b){return[].concat(...b).some(function(u){const d=r.match(u);return d&&me(d[1])})}function Xe(r){if(r.match(K)||!r.match(/^-[^-]+/))return!1;let b=!0,h;const u=r.slice(1).split("");for(let d=0;dV(r,m.arrays)?(E=Error(L("Invalid configuration: %s, opts.count excludes opts.array.",r)),!0):V(r,m.nargs)?(E=Error(L("Invalid configuration: %s, opts.count excludes opts.narg.",r)),!0):!1)}return{aliases:Object.assign({},m.aliases),argv:Object.assign(ge,Q),configuration:s,defaulted:Object.assign({},Y),error:E,newAliases:Object.assign({},p)}}}function Rc(e){const l=[],t=Object.create(null);let n=!0;for(Object.keys(e).forEach(function(c){l.push([].concat(e[c],c))});n;){n=!1;for(let c=0;cAc,format:wn.format,normalize:ae.normalize,resolve:ae.resolve,require:e=>{if(typeof require<"u")return require(e);if(e.match(/\.json$/))return JSON.parse(Dl.readFileSync(e,"utf8"));throw Error("only .json config files are supported in ESM")}}),lt=function(l,t){return un.parse(l.slice(),t).argv};lt.detailed=function(e,l){return un.parse(e.slice(),l)};lt.camelCase=Te;lt.decamelize=Zn;lt.looksLikeNumber=mn;const Yc={exportToOo:"导出为......",exportWithPrevious:"使用上一次设置导出",exportSuccessNotice:$`导出文件 ${0} 成功!`,exportCommandOutputMessage:$`命令:${0}`,exportErrorOutputMessage:$`命令 ${0},错误:${1}`,pleaseOpenFile:"请打开一个文件先。",preparing:$`正在生成 "${0}" ......`,exportDialog:{fileName:"文件名",type:"类型",exportTo:"导出到",title:$`导出为 ${0}`,export:"导出",selectExportFolder:"请选择导出文件夹",overwriteConfirmation:"覆盖提示"},messageBox:{yes:"是",no:"否",ok:"确认",cancel:"取消"},overwriteConfirmationDialog:{replace:"替换",title:$`"${0}" 已经存在。您要替换它吗?`,message:$`"${0}" 文件夹中已有相同的文件或文件夹,若替换,则会覆盖其当前内容。`},settingTab:{title:"导出设置",general:"通用",name:"名称",customLocation:"自定义",pandocVersion:$`版本: ${0}`,pandocVersionWithWarning:$`Version: ${0}, 请升级版本到 ${1}`,pandocNotFound:"找不到 Pandoc,请填写 Pandoc 文件路径,或者将其添加到系统环境变量中。",pandocPath:"Pandoc 路径",defaultFolderForExportedFile:"默认的导出文件夹",openExportedFileLocation:"打开导出文件所在目录",sameFolderWithCurrentFile:"与原文件同一目录下",openExportedFile:"打开导出文件",pandocPathPlaceholder:"(自动检测)",editCommandTemplate:"编辑命令模板",chooseCommandTemplate:"选择模板",afterExport:"导出后",command:"命令",arguments:"参数",auto:"自动",reset:"重置",add:"添加",remove:"移除",rename:"重命名",targetFileExtensions:"目标文件扩展名",targetFileExtensionsTip:"(用空格分开)",showCommandOutput:"显示命令行输出",runCommand:"运行自定义命令",extraArguments:"自定义参数",save:"保存",new:"新建",template:"模板",advanced:"高级",environmentVariables:"环境变量",environmentVariablesDesc:"定义导出的环境变量.",ShowExportProgressBar:"显示导出进度条"}},Jc={exportToOo:"Export to...",exportSuccessNotice:$`Export file ${0} success!`,exportCommandOutputMessage:$`Command: ${0}`,exportErrorOutputMessage:$`Command: ${0},Error:${1}`,exportWithPrevious:"Export with Previous",pleaseOpenFile:"Please open a file first.",preparing:$`generating "${0}"...`,exportDialog:{exportTo:"Export to",fileName:"File Name",title:$`Export to ${0}`,export:"Export",selectExportFolder:"Please select an export folder.",overwriteConfirmation:"Overwrite confirmation",type:"Type"},messageBox:{yes:"Yes",no:"No",ok:"Ok",cancel:"Cancel"},overwriteConfirmationDialog:{replace:"Replace",title:$`"${0}" already exists. Do you want to replace it?`,message:$`A file or folder with the same name already exists in the folder "${0}". Replacing it will overwrite its current contents.`},settingTab:{general:"General",name:"Name",title:"Export Settings",pandocVersion:$`Version: ${0}`,pandocVersionWithWarning:$`Version: ${0}, please upgrade version to ${1}`,pandocNotFound:"Pandoc not found, please fill in the Pandoc file path, or add it to the system environment variables.",defaultFolderForExportedFile:"Default Folder for Exported File",openExportedFileLocation:"Open exported file location",ShowExportProgressBar:"Show export progress bar",openExportedFile:"Open exported file",pandocPath:"Pandoc path",pandocPathPlaceholder:"(Auto Detect)",editCommandTemplate:"Edit Command Template",chooseCommandTemplate:"Choose template",customLocation:"Custom location",template:"Template",command:"Command",reset:"Reset",auto:"Auto",add:"Add",remove:"Remove",rename:"Rename",sameFolderWithCurrentFile:"Same folder with current file",afterExport:"After Export",targetFileExtensions:"Target file extensions",targetFileExtensionsTip:"(Separated by whitespace)",showCommandOutput:"Show command output",runCommand:"Run command",extraArguments:"Extra arguments",save:"Save",new:"New",arguments:"Arguments",advanced:"Advanced",environmentVariables:"Environment Variables",environmentVariablesDesc:"Define the Environment Variables for exporting."}},xc={exportToOo:"Export to...",exportSuccessNotice:$`Export der Datei ${0} erfolgreich!`,exportCommandOutputMessage:$`Command: ${0}`,exportErrorOutputMessage:$`Command: ${0},Fehler:${1}`,exportWithPrevious:"Exportiere mit Vorherigem",pleaseOpenFile:"Bitte öffne zunächst eine Datei.",preparing:$`generating "${0}"...`,exportDialog:{exportTo:"Exportiere nach",fileName:"Dateiname",title:$`Export to ${0}`,export:"Export",selectExportFolder:"Zielordner auswählen",overwriteConfirmation:"Überschreibe den Zielordner",type:"Typ"},messageBox:{yes:"Ja",no:"Nein",ok:"Ok",cancel:"Abbrechen"},overwriteConfirmationDialog:{replace:"Ersetze",title:$`"${0}" existiert bereits. Soll er ersetzt werden?`,message:$`Eine Datei oder ein Ordner mit dem gleichen Namen existiert bereits im Ordner "${0}". Das Ersetzen wird die jetzigen Inhalte überschreiben.`},settingTab:{general:"Allgemein",name:"Name",title:"Export-Einstellungen",pandocVersion:$`Version: ${0}`,pandocVersionWithWarning:$`Version: ${0}, please upgrade version to ${1}`,pandocNotFound:"Pandoc.exe wurde nicht gefunden. Bitte geben Sie den Pfad zur Pandoc.exe ein oder fügen Sie ihn den Window Systemumgebungsvariablen hinzu.",defaultFolderForExportedFile:"Standardordner für exportierte Dateien",openExportedFileLocation:"Speicherort der exportierten Datei öffnen",openExportedFile:"Exportierte Datei öffnen",pandocPath:"Pfad zur Datei Pandoc.exe",pandocPathPlaceholder:"(Automatische Erkennung)",editCommandTemplate:"‘Befehlsvorlage bearbeiten",chooseCommandTemplate:"Vorlage auswählen",customLocation:"Benutzerdefinierter Speicherort",template:"Vorlage",command:"Befehl",reset:"Zurücksetzen",auto:"Auto",add:"Hinzufügen",remove:"Entfernen",rename:"Umbenennen",sameFolderWithCurrentFile:"Der gleiche Ordner mit der aktuellen Datei",afterExport:"Nach dem Export",targetFileExtensions:"Dateinamenserweiterung der Zieldatei",targetFileExtensionsTip:"(Mit Leerzeichen getrennt)",showCommandOutput:"Zeige die Ausgabe des Befehls",runCommand:"Starte den Befehl",extraArguments:"Zusätzliche Parameter",save:"Speichern",new:"Neu",arguments:"Parameter",advanced:"Advanced",environmentVariables:"Environment Variables",environmentVariablesDesc:"Define the Environment Variables for exporting.",ShowExportProgressBar:"Show export progressBar"}},Gn={"de-DE":xc,"en-US":Jc,"zh-CN":Yc,get current(){const e=Object.keys(this),l=Ie.moment.locale().toLowerCase();let t=e.find(c=>c.toLowerCase()===l.toLowerCase());if(t)return this[t];const n=l.split("-")[0];return t=e.find(c=>c.toLowerCase().startsWith(n)),t?this[t]:this["en-US"]}};class Vl extends Ie.Modal{constructor(l,t,n){super(l),this.options=typeof t=="string"?{message:t,buttons:"Ok",title:n}:t,this.lang=Gn.current}onOpen(){const{titleEl:l,contentEl:t,lang:n,options:{message:c,title:i,buttons:o,callback:s,buttonsLabel:a,buttonsClass:Z}}=this;switch(i&&l.setText(i),t.createDiv({text:c}),o){case"Yes":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.yes)??n.messageBox.yes,cls:["mod-cta",Z==null?void 0:Z.yes],parent:g}).onclick=()=>this.call(s==null?void 0:s.yes)});break;case"YesNo":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.yes)??n.messageBox.yes,cls:["mod-cta",Z==null?void 0:Z.yes],parent:g}).onclick=()=>this.call(s==null?void 0:s.yes),g.createEl("button",{text:(a==null?void 0:a.no)??n.messageBox.no,cls:["mod-cta",Z==null?void 0:Z.no],parent:g}).onclick=()=>this.call(s==null?void 0:s.no)});break;case"Ok":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.ok)??n.messageBox.ok,cls:["mod-cta",Z==null?void 0:Z.no],parent:g}).onclick=()=>this.call(s==null?void 0:s.ok)});break;case"OkCancel":t.createEl("div",{cls:["modal-button-container"],parent:t},g=>{g.createEl("button",{text:(a==null?void 0:a.ok)??n.messageBox.ok,cls:["mod-cta",Z==null?void 0:Z.ok],parent:g}).onclick=()=>this.call(s==null?void 0:s.ok),g.createEl("button",{text:(a==null?void 0:a.cancel)??n.messageBox.cancel,cls:["mod-cta",Z==null?void 0:Z.cancel],parent:g}).onclick=()=>this.call(s==null?void 0:s.cancel)});break}}call(l){l&&l(),this.close()}onClose(){const{contentEl:l}=this;l.empty()}}var yc=Ze('
');const Bc=e=>(()=>{var l=yc(),t=l.firstChild,n=e.ref;return typeof n=="function"?Rt(n,l):e.ref=l,ne(t,()=>e.message),l})(),Fc=e=>Se(l=>{let t=!1;const n=()=>{t||(t=!0,l())};let c;return ne(document.body,()=>G(Bc,{ref(i){var o=c;typeof o=="function"?o(i):c=i},message:e})),ze(()=>{c instanceof Node&&document.body.contains(c)&&document.body.removeChild(c)}),n}),Hc={show:Fc};function Nc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Mt={exports:{}};const vc="2.0.0",In=256,kc=Number.MAX_SAFE_INTEGER||9007199254740991,Sc=16,wc=In-6,Ec=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var Vt={MAX_LENGTH:In,MAX_SAFE_COMPONENT_LENGTH:Sc,MAX_SAFE_BUILD_LENGTH:wc,MAX_SAFE_INTEGER:kc,RELEASE_TYPES:Ec,SEMVER_SPEC_VERSION:vc,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2};const Kc=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};var At=Kc;(function(e,l){const{MAX_SAFE_COMPONENT_LENGTH:t,MAX_SAFE_BUILD_LENGTH:n,MAX_LENGTH:c}=Vt,i=At;l=e.exports={};const o=l.re=[],s=l.safeRe=[],a=l.src=[],Z=l.t={};let g=0;const I="[a-zA-Z0-9-]",x=[["\\s",1],["\\d",c],[I,n]],p=L=>{for(const[m,K]of x)L=L.split(`${m}*`).join(`${m}{0,${K}}`).split(`${m}+`).join(`${m}{1,${K}}`);return L},Y=(L,m,K)=>{const w=p(m),E=g++;i(L,E,m),Z[L]=E,a[E]=m,o[E]=new RegExp(m,K?"g":void 0),s[E]=new RegExp(w,K?"g":void 0)};Y("NUMERICIDENTIFIER","0|[1-9]\\d*"),Y("NUMERICIDENTIFIERLOOSE","\\d+"),Y("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${I}*`),Y("MAINVERSION",`(${a[Z.NUMERICIDENTIFIER]})\\.(${a[Z.NUMERICIDENTIFIER]})\\.(${a[Z.NUMERICIDENTIFIER]})`),Y("MAINVERSIONLOOSE",`(${a[Z.NUMERICIDENTIFIERLOOSE]})\\.(${a[Z.NUMERICIDENTIFIERLOOSE]})\\.(${a[Z.NUMERICIDENTIFIERLOOSE]})`),Y("PRERELEASEIDENTIFIER",`(?:${a[Z.NUMERICIDENTIFIER]}|${a[Z.NONNUMERICIDENTIFIER]})`),Y("PRERELEASEIDENTIFIERLOOSE",`(?:${a[Z.NUMERICIDENTIFIERLOOSE]}|${a[Z.NONNUMERICIDENTIFIER]})`),Y("PRERELEASE",`(?:-(${a[Z.PRERELEASEIDENTIFIER]}(?:\\.${a[Z.PRERELEASEIDENTIFIER]})*))`),Y("PRERELEASELOOSE",`(?:-?(${a[Z.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[Z.PRERELEASEIDENTIFIERLOOSE]})*))`),Y("BUILDIDENTIFIER",`${I}+`),Y("BUILD",`(?:\\+(${a[Z.BUILDIDENTIFIER]}(?:\\.${a[Z.BUILDIDENTIFIER]})*))`),Y("FULLPLAIN",`v?${a[Z.MAINVERSION]}${a[Z.PRERELEASE]}?${a[Z.BUILD]}?`),Y("FULL",`^${a[Z.FULLPLAIN]}$`),Y("LOOSEPLAIN",`[v=\\s]*${a[Z.MAINVERSIONLOOSE]}${a[Z.PRERELEASELOOSE]}?${a[Z.BUILD]}?`),Y("LOOSE",`^${a[Z.LOOSEPLAIN]}$`),Y("GTLT","((?:<|>)?=?)"),Y("XRANGEIDENTIFIERLOOSE",`${a[Z.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),Y("XRANGEIDENTIFIER",`${a[Z.NUMERICIDENTIFIER]}|x|X|\\*`),Y("XRANGEPLAIN",`[v=\\s]*(${a[Z.XRANGEIDENTIFIER]})(?:\\.(${a[Z.XRANGEIDENTIFIER]})(?:\\.(${a[Z.XRANGEIDENTIFIER]})(?:${a[Z.PRERELEASE]})?${a[Z.BUILD]}?)?)?`),Y("XRANGEPLAINLOOSE",`[v=\\s]*(${a[Z.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[Z.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[Z.XRANGEIDENTIFIERLOOSE]})(?:${a[Z.PRERELEASELOOSE]})?${a[Z.BUILD]}?)?)?`),Y("XRANGE",`^${a[Z.GTLT]}\\s*${a[Z.XRANGEPLAIN]}$`),Y("XRANGELOOSE",`^${a[Z.GTLT]}\\s*${a[Z.XRANGEPLAINLOOSE]}$`),Y("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t}})(?:\\.(\\d{1,${t}}))?(?:\\.(\\d{1,${t}}))?`),Y("COERCE",`${a[Z.COERCEPLAIN]}(?:$|[^\\d])`),Y("COERCEFULL",a[Z.COERCEPLAIN]+`(?:${a[Z.PRERELEASE]})?(?:${a[Z.BUILD]})?(?:$|[^\\d])`),Y("COERCERTL",a[Z.COERCE],!0),Y("COERCERTLFULL",a[Z.COERCEFULL],!0),Y("LONETILDE","(?:~>?)"),Y("TILDETRIM",`(\\s*)${a[Z.LONETILDE]}\\s+`,!0),l.tildeTrimReplace="$1~",Y("TILDE",`^${a[Z.LONETILDE]}${a[Z.XRANGEPLAIN]}$`),Y("TILDELOOSE",`^${a[Z.LONETILDE]}${a[Z.XRANGEPLAINLOOSE]}$`),Y("LONECARET","(?:\\^)"),Y("CARETTRIM",`(\\s*)${a[Z.LONECARET]}\\s+`,!0),l.caretTrimReplace="$1^",Y("CARET",`^${a[Z.LONECARET]}${a[Z.XRANGEPLAIN]}$`),Y("CARETLOOSE",`^${a[Z.LONECARET]}${a[Z.XRANGEPLAINLOOSE]}$`),Y("COMPARATORLOOSE",`^${a[Z.GTLT]}\\s*(${a[Z.LOOSEPLAIN]})$|^$`),Y("COMPARATOR",`^${a[Z.GTLT]}\\s*(${a[Z.FULLPLAIN]})$|^$`),Y("COMPARATORTRIM",`(\\s*)${a[Z.GTLT]}\\s*(${a[Z.LOOSEPLAIN]}|${a[Z.XRANGEPLAIN]})`,!0),l.comparatorTrimReplace="$1$2$3",Y("HYPHENRANGE",`^\\s*(${a[Z.XRANGEPLAIN]})\\s+-\\s+(${a[Z.XRANGEPLAIN]})\\s*$`),Y("HYPHENRANGELOOSE",`^\\s*(${a[Z.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[Z.XRANGEPLAINLOOSE]})\\s*$`),Y("STAR","(<|>)?=?\\s*\\*"),Y("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),Y("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(Mt,Mt.exports);var nt=Mt.exports;const Qc=Object.freeze({loose:!0}),zc=Object.freeze({}),Uc=e=>e?typeof e!="object"?Qc:e:zc;var ll=Uc;const Al=/^[0-9]+$/,Cn=(e,l)=>{const t=Al.test(e),n=Al.test(l);return t&&n&&(e=+e,l=+l),e===l?0:t&&!n?-1:n&&!t?1:eCn(l,e);var Wn={compareIdentifiers:Cn,rcompareIdentifiers:jc};const it=At,{MAX_LENGTH:Yl,MAX_SAFE_INTEGER:st}=Vt,{safeRe:Jl,t:xl}=nt,Lc=ll,{compareIdentifiers:ke}=Wn;let $c=class he{constructor(l,t){if(t=Lc(t),l instanceof he){if(l.loose===!!t.loose&&l.includePrerelease===!!t.includePrerelease)return l;l=l.version}else if(typeof l!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof l}".`);if(l.length>Yl)throw new TypeError(`version is longer than ${Yl} characters`);it("SemVer",l,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=l.trim().match(t.loose?Jl[xl.LOOSE]:Jl[xl.FULL]);if(!n)throw new TypeError(`Invalid Version: ${l}`);if(this.raw=l,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>st||this.major<0)throw new TypeError("Invalid major version");if(this.minor>st||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>st||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(c=>{if(/^[0-9]+$/.test(c)){const i=+c;if(i>=0&&i=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(t===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(c)}}if(t){let i=[t,c];n===!1&&(i=[t]),ke(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${l}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var se=$c;const yl=se,Tc=(e,l,t=!1)=>{if(e instanceof yl)return e;try{return new yl(e,l)}catch(n){if(!t)return null;throw n}};var je=Tc;const Mc=je,Oc=(e,l)=>{const t=Mc(e,l);return t?t.version:null};var Pc=Oc;const Dc=je,_c=(e,l)=>{const t=Dc(e.trim().replace(/^[=v]+/,""),l);return t?t.version:null};var qc=_c;const Bl=se,ei=(e,l,t,n,c)=>{typeof t=="string"&&(c=n,n=t,t=void 0);try{return new Bl(e instanceof Bl?e.version:e,t).inc(l,n,c).version}catch{return null}};var ti=ei;const Fl=je,li=(e,l)=>{const t=Fl(e,null,!0),n=Fl(l,null,!0),c=t.compare(n);if(c===0)return null;const i=c>0,o=i?t:n,s=i?n:t,a=!!o.prerelease.length;if(!!s.prerelease.length&&!a)return!s.patch&&!s.minor?"major":o.patch?"patch":o.minor?"minor":"major";const g=a?"pre":"";return t.major!==n.major?g+"major":t.minor!==n.minor?g+"minor":t.patch!==n.patch?g+"patch":"prerelease"};var ni=li;const ci=se,ii=(e,l)=>new ci(e,l).major;var si=ii;const oi=se,ai=(e,l)=>new oi(e,l).minor;var ri=ai;const di=se,gi=(e,l)=>new di(e,l).patch;var bi=gi;const Zi=je,mi=(e,l)=>{const t=Zi(e,l);return t&&t.prerelease.length?t.prerelease:null};var ui=mi;const Hl=se,Gi=(e,l,t)=>new Hl(e,t).compare(new Hl(l,t));var Ce=Gi;const Ii=Ce,Ci=(e,l,t)=>Ii(l,e,t);var Wi=Ci;const hi=Ce,pi=(e,l)=>hi(e,l,!0);var Xi=pi;const Nl=se,fi=(e,l,t)=>{const n=new Nl(e,t),c=new Nl(l,t);return n.compare(c)||n.compareBuild(c)};var nl=fi;const Ri=nl,Vi=(e,l)=>e.sort((t,n)=>Ri(t,n,l));var Ai=Vi;const Yi=nl,Ji=(e,l)=>e.sort((t,n)=>Yi(n,t,l));var xi=Ji;const yi=Ce,Bi=(e,l,t)=>yi(e,l,t)>0;var Yt=Bi;const Fi=Ce,Hi=(e,l,t)=>Fi(e,l,t)<0;var cl=Hi;const Ni=Ce,vi=(e,l,t)=>Ni(e,l,t)===0;var hn=vi;const ki=Ce,Si=(e,l,t)=>ki(e,l,t)!==0;var pn=Si;const wi=Ce,Ei=(e,l,t)=>wi(e,l,t)>=0;var il=Ei;const Ki=Ce,Qi=(e,l,t)=>Ki(e,l,t)<=0;var sl=Qi;const zi=hn,Ui=pn,ji=Yt,Li=il,$i=cl,Ti=sl,Mi=(e,l,t,n)=>{switch(l){case"===":return typeof e=="object"&&(e=e.version),typeof t=="object"&&(t=t.version),e===t;case"!==":return typeof e=="object"&&(e=e.version),typeof t=="object"&&(t=t.version),e!==t;case"":case"=":case"==":return zi(e,t,n);case"!=":return Ui(e,t,n);case">":return ji(e,t,n);case">=":return Li(e,t,n);case"<":return $i(e,t,n);case"<=":return Ti(e,t,n);default:throw new TypeError(`Invalid operator: ${l}`)}};var Xn=Mi;const Oi=se,Pi=je,{safeRe:ot,t:at}=nt,Di=(e,l)=>{if(e instanceof Oi)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;l=l||{};let t=null;if(!l.rtl)t=e.match(l.includePrerelease?ot[at.COERCEFULL]:ot[at.COERCE]);else{const a=l.includePrerelease?ot[at.COERCERTLFULL]:ot[at.COERCERTL];let Z;for(;(Z=a.exec(e))&&(!t||t.index+t[0].length!==e.length);)(!t||Z.index+Z[0].length!==t.index+t[0].length)&&(t=Z),a.lastIndex=Z.index+Z[1].length+Z[2].length;a.lastIndex=-1}if(t===null)return null;const n=t[2],c=t[3]||"0",i=t[4]||"0",o=l.includePrerelease&&t[5]?`-${t[5]}`:"",s=l.includePrerelease&&t[6]?`+${t[6]}`:"";return Pi(`${n}.${c}.${i}${o}${s}`,l)};var _i=Di;class qi{constructor(){this.max=1e3,this.map=new Map}get(l){const t=this.map.get(l);if(t!==void 0)return this.map.delete(l),this.map.set(l,t),t}delete(l){return this.map.delete(l)}set(l,t){if(!this.delete(l)&&t!==void 0){if(this.map.size>=this.max){const c=this.map.keys().next().value;this.delete(c)}this.map.set(l,t)}return this}}var es=qi,kt,vl;function We(){if(vl)return kt;vl=1;class e{constructor(C,N){if(N=n(N),C instanceof e)return C.loose===!!N.loose&&C.includePrerelease===!!N.includePrerelease?C:new e(C.raw,N);if(C instanceof c)return this.raw=C.value,this.set=[[C]],this.format(),this;if(this.options=N,this.loose=!!N.loose,this.includePrerelease=!!N.includePrerelease,this.raw=C.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(F=>this.parseRange(F.trim())).filter(F=>F.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const F=this.set[0];if(this.set=this.set.filter(H=>!Y(H[0])),this.set.length===0)this.set=[F];else if(this.set.length>1){for(const H of this.set)if(H.length===1&&L(H[0])){this.set=[H];break}}}this.format()}format(){return this.range=this.set.map(C=>C.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(C){const F=((this.options.includePrerelease&&x)|(this.options.loose&&p))+":"+C,H=t.get(F);if(H)return H;const J=this.options.loose,k=J?s[a.HYPHENRANGELOOSE]:s[a.HYPHENRANGE];C=C.replace(k,v(this.options.includePrerelease)),i("hyphen replace",C),C=C.replace(s[a.COMPARATORTRIM],Z),i("comparator trim",C),C=C.replace(s[a.TILDETRIM],g),i("tilde trim",C),C=C.replace(s[a.CARETTRIM],I),i("caret trim",C);let z=C.split(" ").map(V=>K(V,this.options)).join(" ").split(/\s+/).map(V=>R(V,this.options));J&&(z=z.filter(V=>(i("loose invalid filter",V,this.options),!!V.match(s[a.COMPARATORLOOSE])))),i("range list",z);const S=new Map,U=z.map(V=>new c(V,this.options));for(const V of U){if(Y(V))return[V];S.set(V.value,V)}S.size>1&&S.has("")&&S.delete("");const q=[...S.values()];return t.set(F,q),q}intersects(C,N){if(!(C instanceof e))throw new TypeError("a Range is required");return this.set.some(F=>m(F,N)&&C.set.some(H=>m(H,N)&&F.every(J=>H.every(k=>J.intersects(k,N)))))}test(C){if(!C)return!1;if(typeof C=="string")try{C=new o(C,this.options)}catch{return!1}for(let N=0;NW.value==="<0.0.0-0",L=W=>W.value==="",m=(W,C)=>{let N=!0;const F=W.slice();let H=F.pop();for(;N&&F.length;)N=F.every(J=>H.intersects(J,C)),H=F.pop();return N},K=(W,C)=>(i("comp",W,C),W=Q(W,C),i("caret",W),W=E(W,C),i("tildes",W),W=be(W,C),i("xrange",W),W=f(W,C),i("stars",W),W),w=W=>!W||W.toLowerCase()==="x"||W==="*",E=(W,C)=>W.trim().split(/\s+/).map(N=>M(N,C)).join(" "),M=(W,C)=>{const N=C.loose?s[a.TILDELOOSE]:s[a.TILDE];return W.replace(N,(F,H,J,k,z)=>{i("tilde",W,F,H,J,k,z);let S;return w(H)?S="":w(J)?S=`>=${H}.0.0 <${+H+1}.0.0-0`:w(k)?S=`>=${H}.${J}.0 <${H}.${+J+1}.0-0`:z?(i("replaceTilde pr",z),S=`>=${H}.${J}.${k}-${z} <${H}.${+J+1}.0-0`):S=`>=${H}.${J}.${k} <${H}.${+J+1}.0-0`,i("tilde return",S),S})},Q=(W,C)=>W.trim().split(/\s+/).map(N=>ge(N,C)).join(" "),ge=(W,C)=>{i("caret",W,C);const N=C.loose?s[a.CARETLOOSE]:s[a.CARET],F=C.includePrerelease?"-0":"";return W.replace(N,(H,J,k,z,S)=>{i("caret",W,H,J,k,z,S);let U;return w(J)?U="":w(k)?U=`>=${J}.0.0${F} <${+J+1}.0.0-0`:w(z)?J==="0"?U=`>=${J}.${k}.0${F} <${J}.${+k+1}.0-0`:U=`>=${J}.${k}.0${F} <${+J+1}.0.0-0`:S?(i("replaceCaret pr",S),J==="0"?k==="0"?U=`>=${J}.${k}.${z}-${S} <${J}.${k}.${+z+1}-0`:U=`>=${J}.${k}.${z}-${S} <${J}.${+k+1}.0-0`:U=`>=${J}.${k}.${z}-${S} <${+J+1}.0.0-0`):(i("no pr"),J==="0"?k==="0"?U=`>=${J}.${k}.${z}${F} <${J}.${k}.${+z+1}-0`:U=`>=${J}.${k}.${z}${F} <${J}.${+k+1}.0-0`:U=`>=${J}.${k}.${z} <${+J+1}.0.0-0`),i("caret return",U),U})},be=(W,C)=>(i("replaceXRanges",W,C),W.split(/\s+/).map(N=>X(N,C)).join(" ")),X=(W,C)=>{W=W.trim();const N=C.loose?s[a.XRANGELOOSE]:s[a.XRANGE];return W.replace(N,(F,H,J,k,z,S)=>{i("xRange",W,F,H,J,k,z,S);const U=w(J),q=U||w(k),V=q||w(z),me=V;return H==="="&&me&&(H=""),S=C.includePrerelease?"-0":"",U?H===">"||H==="<"?F="<0.0.0-0":F="*":H&&me?(q&&(k=0),z=0,H===">"?(H=">=",q?(J=+J+1,k=0,z=0):(k=+k+1,z=0)):H==="<="&&(H="<",q?J=+J+1:k=+k+1),H==="<"&&(S="-0"),F=`${H+J}.${k}.${z}${S}`):q?F=`>=${J}.0.0${S} <${+J+1}.0.0-0`:V&&(F=`>=${J}.${k}.0${S} <${J}.${+k+1}.0-0`),i("xRange return",F),F})},f=(W,C)=>(i("replaceStars",W,C),W.trim().replace(s[a.STAR],"")),R=(W,C)=>(i("replaceGTE0",W,C),W.trim().replace(s[C.includePrerelease?a.GTE0PRE:a.GTE0],"")),v=W=>(C,N,F,H,J,k,z,S,U,q,V,me)=>(w(F)?N="":w(H)?N=`>=${F}.0.0${W?"-0":""}`:w(J)?N=`>=${F}.${H}.0${W?"-0":""}`:k?N=`>=${N}`:N=`>=${N}${W?"-0":""}`,w(U)?S="":w(q)?S=`<${+U+1}.0.0-0`:w(V)?S=`<${U}.${+q+1}.0-0`:me?S=`<=${U}.${q}.${V}-${me}`:W?S=`<${U}.${q}.${+V+1}-0`:S=`<=${S}`,`${N} ${S}`.trim()),D=(W,C,N)=>{for(let F=0;F0){const H=W[F].semver;if(H.major===C.major&&H.minor===C.minor&&H.patch===C.patch)return!0}return!1}return!0};return kt}var St,kl;function Jt(){if(kl)return St;kl=1;const e=Symbol("SemVer ANY");class l{static get ANY(){return e}constructor(g,I){if(I=t(I),g instanceof l){if(g.loose===!!I.loose)return g;g=g.value}g=g.trim().split(/\s+/).join(" "),o("comparator",g,I),this.options=I,this.loose=!!I.loose,this.parse(g),this.semver===e?this.value="":this.value=this.operator+this.semver.version,o("comp",this)}parse(g){const I=this.options.loose?n[c.COMPARATORLOOSE]:n[c.COMPARATOR],x=g.match(I);if(!x)throw new TypeError(`Invalid comparator: ${g}`);this.operator=x[1]!==void 0?x[1]:"",this.operator==="="&&(this.operator=""),x[2]?this.semver=new s(x[2],this.options.loose):this.semver=e}toString(){return this.value}test(g){if(o("Comparator.test",g,this.options.loose),this.semver===e||g===e)return!0;if(typeof g=="string")try{g=new s(g,this.options)}catch{return!1}return i(g,this.operator,this.semver,this.options)}intersects(g,I){if(!(g instanceof l))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new a(g.value,I).test(this.value):g.operator===""?g.value===""?!0:new a(this.value,I).test(g.semver):(I=t(I),I.includePrerelease&&(this.value==="<0.0.0-0"||g.value==="<0.0.0-0")||!I.includePrerelease&&(this.value.startsWith("<0.0.0")||g.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&g.operator.startsWith(">")||this.operator.startsWith("<")&&g.operator.startsWith("<")||this.semver.version===g.semver.version&&this.operator.includes("=")&&g.operator.includes("=")||i(this.semver,"<",g.semver,I)&&this.operator.startsWith(">")&&g.operator.startsWith("<")||i(this.semver,">",g.semver,I)&&this.operator.startsWith("<")&&g.operator.startsWith(">")))}}St=l;const t=ll,{safeRe:n,t:c}=nt,i=Xn,o=At,s=se,a=We();return St}const ts=We(),ls=(e,l,t)=>{try{l=new ts(l,t)}catch{return!1}return l.test(e)};var xt=ls;const ns=We(),cs=(e,l)=>new ns(e,l).set.map(t=>t.map(n=>n.value).join(" ").trim().split(" "));var is=cs;const ss=se,os=We(),as=(e,l,t)=>{let n=null,c=null,i=null;try{i=new os(l,t)}catch{return null}return e.forEach(o=>{i.test(o)&&(!n||c.compare(o)===-1)&&(n=o,c=new ss(n,t))}),n};var rs=as;const ds=se,gs=We(),bs=(e,l,t)=>{let n=null,c=null,i=null;try{i=new gs(l,t)}catch{return null}return e.forEach(o=>{i.test(o)&&(!n||c.compare(o)===1)&&(n=o,c=new ds(n,t))}),n};var Zs=bs;const wt=se,ms=We(),Sl=Yt,us=(e,l)=>{e=new ms(e,l);let t=new wt("0.0.0");if(e.test(t)||(t=new wt("0.0.0-0"),e.test(t)))return t;t=null;for(let n=0;n{const s=new wt(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!i||Sl(s,i))&&(i=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),i&&(!t||Sl(t,i))&&(t=i)}return t&&e.test(t)?t:null};var Gs=us;const Is=We(),Cs=(e,l)=>{try{return new Is(e,l).range||"*"}catch{return null}};var Ws=Cs;const hs=se,fn=Jt(),{ANY:ps}=fn,Xs=We(),fs=xt,wl=Yt,El=cl,Rs=sl,Vs=il,As=(e,l,t,n)=>{e=new hs(e,n),l=new Xs(l,n);let c,i,o,s,a;switch(t){case">":c=wl,i=Rs,o=El,s=">",a=">=";break;case"<":c=El,i=Vs,o=wl,s="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fs(e,l,n))return!1;for(let Z=0;Z{p.semver===ps&&(p=new fn(">=0.0.0")),I=I||p,x=x||p,c(p.semver,I.semver,n)?I=p:o(p.semver,x.semver,n)&&(x=p)}),I.operator===s||I.operator===a||(!x.operator||x.operator===s)&&i(e,x.semver))return!1;if(x.operator===a&&o(e,x.semver))return!1}return!0};var ol=As;const Ys=ol,Js=(e,l,t)=>Ys(e,l,">",t);var xs=Js;const ys=ol,Bs=(e,l,t)=>ys(e,l,"<",t);var Fs=Bs;const Kl=We(),Hs=(e,l,t)=>(e=new Kl(e,t),l=new Kl(l,t),e.intersects(l,t));var Ns=Hs;const vs=xt,ks=Ce;var Ss=(e,l,t)=>{const n=[];let c=null,i=null;const o=e.sort((g,I)=>ks(g,I,t));for(const g of o)vs(g,l,t)?(i=g,c||(c=g)):(i&&n.push([c,i]),i=null,c=null);c&&n.push([c,null]);const s=[];for(const[g,I]of n)g===I?s.push(g):!I&&g===o[0]?s.push("*"):I?g===o[0]?s.push(`<=${I}`):s.push(`${g} - ${I}`):s.push(`>=${g}`);const a=s.join(" || "),Z=typeof l.raw=="string"?l.raw:String(l);return a.length{if(e===l)return!0;e=new Ql(e,t),l=new Ql(l,t);let n=!1;e:for(const c of e.set){for(const i of l.set){const o=Ks(c,i,t);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},Es=[new al(">=0.0.0-0")],zl=[new al(">=0.0.0")],Ks=(e,l,t)=>{if(e===l)return!0;if(e.length===1&&e[0].semver===Et){if(l.length===1&&l[0].semver===Et)return!0;t.includePrerelease?e=Es:e=zl}if(l.length===1&&l[0].semver===Et){if(t.includePrerelease)return!0;l=zl}const n=new Set;let c,i;for(const p of e)p.operator===">"||p.operator===">="?c=Ul(c,p,t):p.operator==="<"||p.operator==="<="?i=jl(i,p,t):n.add(p.semver);if(n.size>1)return null;let o;if(c&&i){if(o=rl(c.semver,i.semver,t),o>0)return null;if(o===0&&(c.operator!==">="||i.operator!=="<="))return null}for(const p of n){if(c&&!$e(p,String(c),t)||i&&!$e(p,String(i),t))return null;for(const Y of l)if(!$e(p,String(Y),t))return!1;return!0}let s,a,Z,g,I=i&&!t.includePrerelease&&i.semver.prerelease.length?i.semver:!1,x=c&&!t.includePrerelease&&c.semver.prerelease.length?c.semver:!1;I&&I.prerelease.length===1&&i.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(const p of l){if(g=g||p.operator===">"||p.operator===">=",Z=Z||p.operator==="<"||p.operator==="<=",c){if(x&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===x.major&&p.semver.minor===x.minor&&p.semver.patch===x.patch&&(x=!1),p.operator===">"||p.operator===">="){if(s=Ul(c,p,t),s===p&&s!==c)return!1}else if(c.operator===">="&&!$e(c.semver,String(p),t))return!1}if(i){if(I&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===I.major&&p.semver.minor===I.minor&&p.semver.patch===I.patch&&(I=!1),p.operator==="<"||p.operator==="<="){if(a=jl(i,p,t),a===p&&a!==i)return!1}else if(i.operator==="<="&&!$e(i.semver,String(p),t))return!1}if(!p.operator&&(i||c)&&o!==0)return!1}return!(c&&Z&&!i&&o!==0||i&&g&&!c&&o!==0||x||I)},Ul=(e,l,t)=>{if(!e)return l;const n=rl(e.semver,l.semver,t);return n>0?e:n<0||l.operator===">"&&e.operator===">="?l:e},jl=(e,l,t)=>{if(!e)return l;const n=rl(e.semver,l.semver,t);return n<0?e:n>0||l.operator==="<"&&e.operator==="<="?l:e};var Qs=ws;const Kt=nt,Ll=Vt,zs=se,$l=Wn,Us=je,js=Pc,Ls=qc,$s=ti,Ts=ni,Ms=si,Os=ri,Ps=bi,Ds=ui,_s=Ce,qs=Wi,eo=Xi,to=nl,lo=Ai,no=xi,co=Yt,io=cl,so=hn,oo=pn,ao=il,ro=sl,go=Xn,bo=_i,Zo=Jt(),mo=We(),uo=xt,Go=is,Io=rs,Co=Zs,Wo=Gs,ho=Ws,po=ol,Xo=xs,fo=Fs,Ro=Ns,Vo=Ss,Ao=Qs;var Yo={parse:Us,valid:js,clean:Ls,inc:$s,diff:Ts,major:Ms,minor:Os,patch:Ps,prerelease:Ds,compare:_s,rcompare:qs,compareLoose:eo,compareBuild:to,sort:lo,rsort:no,gt:co,lt:io,eq:so,neq:oo,gte:ao,lte:ro,cmp:go,coerce:bo,Comparator:Zo,Range:mo,satisfies:uo,toComparators:Go,maxSatisfying:Io,minSatisfying:Co,minVersion:Wo,validRange:ho,outside:po,gtr:Xo,ltr:fo,intersects:Ro,simplifyRange:Vo,subset:Ao,SemVer:zs,re:Kt.re,src:Kt.src,tokens:Kt.t,SEMVER_SPEC_VERSION:Ll.SEMVER_SPEC_VERSION,RELEASE_TYPES:Ll.RELEASE_TYPES,compareIdentifiers:$l.compareIdentifiers,rcompareIdentifiers:$l.rcompareIdentifiers},Jo=Yo;const xo=Nc(Jo),Rn=e=>e!=null&&e.includes(" ")?`"${e}"`:`${e??"pandoc"}`;async function yo(e,l){e=Rn(e);let t=await zt(`${e} --version`,{env:l});t=t.substring(0,t.indexOf(` +`)).replace("pandoc.exe","").replace("pandoc","").trim();let n=[...t].filter(c=>c===".").length;if(n===1)t=`${t}.0`;else for(;n>2;)t=t.substring(0,t.lastIndexOf(".")),n-=1;return xo.parse(t,!0)}const Bo="3.1.7",Zt={normalizePath:Rn,getVersion:yo,requiredVersion:Bo};async function Vn(e,l,t,n,c,i,o,s,a,Z){const{settings:g,lang:I,manifest:x,app:{vault:{adapter:p,config:Y},metadataCache:L}}=e;if(!n){const ce=_l(c);n=`${l.basename}${ce}`}i==null&&(i=g.showOverwriteConfirmation);const m=g.showExportProgressBar,K=p.getBasePath(),w=`${K}/${x.dir}`,E=`${w}/lua`,M=t,Q=`${M}/${n}`,ge=n.substring(0,n.lastIndexOf(".")),be=n,X=p.getFullPath(l.path),f=ae.dirname(X),R=l.basename,v=l.name;let D=Y.attachmentFolderPath??"/";D==="/"?D=K:D.startsWith(".")?D=ae.join(f,D.substring(1)):D=ae.join(K,D);let W=null;try{W=L.getCache(l.path).frontmatter}catch(ce){console.error(ce)}const C={pluginDir:w,luaDir:E,outputDir:M,outputPath:Q,outputFileName:ge,outputFileFullName:be,currentDir:f,currentPath:X,currentFileName:R,currentFileFullName:v,attachmentFolderPath:D,vaultDir:K,metadata:W,options:o,fromFormat:app.vault.config.useMarkdownLinks?"markdown":"markdown+wikilinks_title_after_pipe"},N=c.type==="custom"&&c.showCommandOutput,F=c.openExportedFileLocation??g.openExportedFileLocation,H=c.openExportedFile??g.openExportedFile;if(i&&yt.existsSync(Q)){const ce=await Be.remote.dialog.showSaveDialog({title:I.overwriteConfirmationDialog.title(be),defaultPath:Q,properties:["showOverwriteConfirmation","createDirectory"]});if(ce.canceled)return;C.outputPath=ce.filePath,C.outputDir=ae.dirname(C.outputPath),C.outputFileFullName=ae.basename(C.outputPath),C.outputFileName=ae.basename(C.outputFileFullName,ae.extname(C.outputFileFullName))}let J;m&&(J=Hc.show(I.preparing(C.outputFileFullName)));const k=C.env=ql(de(g.env)??{},C);let z=Zt.normalizePath(de(g.pandocPath));if(pt.platform==="win32"){z=z.replaceAll("\\","/");const ce=["pluginDir","luaDir","outputDir","outputPath","currentDir","currentPath","attachmentFolderPath","vaultDir"];for(const Xe of ce){const He=C[Xe];C[Xe]=He.replaceAll("\\","/")}}const S=c.type==="pandoc"?`${z} "\${currentPath}" ${c.arguments??""} ${c.customArguments??""}`:c.command,U=Ut(S,C),q=lt(U.match(/(?:[^\s"]+|"[^"]*")+/g),{alias:{output:["o"]}}),V=ae.normalize(Kn(q.output)),me=ae.dirname(V);yt.existsSync(me)||yt.mkdirSync(me);try{console.log(`[${e.manifest.name}]: export command and options:`,{cmd:U,options:{cwd:C.currentDir,env:k}}),await zt(U,{cwd:C.currentDir,env:k}),J==null||J();const ce=async()=>{if(F&&setTimeout(()=>{Be.remote.shell.showItemInFolder(V)},1e3),H&&await Be.remote.shell.openPath(V),c.type==="pandoc"&&c.runCommand===!0&&c.command){const Xe=Ut(c.command,C);await zt(Xe,{cwd:C.currentDir,env:k})}s&&s()};if(N){const Xe=new Vl(app,I.exportCommandOutputMessage(U));Xe.onClose=ce,Xe.open()}else new Ie.Notice(I.exportSuccessNotice(C.outputFileFullName),1500),await ce()}catch(ce){J==null||J(),new Vl(app,I.exportErrorOutputMessage(U,ce)).open(),a&&a()}}const Ot=e=>{const l=new Ie.Modal(e.app);let t=[],n=!1;return Ye(()=>{ne(l.titleEl,()=>e.title)}),Ye(()=>{ne(l.contentEl,()=>e.children)}),Ye(()=>{const c=Object.entries(e.classList??{}).filter(([,i])=>i).map(([i])=>i);t.length>0&&l.containerEl.removeClasses(t),c.length>0&&l.containerEl.addClasses(c),t=c}),Ye(()=>{l.containerEl.style.display=e.hidden?"None":""}),l.onClose=()=>{n||(n=!0,e.onClose())},ln(()=>l.open()),ze(()=>{n||l.close()}),document.createTextNode("")};var Fo=Ze("