@helloao/tools 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/cjs/generation/api.cjs +727 -2
  2. package/dist/cjs/generation/api.cjs.map +2 -2
  3. package/dist/cjs/generation/audio.cjs +52 -5
  4. package/dist/cjs/generation/audio.cjs.map +2 -2
  5. package/dist/cjs/generation/book-order.cjs +1 -1
  6. package/dist/cjs/generation/book-order.cjs.map +2 -2
  7. package/dist/cjs/generation/common-types.cjs +651 -0
  8. package/dist/cjs/generation/common-types.cjs.map +2 -2
  9. package/dist/cjs/generation/dataset.cjs +31 -8
  10. package/dist/cjs/generation/dataset.cjs.map +2 -2
  11. package/dist/cjs/index.cjs.map +1 -1
  12. package/dist/cjs/log.cjs.map +1 -1
  13. package/dist/cjs/parser/codex-parser.cjs.map +1 -1
  14. package/dist/cjs/parser/commentary-csv-parser.cjs.map +1 -1
  15. package/dist/cjs/parser/iterators.cjs.map +1 -1
  16. package/dist/cjs/parser/lockman-parser.cjs +334 -0
  17. package/dist/cjs/parser/lockman-parser.cjs.map +7 -0
  18. package/dist/cjs/parser/tyndale-xml-parser.cjs.map +1 -1
  19. package/dist/cjs/parser/types.cjs.map +1 -1
  20. package/dist/cjs/parser/usfm-parser.cjs.map +1 -1
  21. package/dist/cjs/parser/usx-parser.cjs +24 -7
  22. package/dist/cjs/parser/usx-parser.cjs.map +2 -2
  23. package/dist/cjs/utils.cjs +152 -0
  24. package/dist/cjs/utils.cjs.map +3 -3
  25. package/dist/esm/generation/api.js +696 -2
  26. package/dist/esm/generation/api.js.map +2 -2
  27. package/dist/esm/generation/audio.js +46 -3
  28. package/dist/esm/generation/audio.js.map +2 -2
  29. package/dist/esm/generation/book-order.js +1 -1
  30. package/dist/esm/generation/book-order.js.map +2 -2
  31. package/dist/esm/generation/common-types.js +590 -0
  32. package/dist/esm/generation/common-types.js.map +3 -3
  33. package/dist/esm/generation/dataset.js +29 -8
  34. package/dist/esm/generation/dataset.js.map +2 -2
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/log.js.map +1 -1
  37. package/dist/esm/parser/codex-parser.js.map +1 -1
  38. package/dist/esm/parser/commentary-csv-parser.js.map +1 -1
  39. package/dist/esm/parser/iterators.js.map +1 -1
  40. package/dist/esm/parser/lockman-parser.js +306 -0
  41. package/dist/esm/parser/lockman-parser.js.map +7 -0
  42. package/dist/esm/parser/tyndale-xml-parser.js.map +1 -1
  43. package/dist/esm/parser/usfm-parser.js.map +1 -1
  44. package/dist/esm/parser/usx-parser.js +24 -7
  45. package/dist/esm/parser/usx-parser.js.map +2 -2
  46. package/dist/esm/utils.js +138 -0
  47. package/dist/esm/utils.js.map +2 -2
  48. package/dist/types/generation/api.d.ts +2515 -470
  49. package/dist/types/generation/audio.d.ts +5 -0
  50. package/dist/types/generation/common-types.d.ts +1222 -413
  51. package/dist/types/generation/dataset.d.ts +1 -0
  52. package/dist/types/parser/codex-parser.d.ts +18 -138
  53. package/dist/types/parser/lockman-parser.d.ts +14 -0
  54. package/dist/types/parser/types.d.ts +4 -0
  55. package/dist/types/parser/usx-parser.d.ts +2 -2
  56. package/dist/types/utils.d.ts +223 -18
  57. package/package.json +5 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../utils.ts"],
