{"version":3,"file":"index.cjs","sources":["../src/constants/index.ts","../src/constants/words.ts","../src/util/env.ts","../src/util/strings.ts","../src/lib/generator.ts","../src/lib/VeganIpsum.ts","../src/index.ts"],"sourcesContent":["// Represents the HTML format for generated text.\nexport const FORMAT_HTML = \"html\";\n// Represents the plain text format for generated text.\nexport const FORMAT_PLAIN = \"plain\";\n// An array of supported formats for generated text.\nexport const FORMATS = [FORMAT_HTML, FORMAT_PLAIN];\n// Type representing the supported formats for generated text.\nexport type LoremFormat = \"plain\" | \"html\";\n\n/**\n * An object representing line endings for different platforms.\n *\n * - `POSIX`: Line ending for POSIX-compliant systems (`\\n`).\n * - `WIN32`: Line ending for Windows systems (`\\r\\n`).\n */\nexport const LINE_ENDINGS = { POSIX: \"\\n\", WIN32: \"\\r\\n\" };\n\n/**\n * An object representing supported platforms.\n *\n * - `DARWIN`: macOS platform identifier.\n * - `LINUX`: Linux platform identifier.\n * - `WIN32`: Windows platform identifier.\n */\nexport const SUPPORTED_PLATFORMS = {\n\tDARWIN: \"darwin\",\n\tLINUX: \"linux\",\n\tWIN32: \"win32\",\n};\n\n/**\n * An object containing regular expressions for validating formats and units.\n *\n * - `FORMATS`: Matches supported text formats (`plain` or `html`), case-insensitive.\n * - `UNITS`: Matches supported unit types (`paragraphs`, `sentences`, `words`), case-insensitive.\n */\nexport const REGEX = {\n\tFORMATS: /^(plain|html)$/i,\n\tUNITS: /^(paragraphs|sentences|words)$/i,\n};\n\n// Represents the unit type for words.\nexport const UNIT_WORDS = \"words\";\n// Represents the unit type for sentences.\nexport const UNIT_SENTENCES = \"sentences\";\n// Represents the unit type for paragraphs.\nexport const UNIT_PARAGRAPHS = \"paragraphs\";\n// An array of supported unit types for generating text.\nexport const UNITS = [UNIT_WORDS, UNIT_SENTENCES, UNIT_PARAGRAPHS];\n// Type representing the supported unit types for generating text.\nexport type LoremUnit = \"words\" | \"sentences\" | \"paragraphs\";\n\nexport default {\n\tFORMAT_HTML,\n\tFORMAT_PLAIN,\n\tFORMATS,\n\tLINE_ENDINGS,\n\tSUPPORTED_PLATFORMS,\n\tREGEX,\n\tUNIT_WORDS,\n\tUNIT_SENTENCES,\n\tUNIT_PARAGRAPHS,\n\tUNITS,\n};\n","/**\n * An array of default lorem ipsum words.\n */\nexport const DEFAULT_WORDS = [\n\t\"ad\",\n\t\"adipisicing\",\n\t\"aliqua\",\n\t\"aliquip\",\n\t\"amet\",\n\t\"anim\",\n\t\"aute\",\n\t\"cillum\",\n\t\"commodo\",\n\t\"consectetur\",\n\t\"consequat\",\n\t\"culpa\",\n\t\"cupidatat\",\n\t\"deserunt\",\n\t\"do\",\n\t\"dolor\",\n\t\"dolore\",\n\t\"duis\",\n\t\"ea\",\n\t\"eiusmod\",\n\t\"elit\",\n\t\"enim\",\n\t\"esse\",\n\t\"est\",\n\t\"et\",\n\t\"eu\",\n\t\"ex\",\n\t\"excepteur\",\n\t\"exercitation\",\n\t\"fugiat\",\n\t\"id\",\n\t\"in\",\n\t\"incididunt\",\n\t\"ipsum\",\n\t\"irure\",\n\t\"labore\",\n\t\"laboris\",\n\t\"laborum\",\n\t\"Lorem\",\n\t\"magna\",\n\t\"minim\",\n\t\"mollit\",\n\t\"nisi\",\n\t\"non\",\n\t\"nostrud\",\n\t\"nulla\",\n\t\"occaecat\",\n\t\"officia\",\n\t\"pariatur\",\n\t\"proident\",\n\t\"qui\",\n\t\"quis\",\n\t\"reprehenderit\",\n\t\"sint\",\n\t\"sit\",\n\t\"sunt\",\n\t\"tempor\",\n\t\"ullamco\",\n\t\"ut\",\n\t\"velit\",\n\t\"veniam\",\n\t\"voluptate\",\n];\n\n/**\n * An array of vegan-related words to accompany the default ones.\n */\nexport const VEGAN_WORDS = [\n\t\"plant\",\n\t\"vegan\",\n\t\"kindness\",\n\t\"crueltyfree\",\n\t\"herbivore\",\n\t\"compassion\",\n\t\"earth\",\n\t\"dairyfree\",\n\t\"justice\",\n\t\"respect\",\n\t\"peace\",\n\t\"love\",\n\t\"greens\",\n\t\"fruit\",\n\t\"vegetable\",\n\t\"freedom\",\n\t\"life\",\n\t\"rights\",\n\t\"sanctuary\",\n\t\"nonviolence\",\n\t\"care\",\n\t\"conscious\",\n\t\"ethics\",\n\t\"climate\",\n\t\"truth\",\n\t\"plants\",\n\t\"health\",\n\t\"wholefood\",\n\t\"clean\",\n\t\"veggie\",\n\t\"legumes\",\n\t\"fiber\",\n\t\"avocado\",\n\t\"soy\",\n\t\"tofu\",\n\t\"tempeh\",\n\t\"lentils\",\n\t\"coconut\",\n\t\"nutrients\",\n\t\"plantpower\",\n\t\"choices\",\n\t\"saving\",\n\t\"sustain\",\n\t\"grain\",\n\t\"beans\",\n\t\"peas\",\n\t\"quinoa\",\n\t\"broccoli\",\n\t\"kale\",\n\t\"lettuce\",\n\t\"radish\",\n\t\"basil\",\n\t\"mint\",\n\t\"ginger\",\n\t\"turmeric\",\n\t\"natural\",\n\t\"organic\",\n\t\"kind\",\n];\n\n/**\n * An array of kindness-related words to accompany the default ones.\n */\nexport const KINDNESS_WORDS = [\n\t\"kindness\",\n\t\"compassion\",\n\t\"empathy\",\n\t\"mercy\",\n\t\"respect\",\n\t\"gentleness\",\n\t\"care\",\n\t\"love\",\n\t\"peace\",\n\t\"justice\",\n\t\"fairness\",\n\t\"awareness\",\n\t\"forgiveness\",\n\t\"integrity\",\n\t\"nonviolence\",\n\t\"harmony\",\n\t\"mindfulness\",\n\t\"humility\",\n\t\"patience\",\n\t\"sincerity\",\n\t\"tolerance\",\n\t\"understanding\",\n\t\"altruism\",\n\t\"grace\",\n\t\"generosity\",\n\t\"helpfulness\",\n\t\"selflessness\",\n\t\"support\",\n\t\"comfort\",\n\t\"sympathy\",\n\t\"warmth\",\n\t\"charity\",\n\t\"unity\",\n\t\"positivity\",\n];\n\n/**\n * An array of vegan food-related words to accompany the default ones.\n */\nexport const VEGAN_FOOD_WORDS = [\n\t\"tofu\",\n\t\"tempeh\",\n\t\"soymilk\",\n\t\"almondmilk\",\n\t\"oatmilk\",\n\t\"vegan-burger\",\n\t\"vegan-cheese\",\n\t\"jackfruit\",\n\t\"quinoa\",\n\t\"bowl\",\n\t\"lentil\",\n\t\"soup\",\n\t\"smoothie\",\n\t\"nut\",\n\t\"chia\",\n\t\"pudding\",\n\t\"granola\",\n\t\"plant-based\",\n\t\"vegan-yogurt\",\n\t\"vegan-pizza\",\n\t\"coconut\",\n\t\"chickpea\",\n\t\"curry\",\n\t\"soba\",\n\t\"noodles\",\n\t\"pancake\",\n\t\"avocado\",\n\t\"toast\",\n\t\"vegetable\",\n];\n\n/**\n * An array of vegetable-related words to accompany the default ones.\n */\nexport const VEGGIE_WORDS = [\n\t\"broccoli\",\n\t\"kale\",\n\t\"spinach\",\n\t\"lettuce\",\n\t\"cabbage\",\n\t\"beetroot\",\n\t\"carrot\",\n\t\"radish\",\n\t\"turnip\",\n\t\"cauliflower\",\n\t\"zucchini\",\n\t\"bell\",\n\t\"pepper\",\n\t\"cucumber\",\n\t\"eggplant\",\n\t\"okra\",\n\t\"tomato\",\n\t\"green\",\n\t\"beans\",\n\t\"peas\",\n\t\"sweet\",\n\t\"potato\",\n\t\"pumpkin\",\n\t\"asparagus\",\n\t\"artichoke\",\n\t\"brussels\",\n\t\"sprouts\",\n\t\"chard\",\n\t\"fennel\",\n\t\"leek\",\n\t\"parsnip\",\n\t\"celery\",\n\t\"shallot\",\n\t\"corn\",\n\t\"bamboo\",\n\t\"shoots\",\n\t\"beet\",\n\t\"greens\",\n\t\"mustard\",\n\t\"scallions\",\n\t\"radicchio\",\n\t\"snow\",\n\t\"onion\",\n\t\"squash\",\n];\n\n/**\n * Final array combining default lorem ipsum and vegan-themed words.\n */\nexport const WORDS = Array.from(\n\tnew Set([\n\t\t...DEFAULT_WORDS,\n\t\t...VEGAN_WORDS,\n\t\t...KINDNESS_WORDS,\n\t\t...VEGAN_FOOD_WORDS,\n\t\t...VEGGIE_WORDS,\n\t])\n);\n","import { SUPPORTED_PLATFORMS } from \"../constants\";\n\n/**\n * Determines if the current runtime environment is Node.js.\n *\n * @returns {boolean} `true` if the runtime is Node.js, otherwise `false`.\n */\nexport const isNode = (): boolean => {\n\treturn typeof module !== \"undefined\" && !!module.exports;\n};\n\n/**\n * Determines if the current runtime environment is React Native.\n *\n * @returns {boolean} `true` if the runtime is React Native, otherwise `false`.\n */\nexport const isReactNative = (): boolean => {\n\ttry {\n\t\treturn (\n\t\t\t(navigator as Navigator & { product?: string }).product\n\t\t\t=== \"ReactNative\"\n\t\t);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\n/**\n * Determines if the current runtime environment is Windows.\n *\n * @returns {boolean} `true` if the process is running on a Windows platform, otherwise `false`.\n */\nexport const isWindows = (): boolean => {\n\ttry {\n\t\treturn process.platform === SUPPORTED_PLATFORMS.WIN32;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nexport default { isNode, isReactNative, isWindows };\n","/**\n * Capitalizes the first character of a given string after trimming whitespace.\n *\n * @param {string} str - The input string to capitalize.\n * @returns {string} The input string with the first character capitalized.\n */\nexport const capitalize = (str: string): string => {\n\tconst trimmed = str.trim();\n\treturn trimmed.charAt(0).toUpperCase() + trimmed.slice(1);\n};\n\n/**\n * Creates an array of a specified length, where each element is its index.\n *\n * @param {number} length - The desired length of the array. Defaults to 0.\n * @returns {number[]} An array of indexes from 0 to `length - 1`.\n */\nexport const rangeArray = (length: number = 0): number[] => {\n\treturn [...Array(length)].map((_: unknown, index: number): number => index);\n};\n\n/**\n * Creates an array of strings of a specified length, using a provided string generator function.\n *\n * @param {number} length - The desired length of the array.\n * @param {() => string} makeString - A function that generates a string for each element.\n * @returns {string[]} An array of strings of the specified length.\n */\nexport const fillArrayWith = (\n\tlength: number,\n\tmakeString: () => string\n): string[] => {\n\tconst arr = rangeArray(length);\n\treturn arr.map(() => makeString());\n};\n\nexport default { capitalize, rangeArray, fillArrayWith };\n","import { WORDS } from \"../constants/words\";\nimport { capitalize, rangeArray } from \"../util\";\n\n/**\n * Represents a range with minimum and maximum bounds.\n */\nexport interface Bounds {\n\tmin: number;\n\tmax: number;\n}\n\n/**\n * Type for a pseudo-random number generator function.\n */\nexport type Prng = () => number;\n\n/**\n * Type for a seedable random number generator constructor.\n */\nexport type SeedRandom = new (seed?: string) => Prng;\n\n/**\n * Interface for math utilities with a seedable random number generator.\n */\nexport interface Math {\n\tseedrandom: SeedRandom;\n}\n\n/**\n * Options for configuring the `Generator` class.\n */\nexport interface GeneratorOptions {\n\t/**\n\t * Range for the number of sentences per paragraph.\n\t */\n\tsentencesPerParagraph?: Bounds;\n\n\t/**\n\t * Range for the number of words per sentence.\n\t */\n\twordsPerSentence?: Bounds;\n\n\t/**\n\t * Custom random number generator function.\n\t */\n\trandom?: Prng;\n\n\t/**\n\t * Custom word list to use for generating text.\n\t */\n\twords?: string[];\n}\n\n/**\n * A class for generating random text (words, sentences, paragraphs).\n */\nclass Generator {\n\tpublic sentencesPerParagraph: Bounds;\n\tpublic wordsPerSentence: Bounds;\n\tpublic random: Prng;\n\tpublic words: string[];\n\n\t/**\n\t * Creates an instance of the `Generator` class.\n\t *\n\t * @param {GeneratorOptions} options - Configuration options for the generator.\n\t * @throws {Error} If the minimum exceeds the maximum in the provided bounds.\n\t */\n\tconstructor({\n\t\tsentencesPerParagraph = { max: 7, min: 3 },\n\t\twordsPerSentence = { max: 15, min: 5 },\n\t\trandom,\n\t\twords = WORDS,\n\t}: GeneratorOptions = {}) {\n\t\tif (sentencesPerParagraph.min > sentencesPerParagraph.max) {\n\t\t\tthrow new Error(\n\t\t\t\t`Minimum number of sentences per paragraph (${\n\t\t\t\t\tsentencesPerParagraph.min\n\t\t\t\t}) cannot exceed maximum (${sentencesPerParagraph.max}).`\n\t\t\t);\n\t\t}\n\n\t\tif (wordsPerSentence.min > wordsPerSentence.max) {\n\t\t\tthrow new Error(\n\t\t\t\t`Minimum number of words per sentence (${\n\t\t\t\t\twordsPerSentence.min\n\t\t\t\t}) cannot exceed maximum (${wordsPerSentence.max}).`\n\t\t\t);\n\t\t}\n\n\t\tthis.sentencesPerParagraph = sentencesPerParagraph;\n\t\tthis.words = words;\n\t\tthis.wordsPerSentence = wordsPerSentence;\n\t\tthis.random = random || Math.random;\n\t}\n\n\t/**\n\t * Generates a random integer between the specified minimum and maximum values.\n\t *\n\t * @param {number} min - The minimum value (inclusive).\n\t * @param {number} max - The maximum value (inclusive).\n\t * @returns {number} A random integer between `min` and `max`.\n\t */\n\tpublic generateRandomInteger(min: number, max: number): number {\n\t\treturn Math.floor(this.random() * (max - min + 1) + min);\n\t}\n\n\t/**\n\t * Generates a random sequence of words.\n\t *\n\t * @param {number} [num] - The number of words to generate. If not provided, a random number is used.\n\t * @returns {string} A string of randomly generated words.\n\t */\n\tpublic generateRandomWords(num?: number): string {\n\t\tconst { min, max } = this.wordsPerSentence;\n\t\tconst length = num || this.generateRandomInteger(min, max);\n\t\treturn rangeArray(length)\n\t\t\t.reduce((accumulator: string): string => {\n\t\t\t\treturn `${this.pluckRandomWord()} ${accumulator}`;\n\t\t\t}, \"\")\n\t\t\t.trim();\n\t}\n\n\t/**\n\t * Generates a random sentence.\n\t *\n\t * @param {number} [num] - The number of words in the sentence. If not provided, a random number is used.\n\t * @returns {string} A randomly generated sentence.\n\t */\n\tpublic generateRandomSentence(num?: number): string {\n\t\treturn `${capitalize(this.generateRandomWords(num))}.`;\n\t}\n\n\t/**\n\t * Generates a random paragraph.\n\t *\n\t * @param {number} [num] - The number of sentences in the paragraph. If not provided, a random number is used.\n\t * @returns {string} A randomly generated paragraph.\n\t */\n\tpublic generateRandomParagraph(num?: number): string {\n\t\tconst { min, max } = this.sentencesPerParagraph;\n\t\tconst length = num || this.generateRandomInteger(min, max);\n\t\treturn rangeArray(length)\n\t\t\t.reduce((accumulator: string): string => {\n\t\t\t\treturn `${this.generateRandomSentence()} ${accumulator}`;\n\t\t\t}, \"\")\n\t\t\t.trim();\n\t}\n\n\t/**\n\t * Selects a random word from the word list.\n\t *\n\t * @returns {string} A randomly selected word.\n\t */\n\tpublic pluckRandomWord(): string {\n\t\tconst min = 0;\n\t\tconst max = this.words.length - 1;\n\t\tconst index = this.generateRandomInteger(min, max);\n\t\treturn this.words[index];\n\t}\n}\n\nexport default Generator;\n","import {\n\tFORMAT_HTML,\n\tFORMAT_PLAIN,\n\tFORMATS,\n\tLoremFormat,\n\tLINE_ENDINGS,\n} from \"../constants\";\nimport { isNode, isReactNative, isWindows, fillArrayWith } from \"../util\";\n\nimport Generator, { GeneratorOptions } from \"./generator\";\n\n/**\n * A class for generating vegan ipsum text in various formats and units.\n */\nclass VeganIpsum {\n\tpublic generator: Generator;\n\n\t/**\n\t * Creates an instance of the `VeganIpsum` class.\n\t *\n\t * @param {GeneratorOptions} options - Configuration options for the text generator.\n\t * @param {LoremFormat} format - The format of the generated text (e.g., plain or HTML).\n\t * @param {string} [suffix] - A custom line ending or suffix for the generated text.\n\t * @throws {Error} If the provided format is invalid.\n\t */\n\tconstructor(\n\t\toptions: GeneratorOptions = {},\n\t\tpublic format: LoremFormat = FORMAT_PLAIN,\n\t\tpublic suffix?: string\n\t) {\n\t\tif (FORMATS.indexOf(format.toLowerCase()) === -1) {\n\t\t\tthrow new Error(\n\t\t\t\t`${format} is an invalid format. Please use ${FORMATS.join(\" or \")}.`\n\t\t\t);\n\t\t}\n\t\tthis.generator = new Generator(options);\n\t\tthis.suffix = suffix;\n\t}\n\n\t/**\n\t * Determines the appropriate line ending based on the environment and suffix.\n\t *\n\t * @returns {string} The line ending to use.\n\t */\n\tpublic getLineEnding(): string {\n\t\tif (this.suffix) {\n\t\t\treturn this.suffix;\n\t\t}\n\n\t\tif (!isReactNative() && isNode() && isWindows()) {\n\t\t\treturn LINE_ENDINGS.WIN32;\n\t\t}\n\n\t\treturn LINE_ENDINGS.POSIX;\n\t}\n\n\t/**\n\t * Formats a single string based on the specified format (e.g., wraps in HTML tags if needed).\n\t *\n\t * @param {string} str - The string to format.\n\t * @returns {string} The formatted string.\n\t */\n\tpublic formatString(str: string): string {\n\t\tif (this.format === FORMAT_HTML) {\n\t\t\treturn `<p>${str}</p>`;\n\t\t}\n\t\treturn str;\n\t}\n\n\t/**\n\t * Formats an array of strings based on the specified format.\n\t *\n\t * @param {string[]} strings - The array of strings to format.\n\t * @returns {string[]} The array of formatted strings.\n\t */\n\tpublic formatStrings(strings: string[]): string[] {\n\t\treturn strings.map((str) => this.formatString(str));\n\t}\n\n\t/**\n\t * Generates a specified number of words and formats them.\n\t *\n\t * @param {number} [num] - The number of words to generate. If not provided, a random number is used.\n\t * @returns {string} A formatted string of generated words.\n\t */\n\tpublic generateWords(num?: number): string {\n\t\treturn this.formatString(this.generator.generateRandomWords(num));\n\t}\n\n\t/**\n\t * Generates a specified number of sentences and formats them.\n\t *\n\t * @param {number} [num] - The number of sentences to generate. If not provided, a random number is used.\n\t * @returns {string} A formatted string of generated sentences.\n\t */\n\tpublic generateSentences(num?: number): string {\n\t\treturn this.formatString(this.generator.generateRandomParagraph(num));\n\t}\n\n\t/**\n\t * Generates a specified number of paragraphs and formats them.\n\t *\n\t * @param {number} num - The number of paragraphs to generate.\n\t * @returns {string} A formatted string of generated paragraphs.\n\t */\n\tpublic generateParagraphs(num: number): string {\n\t\tconst makeString = this.generator.generateRandomParagraph.bind(\n\t\t\tthis.generator\n\t\t);\n\t\treturn this.formatStrings(fillArrayWith(num, makeString)).join(\n\t\t\tthis.getLineEnding()\n\t\t);\n\t}\n}\n\nexport default VeganIpsum;\n","import {\n\tLoremUnit,\n\tLoremFormat,\n\tFORMAT_PLAIN,\n\tUNIT_PARAGRAPHS,\n\tUNIT_SENTENCES,\n\tUNIT_WORDS,\n} from \"./constants\";\nimport { WORDS } from \"./constants/words\";\nimport { Prng } from \"./lib/generator\";\nimport VeganIpsum from \"./lib/VeganIpsum\";\n\n/**\n * Parameters for generating vegan ipsum text.\n */\nexport interface VeganIpsumParams {\n\t/**\n\t * Number of units to generate (e.g., paragraphs, sentences, or words).\n\t * @default 1\n\t */\n\tcount?: number;\n\n\t/**\n\t * Format of the generated text (e.g., plain text or HTML).\n\t * @default FORMAT_PLAIN\n\t */\n\tformat?: LoremFormat;\n\n\t/**\n\t * Minimum number of sentences per paragraph.\n\t * @default 3\n\t */\n\tparagraphLowerBound?: number;\n\n\t/**\n\t * Maximum number of sentences per paragraph.\n\t * @default 7\n\t */\n\tparagraphUpperBound?: number;\n\n\t/**\n\t * Custom random number generator.\n\t */\n\trandom?: Prng;\n\n\t/**\n\t * Minimum number of words per sentence.\n\t * @default 5\n\t */\n\tsentenceLowerBound?: number;\n\n\t/**\n\t * Maximum number of words per sentence.\n\t * @default 15\n\t */\n\tsentenceUpperBound?: number;\n\n\t/**\n\t * Unit type for the generated text (e.g., paragraphs, sentences, or words).\n\t * @default UNIT_SENTENCES\n\t */\n\tunits?: LoremUnit;\n\n\t/**\n\t * Custom word list to use for generating text.\n\t * @default WORDS\n\t */\n\twords?: string[];\n\n\t/**\n\t * Suffix to append to the generated text.\n\t * @default \"\"\n\t */\n\tsuffix?: string;\n}\n\n/**\n * Generates vegan ipsum text based on the provided parameters.\n *\n * @param params - Configuration options for generating vegan ipsum text.\n * @returns Generated vegan ipsum text as a string.\n */\nconst veganIpsum = ({\n\tcount = 1,\n\trandom,\n\tformat = FORMAT_PLAIN,\n\tparagraphLowerBound = 3,\n\tparagraphUpperBound = 7,\n\tsentenceLowerBound = 5,\n\tsentenceUpperBound = 15,\n\tunits = UNIT_SENTENCES,\n\twords = WORDS,\n\tsuffix = \"\",\n}: VeganIpsumParams = {}): string => {\n\tconst options: {\n\t\trandom?: Prng;\n\t\tsentencesPerParagraph: { max: number; min: number };\n\t\twords: string[];\n\t\twordsPerSentence: { max: number; min: number };\n\t} = {\n\t\trandom,\n\t\tsentencesPerParagraph: {\n\t\t\tmax: paragraphUpperBound,\n\t\t\tmin: paragraphLowerBound,\n\t\t},\n\t\twords,\n\t\twordsPerSentence: { max: sentenceUpperBound, min: sentenceLowerBound },\n\t};\n\n\tconst lorem: VeganIpsum = new VeganIpsum(options, format, suffix);\n\n\tswitch (units) {\n\t\tcase UNIT_PARAGRAPHS:\n\t\t\treturn lorem.generateParagraphs(count);\n\t\tcase UNIT_SENTENCES:\n\t\t\treturn lorem.generateSentences(count);\n\t\tcase UNIT_WORDS:\n\t\t\treturn lorem.generateWords(count);\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n};\n\nexport { veganIpsum, VeganIpsum };\n"],"names":["FORMAT_HTML","FORMAT_PLAIN","FORMATS","LINE_ENDINGS","SUPPORTED_PLATFORMS","UNIT_WORDS","UNIT_SENTENCES","UNIT_PARAGRAPHS","DEFAULT_WORDS","VEGAN_WORDS","KINDNESS_WORDS","VEGAN_FOOD_WORDS","VEGGIE_WORDS","WORDS","isNode","isReactNative","isWindows","capitalize","str","trimmed","rangeArray","length","_","index","fillArrayWith","makeString","Generator","sentencesPerParagraph","wordsPerSentence","random","words","min","max","num","accumulator","VeganIpsum","options","format","suffix","strings","veganIpsum","count","paragraphLowerBound","paragraphUpperBound","sentenceLowerBound","sentenceUpperBound","units","lorem"],"mappings":"gFACO,MAAMA,EAAc,OAEdC,EAAe,QAEfC,EAAU,CAACF,EAAaC,CAAY,EAUpCE,EAAe,CAAE,MAAO;AAAA,EAAM,MAAO;AAAA,CAAA,EASrCC,EAAsB,CAClC,OAAQ,SACR,MAAO,QACP,MAAO,OACR,EAcaC,EAAa,QAEbC,EAAiB,YAEjBC,EAAkB,aC3ClBC,EAAgB,CAC5B,KACA,cACA,SACA,UACA,OACA,OACA,OACA,SACA,UACA,cACA,YACA,QACA,YACA,WACA,KACA,QACA,SACA,OACA,KACA,UACA,OACA,OACA,OACA,MACA,KACA,KACA,KACA,YACA,eACA,SACA,KACA,KACA,aACA,QACA,QACA,SACA,UACA,UACA,QACA,QACA,QACA,SACA,OACA,MACA,UACA,QACA,WACA,UACA,WACA,WACA,MACA,OACA,gBACA,OACA,MACA,OACA,SACA,UACA,KACA,QACA,SACA,WACD,EAKaC,EAAc,CAC1B,QACA,QACA,WACA,cACA,YACA,aACA,QACA,YACA,UACA,UACA,QACA,OACA,SACA,QACA,YACA,UACA,OACA,SACA,YACA,cACA,OACA,YACA,SACA,UACA,QACA,SACA,SACA,YACA,QACA,SACA,UACA,QACA,UACA,MACA,OACA,SACA,UACA,UACA,YACA,aACA,UACA,SACA,UACA,QACA,QACA,OACA,SACA,WACA,OACA,UACA,SACA,QACA,OACA,SACA,WACA,UACA,UACA,MACD,EAKaC,EAAiB,CAC7B,WACA,aACA,UACA,QACA,UACA,aACA,OACA,OACA,QACA,UACA,WACA,YACA,cACA,YACA,cACA,UACA,cACA,WACA,WACA,YACA,YACA,gBACA,WACA,QACA,aACA,cACA,eACA,UACA,UACA,WACA,SACA,UACA,QACA,YACD,EAKaC,EAAmB,CAC/B,OACA,SACA,UACA,aACA,UACA,eACA,eACA,YACA,SACA,OACA,SACA,OACA,WACA,MACA,OACA,UACA,UACA,cACA,eACA,cACA,UACA,WACA,QACA,OACA,UACA,UACA,UACA,QACA,WACD,EAKaC,EAAe,CAC3B,WACA,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"}