4
- "sourcesContent": ["/**\n * Normalizes the given language code into a ISO 639 code.\n * @param language The language code to normalize.\n */\nexport function normalizeLanguage(language: string): string {\n return language;\n}\n\n/**\n * The map of translation IDs from fetch.bible to their translation ID in the API.\n */\nconst TRANSLATION_ID_MAP: Map<string, string> = new Map([\n ['eng_bsb', 'BSB'],\n ['arb_nav', 'ARBNAV'],\n ['eng_webp', 'ENGWEBP'],\n ['hin_irv', 'HINIRV'],\n ['hbo_mas', 'HBOMAS'],\n ['eng_drv', 'eng_dra'],\n]);\n\n/**\n * Gets the ID of the translation.\n * @param translation The translation to get the ID for.\n */\nexport function getTranslationId(translationId: string): string {\n return TRANSLATION_ID_MAP.get(translationId) ?? translationId;\n}\n\nexport function isEmptyOrWhitespace(str: string | null | undefined): boolean {\n return !str || /^\\s*$/.test(str);\n}\n\nexport function getFirstNonEmpty<T extends string>(...values: T[]): T {\n for (let value of values) {\n if (!isEmptyOrWhitespace(value)) {\n return value;\n }\n }\n\n throw new Error('All values are empty or whitespace!');\n}\n\nexport interface VerseRef {\n book: string;\n chapter: number;\n verse: number;\n\n /**\n * The rest of the content of the verse.\n */\n content?: string;\n\n /**\n * The chapter that the verse reference ends at.\n */\n endChapter?: number;\n\n /**\n * The verse that the verse reference ends at.\n */\n endVerse?: number;\n}\n\n/**\n * Parses the given verse reference.\n * Formatted like \"GEN 1:1\".\n *\n * @param text The reference to parse.\n */\nexport function parseVerseReference(text: string): VerseRef | null {\n const match = text.match(\n /^\\s*([0-9A-Za-z\\s]+)[\\s\\.]+(\\d+)[:\\.](\\d+)(?:-([0-9]+)(?:[\\s:\\.]([0-9]+))?)?/\n );\n\n if (!match) {\n return null;\n }\n\n const [reference, book, chapterStr, verseStr, endChapterStr, endVerseStr] =\n match;\n\n const chapter = parseInt(chapterStr);\n const verse = parseInt(verseStr);\n\n let endChapter = endChapterStr ? parseInt(endChapterStr) : undefined;\n let endVerse = endVerseStr ? parseInt(endVerseStr) : undefined;\n\n if (endChapter && !endVerse) {\n endVerse = endChapter;\n endChapter = undefined;\n }\n\n if (isNaN(chapter) || isNaN(verse)) {\n return null;\n }\n\n if (reference.length !== text.length) {\n return {\n book: getBookId(book) ?? book,\n chapter,\n verse,\n content: text.substring(reference.length).trim(),\n endChapter,\n endVerse,\n };\n }\n\n return {\n book: getBookId(book) ?? book,\n chapter,\n verse,\n endChapter,\n endVerse,\n };\n}\n\n/**\n * Defines a map that maps the book ID to the USFM Book identifier.\n */\nconst BOOK_ID_MAP: Map<string, string> = new Map([\n ['gen', 'GEN'],\n ['genesis', 'GEN'],\n ['exo', 'EXO'],\n ['exodus', 'EXO'],\n ['lev', 'LEV'],\n ['lev', 'LEV'],\n ['laviticus', 'LEV'],\n ['num', 'NUM'],\n ['numbers', 'NUM'],\n ['deu', 'DEU'],\n ['deuteronomy', 'DEU'],\n ['jos', 'JOS'],\n ['joshua', 'JOS'],\n ['jdg', 'JDG'],\n ['judges', 'JDG'],\n ['rut', 'RUT'],\n ['ruth', 'RUT'],\n ['1sa', '1SA'],\n ['1samuel', '1SA'],\n ['2sa', '2SA'],\n ['2samuel', '2SA'],\n ['1ki', '1KI'],\n ['1kings', '1KI'],\n ['1kgs', '1KI'],\n ['2ki', '2KI'],\n ['2kings', '2KI'],\n ['2kgs', '2KI'],\n ['1ch', '1CH'],\n ['1chronicles', '1CH'],\n ['chronicles1', '1CH'],\n ['2ch', '2CH'],\n ['2chronicles', '2CH'],\n ['chronicles2', '2CH'],\n ['ezr', 'EZR'],\n ['ezra', 'EZR'],\n ['neh', 'NEH'],\n ['nehemiah', 'NEH'],\n ['est', 'EST'],\n ['ester', 'EST'],\n ['job', 'JOB'],\n ['ps', 'PSA'],\n ['psa', 'PSA'],\n ['psalms', 'PSA'],\n ['psalm', 'PSA'],\n ['pr', 'PRO'],\n ['pro', 'PRO'],\n ['proverbs', 'PRO'],\n ['ecc', 'ECC'],\n ['ecclesiastes', 'ECC'],\n ['eccl', 'ECC'],\n ['sng', 'SNG'],\n ['song', 'SNG'],\n ['songofsolomon', 'SNG'],\n ['isa', 'ISA'],\n ['isaiah', 'ISA'],\n ['jer', 'JER'],\n ['jeremiah', 'JER'],\n ['lam', 'LAM'],\n ['lamentations', 'LAM'],\n ['ezk', 'EZK'],\n ['ezekiel', 'EZK'],\n ['ezek', 'EZK'],\n ['dan', 'DAN'],\n ['daniel', 'DAN'],\n ['hos', 'HOS'],\n ['hosea', 'HOS'],\n ['jol', 'JOL'],\n ['joel', 'JOL'],\n ['amo', 'AMO'],\n ['amos', 'AMO'],\n ['oba', 'OBA'],\n ['obadiah', 'OBA'],\n ['jon', 'JON'],\n ['jonah', 'JON'],\n ['mic', 'MIC'],\n ['micah', 'MIC'],\n ['nam', 'NAM'],\n ['nahum', 'NAM'],\n ['nah', 'NAM'],\n ['hab', 'HAB'],\n ['habakkuk', 'HAB'],\n ['zep', 'ZEP'],\n ['zepaniah', 'ZEP'],\n ['hag', 'HAG'],\n ['haggai', 'HAG'],\n ['zec', 'ZEC'],\n ['zechariah', 'ZEC'],\n ['mal', 'MAL'],\n ['malachi', 'MAL'],\n ['mat', 'MAT'],\n ['matthew', 'MAT'],\n ['mrk', 'MRK'],\n ['mark', 'MRK'],\n ['luk', 'LUK'],\n ['luke', 'LUK'],\n ['jhn', 'JHN'],\n ['john', 'JHN'],\n ['act', 'ACT'],\n ['acts', 'ACT'],\n ['rom', 'ROM'],\n ['romans', 'ROM'],\n ['1co', '1CO'],\n ['1corinthians', '1CO'],\n ['2co', '2CO'],\n ['2corinthians', '2CO'],\n ['gal', 'GAL'],\n ['galatians', 'GAL'],\n ['eph', 'EPH'],\n ['ephesians', 'EPH'],\n ['php', 'PHP'],\n ['philippians', 'PHP'],\n ['phil', 'PHP'],\n ['col', 'COL'],\n ['colossians', 'COL'],\n ['1th', '1TH'],\n ['1thessalonians', '1TH'],\n ['2th', '2TH'],\n ['2thessalonians', '2TH'],\n ['1ti', '1TI'],\n ['1timothy', '1TI'],\n ['2ti', '2TI'],\n ['2timothy', '2TI'],\n ['tit', 'TIT'],\n ['titus', 'TIT'],\n ['phm', 'PHM'],\n ['philemon', 'PHM'],\n ['phlm', 'PHM'],\n ['heb', 'HEB'],\n ['hebrews', 'HEB'],\n ['jas', 'JAS'],\n ['james', 'JAS'],\n ['1pe', '1PE'],\n ['1peter', '1PE'],\n ['2pe', '2PE'],\n ['2peter', '2PE'],\n ['1jn', '1JN'],\n ['1john', '1JN'],\n ['2jn', '2JN'],\n ['2john', '2JN'],\n ['3jn', '3JN'],\n ['3john', '3JN'],\n ['jud', 'JUD'],\n ['jude', 'JUD'],\n ['rev', 'REV'],\n ['revelation', 'REV'],\n]);\n\n/**\n * Gets the ID of the given book.\n * Returns null if the ID could not be found.\n * @param book The name/ID of the book.\n */\nexport function getBookId(book: string): string | null {\n const bookLower = book.toLowerCase().replaceAll(/\\s+/g, '');\n\n const id = BOOK_ID_MAP.get(bookLower);\n if (id) {\n return id;\n }\n\n for (let [key, id] of BOOK_ID_MAP) {\n if (bookLower.startsWith(key)) {\n return id;\n }\n }\n\n return null;\n}\n\n/**\n * A brief list of verses which may appear in some older translations\n * but are not present in more modern translations.\n */\nexport const KNOWN_SKIPPED_VERSES = new Set([\n 'MAT 12:47',\n 'MAT 17:21',\n 'MAT 18:11',\n 'MAT 23:14',\n 'MRK 7:16',\n 'MRK 9:44',\n 'MRK 9:46',\n 'MRK 11:26',\n 'LUK 17:36',\n 'LUK 23:17',\n 'JHN 5:4',\n 'ACT 8:37',\n 'ACT 15:34',\n 'ACT 24:7',\n 'ACT 28:29',\n 'ROM 16:24',\n]);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import z from \"zod\";\r\n\r\n/**\r\n * Normalizes the given language code into a ISO 639 code.\r\n * @param language The language code to normalize.\r\n */\r\nexport function normalizeLanguage(language: string): string {\r\n return language;\r\n}\r\n\r\n/**\r\n * The map of translation IDs from fetch.bible to their translation ID in the API.\r\n */\r\nconst TRANSLATION_ID_MAP: Map<string, string> = new Map([\r\n ['eng_bsb', 'BSB'],\r\n ['arb_nav', 'ARBNAV'],\r\n ['eng_webp', 'ENGWEBP'],\r\n ['hin_irv', 'HINIRV'],\r\n ['hbo_mas', 'HBOMAS'],\r\n ['eng_drv', 'eng_dra'],\r\n]);\r\n\r\n/**\r\n * Gets the ID of the translation.\r\n * @param translation The translation to get the ID for.\r\n */\r\nexport function getTranslationId(translationId: string): string {\r\n return TRANSLATION_ID_MAP.get(translationId) ?? translationId;\r\n}\r\n\r\nexport function isEmptyOrWhitespace(str: string | null | undefined): boolean {\r\n return !str || /^\\s*$/.test(str);\r\n}\r\n\r\nexport function getFirstNonEmpty<T extends string>(...values: T[]): T {\r\n for (let value of values) {\r\n if (!isEmptyOrWhitespace(value)) {\r\n return value;\r\n }\r\n }\r\n\r\n throw new Error('All values are empty or whitespace!');\r\n}\r\n\r\n\r\n/**\r\n * Defines a Zod schema for all USFM book IDs.\r\n */\r\nexport const BookIdSchema = z.enum([\r\n // 'FRT',\r\n 'GEN',\r\n 'EXO',\r\n 'LEV',\r\n 'NUM',\r\n 'DEU',\r\n 'JOS',\r\n 'JDG',\r\n 'RUT',\r\n '1SA',\r\n '2SA',\r\n '1KI',\r\n '2KI',\r\n '1CH',\r\n '2CH',\r\n 'EZR',\r\n 'NEH',\r\n 'EST',\r\n 'JOB',\r\n 'PSA',\r\n 'PRO',\r\n 'ECC',\r\n 'SNG',\r\n 'ISA',\r\n 'JER',\r\n 'LAM',\r\n 'EZK',\r\n 'DAN',\r\n 'HOS',\r\n 'JOL',\r\n 'AMO',\r\n 'OBA',\r\n 'JON',\r\n 'MIC',\r\n 'NAM',\r\n 'HAB',\r\n 'ZEP',\r\n 'HAG',\r\n 'ZEC',\r\n 'MAL',\r\n 'MAT',\r\n 'MRK',\r\n 'LUK',\r\n 'JHN',\r\n 'ACT',\r\n 'ROM',\r\n '1CO',\r\n '2CO',\r\n 'GAL',\r\n 'EPH',\r\n 'PHP',\r\n 'COL',\r\n '1TH',\r\n '2TH',\r\n '1TI',\r\n '2TI',\r\n 'TIT',\r\n 'PHM',\r\n 'HEB',\r\n 'JAS',\r\n '1PE',\r\n '2PE',\r\n '1JN',\r\n '2JN',\r\n '3JN',\r\n 'JUD',\r\n 'REV',\r\n 'TOB',\r\n 'JDT',\r\n 'ESG',\r\n 'WIS',\r\n 'SIR',\r\n 'BAR',\r\n 'LJE',\r\n 'S3Y',\r\n 'SUS',\r\n 'BEL',\r\n '1MA',\r\n '2MA',\r\n '3MA',\r\n '4MA',\r\n '1ES',\r\n '2ES',\r\n 'MAN',\r\n 'PS2',\r\n 'ODA',\r\n 'PSS',\r\n 'EZA',\r\n '5EZ',\r\n '6EZ',\r\n 'DAG',\r\n 'PS3',\r\n '2BA',\r\n 'LBA',\r\n 'JUB',\r\n 'ENO',\r\n '1MQ',\r\n '2MQ',\r\n '3MQ',\r\n 'REP',\r\n '4BA',\r\n 'LAO',\r\n]).meta({\r\n id: \"BookId\",\r\n description: \"IDs for books. Follows the USFM standard (https://ubsicap.github.io/usfm/identification/books.html)\"\r\n});\r\n\r\nexport type BookId = z.infer<typeof BookIdSchema>;\r\n\r\n/**\r\n * Defines a schema for validating verse references.\r\n */\r\nexport const VerseRefSchema = z.object({\r\n book: BookIdSchema,\r\n chapter: z.number().meta({\r\n description: 'The chapter number that the reference starts at.'\r\n }),\r\n verse: z.number().meta({\r\n description: 'The verse number that the reference starts at.'\r\n }),\r\n\r\n /**\r\n * The rest of the content of the verse.\r\n */\r\n content: z.string().optional().meta({\r\n description: 'The rest of the content of the verse reference. This is the part of the string that comes after the verse reference. For example, in \"GEN 1:1 In the beginning, God created the Heavens and the Earth.\", the content would be \"In the beginning, God created the Heavens and the Earth.\"',\r\n }),\r\n\r\n /**\r\n * The chapter that the verse reference ends at.\r\n */\r\n endChapter: z.number().optional().meta({\r\n description: 'The chapter that the verse reference ends at. This is used for references that span multiple chapters, such as \"GEN 1:1-2:3\". In this case, the endChapter would be 2.',\r\n }),\r\n\r\n /**\r\n * The verse that the verse reference ends at.\r\n */\r\n endVerse: z.number().optional().meta({\r\n description: 'The verse that the verse reference ends at. This is used for references that span multiple verses, such as \"GEN 1:1-1:3\". In this case, the endVerse would be 3.',\r\n }),\r\n}).meta({\r\n id: 'VerseRef',\r\n description: 'Defines a schema for verse references. A verse reference is a string that contains a book ID, chapter number, and verse number, such as \"GEN 1:1\". It can also contain an optional content part that comes after the verse reference, such as \"GEN 1:1 In the beginning, God created the Heavens and the Earth.\" It can also contain optional endChapter and endVerse fields for references that span multiple chapters or verses, such as \"GEN 1:1-2:3\".',\r\n});\r\n\r\nexport type VerseRef = z.infer<typeof VerseRefSchema>;\r\n\r\n/**\r\n * Parses the given verse reference.\r\n * Formatted like \"GEN 1:1\".\r\n *\r\n * @param text The reference to parse.\r\n */\r\nexport function parseVerseReference(text: string): VerseRef | null {\r\n const match = text.match(\r\n /^\\s*([0-9A-Za-z\\s]+)[\\s\\.]+(\\d+)[:\\.](\\d+)(?:-([0-9]+)(?:[\\s:\\.]([0-9]+))?)?/\r\n );\r\n\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const [reference, book, chapterStr, verseStr, endChapterStr, endVerseStr] =\r\n match;\r\n\r\n const chapter = parseInt(chapterStr);\r\n const verse = parseInt(verseStr);\r\n\r\n let endChapter = endChapterStr ? parseInt(endChapterStr) : undefined;\r\n let endVerse = endVerseStr ? parseInt(endVerseStr) : undefined;\r\n\r\n if (endChapter && !endVerse) {\r\n endVerse = endChapter;\r\n endChapter = undefined;\r\n }\r\n\r\n if (isNaN(chapter) || isNaN(verse)) {\r\n return null;\r\n }\r\n\r\n if (reference.length !== text.length) {\r\n return {\r\n book: getBookId(book) ?? book as BookId,\r\n chapter,\r\n verse,\r\n content: text.substring(reference.length).trim(),\r\n endChapter,\r\n endVerse,\r\n };\r\n }\r\n\r\n return {\r\n book: getBookId(book) ?? book as BookId,\r\n chapter,\r\n verse,\r\n endChapter,\r\n endVerse,\r\n };\r\n}\r\n\r\n/**\r\n * Defines a map that maps the book ID to the USFM Book identifier.\r\n */\r\nconst BOOK_ID_MAP: Map<string, BookId> = new Map([\r\n ['gen', 'GEN'],\r\n ['genesis', 'GEN'],\r\n ['exo', 'EXO'],\r\n ['exodus', 'EXO'],\r\n ['lev', 'LEV'],\r\n ['lev', 'LEV'],\r\n ['laviticus', 'LEV'],\r\n ['num', 'NUM'],\r\n ['numbers', 'NUM'],\r\n ['deu', 'DEU'],\r\n ['deuteronomy', 'DEU'],\r\n ['jos', 'JOS'],\r\n ['joshua', 'JOS'],\r\n ['jdg', 'JDG'],\r\n ['judges', 'JDG'],\r\n ['rut', 'RUT'],\r\n ['ruth', 'RUT'],\r\n ['1sa', '1SA'],\r\n ['1samuel', '1SA'],\r\n ['2sa', '2SA'],\r\n ['2samuel', '2SA'],\r\n ['1ki', '1KI'],\r\n ['1kings', '1KI'],\r\n ['1kgs', '1KI'],\r\n ['2ki', '2KI'],\r\n ['2kings', '2KI'],\r\n ['2kgs', '2KI'],\r\n ['1ch', '1CH'],\r\n ['1chronicles', '1CH'],\r\n ['chronicles1', '1CH'],\r\n ['2ch', '2CH'],\r\n ['2chronicles', '2CH'],\r\n ['chronicles2', '2CH'],\r\n ['ezr', 'EZR'],\r\n ['ezra', 'EZR'],\r\n ['neh', 'NEH'],\r\n ['nehemiah', 'NEH'],\r\n ['est', 'EST'],\r\n ['ester', 'EST'],\r\n ['job', 'JOB'],\r\n ['ps', 'PSA'],\r\n ['psa', 'PSA'],\r\n ['psalms', 'PSA'],\r\n ['psalm', 'PSA'],\r\n ['pr', 'PRO'],\r\n ['pro', 'PRO'],\r\n ['proverbs', 'PRO'],\r\n ['ecc', 'ECC'],\r\n ['ecclesiastes', 'ECC'],\r\n ['eccl', 'ECC'],\r\n ['sng', 'SNG'],\r\n ['song', 'SNG'],\r\n ['songofsolomon', 'SNG'],\r\n ['isa', 'ISA'],\r\n ['isaiah', 'ISA'],\r\n ['jer', 'JER'],\r\n ['jeremiah', 'JER'],\r\n ['lam', 'LAM'],\r\n ['lamentations', 'LAM'],\r\n ['ezk', 'EZK'],\r\n ['ezekiel', 'EZK'],\r\n ['ezek', 'EZK'],\r\n ['dan', 'DAN'],\r\n ['daniel', 'DAN'],\r\n ['hos', 'HOS'],\r\n ['hosea', 'HOS'],\r\n ['jol', 'JOL'],\r\n ['joel', 'JOL'],\r\n ['amo', 'AMO'],\r\n ['amos', 'AMO'],\r\n ['oba', 'OBA'],\r\n ['obadiah', 'OBA'],\r\n ['jon', 'JON'],\r\n ['jonah', 'JON'],\r\n ['mic', 'MIC'],\r\n ['micah', 'MIC'],\r\n ['nam', 'NAM'],\r\n ['nahum', 'NAM'],\r\n ['nah', 'NAM'],\r\n ['hab', 'HAB'],\r\n ['habakkuk', 'HAB'],\r\n ['zep', 'ZEP'],\r\n ['zepaniah', 'ZEP'],\r\n ['hag', 'HAG'],\r\n ['haggai', 'HAG'],\r\n ['zec', 'ZEC'],\r\n ['zechariah', 'ZEC'],\r\n ['mal', 'MAL'],\r\n ['malachi', 'MAL'],\r\n ['mat', 'MAT'],\r\n ['matthew', 'MAT'],\r\n ['mrk', 'MRK'],\r\n ['mark', 'MRK'],\r\n ['luk', 'LUK'],\r\n ['luke', 'LUK'],\r\n ['jhn', 'JHN'],\r\n ['john', 'JHN'],\r\n ['act', 'ACT'],\r\n ['acts', 'ACT'],\r\n ['rom', 'ROM'],\r\n ['romans', 'ROM'],\r\n ['1co', '1CO'],\r\n ['1corinthians', '1CO'],\r\n ['2co', '2CO'],\r\n ['2corinthians', '2CO'],\r\n ['gal', 'GAL'],\r\n ['galatians', 'GAL'],\r\n ['eph', 'EPH'],\r\n ['ephesians', 'EPH'],\r\n ['php', 'PHP'],\r\n ['philippians', 'PHP'],\r\n ['phil', 'PHP'],\r\n ['col', 'COL'],\r\n ['colossians', 'COL'],\r\n ['1th', '1TH'],\r\n ['1thessalonians', '1TH'],\r\n ['2th', '2TH'],\r\n ['2thessalonians', '2TH'],\r\n ['1ti', '1TI'],\r\n ['1timothy', '1TI'],\r\n ['2ti', '2TI'],\r\n ['2timothy', '2TI'],\r\n ['tit', 'TIT'],\r\n ['titus', 'TIT'],\r\n ['phm', 'PHM'],\r\n ['philemon', 'PHM'],\r\n ['phlm', 'PHM'],\r\n ['heb', 'HEB'],\r\n ['hebrews', 'HEB'],\r\n ['jas', 'JAS'],\r\n ['james', 'JAS'],\r\n ['1pe', '1PE'],\r\n ['1peter', '1PE'],\r\n ['2pe', '2PE'],\r\n ['2peter', '2PE'],\r\n ['1jn', '1JN'],\r\n ['1john', '1JN'],\r\n ['2jn', '2JN'],\r\n ['2john', '2JN'],\r\n ['3jn', '3JN'],\r\n ['3john', '3JN'],\r\n ['jud', 'JUD'],\r\n ['jude', 'JUD'],\r\n ['rev', 'REV'],\r\n ['revelation', 'REV'],\r\n]);\r\n\r\n/**\r\n * Gets the ID of the given book.\r\n * Returns null if the ID could not be found.\r\n * @param book The name/ID of the book.\r\n */\r\nexport function getBookId(book: string): BookId | null {\r\n const bookLower = book.toLowerCase().replaceAll(/\\s+/g, '');\r\n\r\n const id = BOOK_ID_MAP.get(bookLower);\r\n if (id) {\r\n return id;\r\n }\r\n\r\n for (let [key, id] of BOOK_ID_MAP) {\r\n if (bookLower.startsWith(key)) {\r\n return id;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * A brief list of verses which may appear in some older translations\r\n * but are not present in more modern translations.\r\n */\r\nexport const KNOWN_SKIPPED_VERSES = new Set([\r\n 'MAT 12:47',\r\n 'MAT 17:21',\r\n 'MAT 18:11',\r\n 'MAT 23:14',\r\n 'MRK 7:16',\r\n 'MRK 9:44',\r\n 'MRK 9:46',\r\n 'MRK 11:26',\r\n 'LUK 17:36',\r\n 'LUK 23:17',\r\n 'JHN 5:4',\r\n 'ACT 8:37',\r\n 'ACT 15:34',\r\n 'ACT 24:7',\r\n 'ACT 28:29',\r\n 'ROM 16:24',\r\n]);\r\n"],
5
+ "mappings": ";AAAA,OAAO,OAAO;AAMP,gBAAS,kBAAkB,UAA0B;AACxD,SAAO;AACX;AAKA,MAAM,qBAA0C,oBAAI,IAAI;AAAA,EACpD,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,WAAW,QAAQ;AAAA,EACpB,CAAC,YAAY,SAAS;AAAA,EACtB,CAAC,WAAW,QAAQ;AAAA,EACpB,CAAC,WAAW,QAAQ;AAAA,EACpB,CAAC,WAAW,SAAS;AACzB,CAAC;AAMM,gBAAS,iBAAiB,eAA+B;AAC5D,SAAO,mBAAmB,IAAI,aAAa,KAAK;AACpD;AAEO,gBAAS,oBAAoB,KAAyC;AACzE,SAAO,CAAC,OAAO,QAAQ,KAAK,GAAG;AACnC;AAEO,gBAAS,oBAAsC,QAAgB;AAClE,WAAS,SAAS,QAAQ;AACtB,QAAI,CAAC,oBAAoB,KAAK,GAAG;AAC7B,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,qCAAqC;AACzD;AAMO,aAAM,eAAe,EAAE,KAAK;AAAA;AAAA,EAE/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC,EAAE,KAAK;AAAA,EACJ,IAAI;AAAA,EACJ,aAAa;AACjB,CAAC;AAOM,aAAM,iBAAiB,EAAE,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,SAAS,EAAE,OAAO,EAAE,KAAK;AAAA,IACrB,aAAa;AAAA,EACjB,CAAC;AAAA,EACD,OAAO,EAAE,OAAO,EAAE,KAAK;AAAA,IACnB,aAAa;AAAA,EACjB,CAAC;AAAA;AAAA;AAAA;AAAA,EAKD,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK;AAAA,IAChC,aAAa;AAAA,EACjB,CAAC;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK;AAAA,IACnC,aAAa;AAAA,EACjB,CAAC;AAAA;AAAA;AAAA;AAAA,EAKD,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK;AAAA,IACjC,aAAa;AAAA,EACjB,CAAC;AACL,CAAC,EAAE,KAAK;AAAA,EACJ,IAAI;AAAA,EACJ,aAAa;AACjB,CAAC;AAUM,gBAAS,oBAAoB,MAA+B;AAC/D,QAAM,QAAQ,KAAK;AAAA,IACf;AAAA,EACJ;AAEA,MAAI,CAAC,OAAO;AACR,WAAO;AAAA,EACX;AAEA,QAAM,CAAC,WAAW,MAAM,YAAY,UAAU,eAAe,WAAW,IACpE;AAEJ,QAAM,UAAU,SAAS,UAAU;AACnC,QAAM,QAAQ,SAAS,QAAQ;AAE/B,MAAI,aAAa,gBAAgB,SAAS,aAAa,IAAI;AAC3D,MAAI,WAAW,cAAc,SAAS,WAAW,IAAI;AAErD,MAAI,cAAc,CAAC,UAAU;AACzB,eAAW;AACX,iBAAa;AAAA,EACjB;AAEA,MAAI,MAAM,OAAO,KAAK,MAAM,KAAK,GAAG;AAChC,WAAO;AAAA,EACX;AAEA,MAAI,UAAU,WAAW,KAAK,QAAQ;AAClC,WAAO;AAAA,MACH,MAAM,UAAU,IAAI,KAAK;AAAA,MACzB;AAAA,MACA;AAAA,MACA,SAAS,KAAK,UAAU,UAAU,MAAM,EAAE,KAAK;AAAA,MAC/C;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,MAAM,UAAU,IAAI,KAAK;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAKA,MAAM,cAAmC,oBAAI,IAAI;AAAA,EAC7C,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,MAAM,KAAK;AAAA,EACZ,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,MAAM,KAAK;AAAA,EACZ,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,gBAAgB,KAAK;AAAA,EACtB,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,iBAAiB,KAAK;AAAA,EACvB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,gBAAgB,KAAK;AAAA,EACtB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,gBAAgB,KAAK;AAAA,EACtB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,gBAAgB,KAAK;AAAA,EACtB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,cAAc,KAAK;AAAA,EACpB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,kBAAkB,KAAK;AAAA,EACxB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,kBAAkB,KAAK;AAAA,EACxB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,WAAW,KAAK;AAAA,EACjB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,UAAU,KAAK;AAAA,EAChB,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,SAAS,KAAK;AAAA,EACf,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,QAAQ,KAAK;AAAA,EACd,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,cAAc,KAAK;AACxB,CAAC;AAOM,gBAAS,UAAU,MAA6B;AACnD,QAAM,YAAY,KAAK,YAAY,EAAE,WAAW,QAAQ,EAAE;AAE1D,QAAM,KAAK,YAAY,IAAI,SAAS;AACpC,MAAI,IAAI;AACJ,WAAO;AAAA,EACX;AAEA,WAAS,CAAC,KAAKA,GAAE,KAAK,aAAa;AAC/B,QAAI,UAAU,WAAW,GAAG,GAAG;AAC3B,aAAOA;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;AAMO,aAAM,uBAAuB,oBAAI,IAAI;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;",
6
6
  "names": ["id"]
7
7
  }