@helloao/cli 0.0.13 → 0.0.15
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.
- package/dist/cjs/cli.cjs +750 -54
- package/dist/cjs/index.cjs +706 -43
- package/dist/esm/index.js +559 -37
- package/dist/esm/index.js.map +3 -3
- package/dist/types/actions.d.ts +16 -0
- package/dist/types/db.d.ts +26 -6
- package/dist/types/files.d.ts +7 -0
- package/migrations/20251028135135_add_datasets/migration.sql +72 -0
- package/migrations/20251028144932_fix_dataset_types/migration.sql +50 -0
- package/package.json +2 -2
- package/prisma-gen/edge.js +60 -4
- package/prisma-gen/index-browser.js +56 -1
- package/prisma-gen/index.d.ts +14386 -5389
- package/prisma-gen/index.js +60 -4
- package/prisma-gen/wasm.js +56 -1
- package/schema.prisma +104 -0
package/dist/cjs/index.cjs
CHANGED
|
@@ -5627,6 +5627,51 @@ var require_prisma_gen = __commonJS({
|
|
|
5627
5627
|
sha256: "sha256",
|
|
5628
5628
|
verseNumber: "verseNumber"
|
|
5629
5629
|
};
|
|
5630
|
+
exports2.Prisma.DatasetScalarFieldEnum = {
|
|
5631
|
+
id: "id",
|
|
5632
|
+
name: "name",
|
|
5633
|
+
website: "website",
|
|
5634
|
+
licenseUrl: "licenseUrl",
|
|
5635
|
+
licenseNotes: "licenseNotes",
|
|
5636
|
+
englishName: "englishName",
|
|
5637
|
+
language: "language",
|
|
5638
|
+
textDirection: "textDirection",
|
|
5639
|
+
sha256: "sha256"
|
|
5640
|
+
};
|
|
5641
|
+
exports2.Prisma.DatasetBookScalarFieldEnum = {
|
|
5642
|
+
id: "id",
|
|
5643
|
+
datasetId: "datasetId",
|
|
5644
|
+
order: "order",
|
|
5645
|
+
numberOfChapters: "numberOfChapters",
|
|
5646
|
+
sha256: "sha256"
|
|
5647
|
+
};
|
|
5648
|
+
exports2.Prisma.DatasetChapterScalarFieldEnum = {
|
|
5649
|
+
number: "number",
|
|
5650
|
+
bookId: "bookId",
|
|
5651
|
+
datasetId: "datasetId",
|
|
5652
|
+
json: "json",
|
|
5653
|
+
sha256: "sha256"
|
|
5654
|
+
};
|
|
5655
|
+
exports2.Prisma.DatasetChapterVerseScalarFieldEnum = {
|
|
5656
|
+
number: "number",
|
|
5657
|
+
chapterNumber: "chapterNumber",
|
|
5658
|
+
bookId: "bookId",
|
|
5659
|
+
datasetId: "datasetId",
|
|
5660
|
+
contentJson: "contentJson",
|
|
5661
|
+
sha256: "sha256"
|
|
5662
|
+
};
|
|
5663
|
+
exports2.Prisma.DatasetReferenceScalarFieldEnum = {
|
|
5664
|
+
id: "id",
|
|
5665
|
+
datasetId: "datasetId",
|
|
5666
|
+
bookId: "bookId",
|
|
5667
|
+
chapterNumber: "chapterNumber",
|
|
5668
|
+
verseNumber: "verseNumber",
|
|
5669
|
+
referenceBookId: "referenceBookId",
|
|
5670
|
+
referenceChapter: "referenceChapter",
|
|
5671
|
+
referenceVerse: "referenceVerse",
|
|
5672
|
+
endVerseNumber: "endVerseNumber",
|
|
5673
|
+
score: "score"
|
|
5674
|
+
};
|
|
5630
5675
|
exports2.Prisma.SortOrder = {
|
|
5631
5676
|
asc: "asc",
|
|
5632
5677
|
desc: "desc"
|
|
@@ -5649,7 +5694,12 @@ var require_prisma_gen = __commonJS({
|
|
|
5649
5694
|
ChapterAudioUrl: "ChapterAudioUrl",
|
|
5650
5695
|
ChapterVerse: "ChapterVerse",
|
|
5651
5696
|
CommentaryChapterVerse: "CommentaryChapterVerse",
|
|
5652
|
-
ChapterFootnote: "ChapterFootnote"
|
|
5697
|
+
ChapterFootnote: "ChapterFootnote",
|
|
5698
|
+
Dataset: "Dataset",
|
|
5699
|
+
DatasetBook: "DatasetBook",
|
|
5700
|
+
DatasetChapter: "DatasetChapter",
|
|
5701
|
+
DatasetChapterVerse: "DatasetChapterVerse",
|
|
5702
|
+
DatasetReference: "DatasetReference"
|
|
5653
5703
|
};
|
|
5654
5704
|
var config2 = {
|
|
5655
5705
|
"generator": {
|
|
@@ -5686,6 +5736,7 @@ var require_prisma_gen = __commonJS({
|
|
|
5686
5736
|
"db"
|
|
5687
5737
|
],
|
|
5688
5738
|
"activeProvider": "sqlite",
|
|
5739
|
+
"postinstall": false,
|
|
5689
5740
|
"inlineDatasources": {
|
|
5690
5741
|
"db": {
|
|
5691
5742
|
"url": {
|
|
@@ -5694,8 +5745,8 @@ var require_prisma_gen = __commonJS({
|
|
|
5694
5745
|
}
|
|
5695
5746
|
}
|
|
5696
5747
|
},
|
|
5697
|
-
"inlineSchema": 'datasource db {\n provider = "sqlite"\n url = "file:../../bible-api.dev.db"\n}\n\ngenerator client {\n provider = "prisma-client-js"\n output = "./prisma-gen"\n}\n\nmodel Translation {\n id String @id\n name String\n website String\n licenseUrl String\n licenseNotes String?\n shortName String?\n englishName String\n language String\n textDirection String\n\n // The SHA-256 hash of the translation\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\n sha256 String?\n\n books Book[]\n chapters Chapter[]\n verses ChapterVerse[]\n footnotes ChapterFootnote[]\n audioUrls ChapterAudioUrl[]\n}\n\nmodel Commentary {\n id String @id\n name String\n website String\n licenseUrl String\n licenseNotes String?\n englishName String\n language String\n textDirection String\n\n // The SHA-256 hash of the translation\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\n sha256 String?\n\n books CommentaryBook[]\n chapters CommentaryChapter[]\n verses CommentaryChapterVerse[]\n profiles CommentaryProfile[]\n}\n\n// The ebible.org source for a particular translation\n// Contains metadata that is useful for managing downloads\nmodel EBibleSource {\n id String @id\n\n // The URL to the USFM zip file download\n usfmZipUrl String?\n // The ETag of the downloaded USFM zip file\n usfmZipEtag String?\n\n languageCode String\n title String\n shortTitle String?\n textDirection String?\n redistributable Boolean\n description String\n copyright String\n FCBHID String\n updateDate DateTime\n sourceDate DateTime\n\n oldTestamentBooks Int\n oldTestamentChapters Int\n oldTestamentVerses Int\n newTestamentBooks Int\n newTestamentChapters Int\n newTestamentVerses Int\n apocryphaBooks Int\n apocryphaChapters Int\n apocryphaVerses Int\n\n // The ID of the translation that the source is for\n translationId String\n\n // The date that the source was downloaded\n usfmDownloadDate DateTime?\n\n // The path that the USFM was downloaded to\n usfmDownloadPath String?\n\n // The SHA-256 hash of the source\n // Can be used to determine if the source has changed\n sha256 String?\n}\n\n// Files that were input into the API generator\nmodel InputFile {\n // The ID of the translation that the file is for\n translationId String\n\n // The name of the file\n name String\n\n format String\n\n // The SHA-256 hash of the file\n sha256 String\n\n sizeInBytes Int\n\n @@id([translationId, name])\n}\n\nmodel InputFileWarning {\n // The name of the file\n name String\n\n // The type of the warning\n type String\n\n // The message of the warning\n message String\n\n @@id([name, type, message])\n}\n\nmodel Book {\n id String\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n name String\n commonName String\n title String?\n order Int\n\n numberOfChapters Int\n\n isApocryphal Boolean? // Whether the book is an apocryphal book\n\n // The SHA-256 hash of the book\n sha256 String?\n\n chapters Chapter[]\n verses ChapterVerse[]\n footnotes ChapterFootnote[]\n audioUrls ChapterAudioUrl[]\n\n @@id([translationId, id])\n}\n\nmodel CommentaryBook {\n id String\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n name String\n commonName String\n introduction String?\n introductionSummary String?\n order Int\n\n numberOfChapters Int\n\n // The SHA-256 hash of the book\n sha256 String?\n\n chapters CommentaryChapter[]\n verses CommentaryChapterVerse[]\n\n @@id([commentaryId, id])\n}\n\nmodel CommentaryProfile {\n id String\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n subject String\n content String\n\n referenceBook String?\n referenceChapter Int?\n referenceVerse Int?\n referenceEndChapter Int?\n referenceEndVerse Int?\n\n json String // The JSON of the profile\n\n // The SHA-256 hash of the profile\n sha256 String?\n\n @@id([commentaryId, id])\n}\n\nmodel Chapter {\n number Int\n\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n json String // The JSON of the chapter\n\n // The SHA-256 hash of the chapter\n sha256 String?\n\n verses ChapterVerse[]\n footnotes ChapterFootnote[]\n audioUrls ChapterAudioUrl[]\n\n @@id([translationId, bookId, number])\n}\n\nmodel CommentaryChapter {\n number Int\n\n bookId String\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n introduction String?\n json String // The JSON of the chapter\n\n // The SHA-256 hash of the chapter\n sha256 String?\n\n verses CommentaryChapterVerse[]\n\n @@id([commentaryId, bookId, number])\n}\n\nmodel ChapterAudioUrl {\n number Int\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n chapter Chapter @relation(fields: [translationId, bookId, number], references: [translationId, bookId, number])\n\n reader String\n url String\n\n @@id([translationId, bookId, number, reader])\n}\n\nmodel ChapterVerse {\n number Int\n\n chapterNumber Int\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\n\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n text String // The text of the verse\n contentJson String // The JSON of the verse content\n\n // The SHA-256 hash of the verse\n sha256 String?\n\n footnotes ChapterFootnote[]\n\n @@id([translationId, bookId, chapterNumber, number])\n}\n\nmodel CommentaryChapterVerse {\n number Int\n\n chapterNumber Int\n chapter CommentaryChapter @relation(fields: [commentaryId, bookId, chapterNumber], references: [commentaryId, bookId, number])\n\n bookId String\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n text String // The text of the verse\n contentJson String // The JSON of the verse content\n\n // The SHA-256 hash of the verse\n sha256 String?\n\n @@id([commentaryId, bookId, chapterNumber, number])\n}\n\nmodel ChapterFootnote {\n id Int\n\n chapterNumber Int\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\n\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n text String\n\n // The SHA-256 hash of the footnote\n sha256 String?\n\n verseNumber Int?\n verse ChapterVerse? @relation(fields: [translationId, bookId, chapterNumber, verseNumber], references: [translationId, bookId, chapterNumber, number])\n\n @@id([translationId, bookId, chapterNumber, id])\n}\n',
|
|
5698
|
-
"inlineSchemaHash": "
|
|
5748
|
+
"inlineSchema": 'datasource db {\n provider = "sqlite"\n url = "file:../../bible-api.dev.db"\n}\n\ngenerator client {\n provider = "prisma-client-js"\n output = "./prisma-gen"\n}\n\nmodel Translation {\n id String @id\n name String\n website String\n licenseUrl String\n licenseNotes String?\n shortName String?\n englishName String\n language String\n textDirection String\n\n // The SHA-256 hash of the translation\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\n sha256 String?\n\n books Book[]\n chapters Chapter[]\n verses ChapterVerse[]\n footnotes ChapterFootnote[]\n audioUrls ChapterAudioUrl[]\n}\n\nmodel Commentary {\n id String @id\n name String\n website String\n licenseUrl String\n licenseNotes String?\n englishName String\n language String\n textDirection String\n\n // The SHA-256 hash of the translation\n // includes everything about the translation, including the books, chapters, verses, footnotes, etc.\n sha256 String?\n\n books CommentaryBook[]\n chapters CommentaryChapter[]\n verses CommentaryChapterVerse[]\n profiles CommentaryProfile[]\n}\n\n// The ebible.org source for a particular translation\n// Contains metadata that is useful for managing downloads\nmodel EBibleSource {\n id String @id\n\n // The URL to the USFM zip file download\n usfmZipUrl String?\n // The ETag of the downloaded USFM zip file\n usfmZipEtag String?\n\n languageCode String\n title String\n shortTitle String?\n textDirection String?\n redistributable Boolean\n description String\n copyright String\n FCBHID String\n updateDate DateTime\n sourceDate DateTime\n\n oldTestamentBooks Int\n oldTestamentChapters Int\n oldTestamentVerses Int\n newTestamentBooks Int\n newTestamentChapters Int\n newTestamentVerses Int\n apocryphaBooks Int\n apocryphaChapters Int\n apocryphaVerses Int\n\n // The ID of the translation that the source is for\n translationId String\n\n // The date that the source was downloaded\n usfmDownloadDate DateTime?\n\n // The path that the USFM was downloaded to\n usfmDownloadPath String?\n\n // The SHA-256 hash of the source\n // Can be used to determine if the source has changed\n sha256 String?\n}\n\n// Files that were input into the API generator\nmodel InputFile {\n // The ID of the translation that the file is for\n translationId String\n\n // The name of the file\n name String\n\n format String\n\n // The SHA-256 hash of the file\n sha256 String\n\n sizeInBytes Int\n\n @@id([translationId, name])\n}\n\nmodel InputFileWarning {\n // The name of the file\n name String\n\n // The type of the warning\n type String\n\n // The message of the warning\n message String\n\n @@id([name, type, message])\n}\n\nmodel Book {\n id String\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n name String\n commonName String\n title String?\n order Int\n\n numberOfChapters Int\n\n isApocryphal Boolean? // Whether the book is an apocryphal book\n\n // The SHA-256 hash of the book\n sha256 String?\n\n chapters Chapter[]\n verses ChapterVerse[]\n footnotes ChapterFootnote[]\n audioUrls ChapterAudioUrl[]\n\n @@id([translationId, id])\n}\n\nmodel CommentaryBook {\n id String\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n name String\n commonName String\n introduction String?\n introductionSummary String?\n order Int\n\n numberOfChapters Int\n\n // The SHA-256 hash of the book\n sha256 String?\n\n chapters CommentaryChapter[]\n verses CommentaryChapterVerse[]\n\n @@id([commentaryId, id])\n}\n\nmodel CommentaryProfile {\n id String\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n subject String\n content String\n\n referenceBook String?\n referenceChapter Int?\n referenceVerse Int?\n referenceEndChapter Int?\n referenceEndVerse Int?\n\n json String // The JSON of the profile\n\n // The SHA-256 hash of the profile\n sha256 String?\n\n @@id([commentaryId, id])\n}\n\nmodel Chapter {\n number Int\n\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n json String // The JSON of the chapter\n\n // The SHA-256 hash of the chapter\n sha256 String?\n\n verses ChapterVerse[]\n footnotes ChapterFootnote[]\n audioUrls ChapterAudioUrl[]\n\n @@id([translationId, bookId, number])\n}\n\nmodel CommentaryChapter {\n number Int\n\n bookId String\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n introduction String?\n json String // The JSON of the chapter\n\n // The SHA-256 hash of the chapter\n sha256 String?\n\n verses CommentaryChapterVerse[]\n\n @@id([commentaryId, bookId, number])\n}\n\nmodel ChapterAudioUrl {\n number Int\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n chapter Chapter @relation(fields: [translationId, bookId, number], references: [translationId, bookId, number])\n\n reader String\n url String\n\n @@id([translationId, bookId, number, reader])\n}\n\nmodel ChapterVerse {\n number Int\n\n chapterNumber Int\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\n\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n text String // The text of the verse\n contentJson String // The JSON of the verse content\n\n // The SHA-256 hash of the verse\n sha256 String?\n\n footnotes ChapterFootnote[]\n\n @@id([translationId, bookId, chapterNumber, number])\n}\n\nmodel CommentaryChapterVerse {\n number Int\n\n chapterNumber Int\n chapter CommentaryChapter @relation(fields: [commentaryId, bookId, chapterNumber], references: [commentaryId, bookId, number])\n\n bookId String\n book CommentaryBook @relation(fields: [commentaryId, bookId], references: [commentaryId, id])\n\n commentaryId String\n commentary Commentary @relation(fields: [commentaryId], references: [id])\n\n text String // The text of the verse\n contentJson String // The JSON of the verse content\n\n // The SHA-256 hash of the verse\n sha256 String?\n\n @@id([commentaryId, bookId, chapterNumber, number])\n}\n\nmodel ChapterFootnote {\n id Int\n\n chapterNumber Int\n chapter Chapter @relation(fields: [translationId, bookId, chapterNumber], references: [translationId, bookId, number])\n\n bookId String\n book Book @relation(fields: [translationId, bookId], references: [translationId, id])\n\n translationId String\n translation Translation @relation(fields: [translationId], references: [id])\n\n text String\n\n // The SHA-256 hash of the footnote\n sha256 String?\n\n verseNumber Int?\n verse ChapterVerse? @relation(fields: [translationId, bookId, chapterNumber, verseNumber], references: [translationId, bookId, chapterNumber, number])\n\n @@id([translationId, bookId, chapterNumber, id])\n}\n\nmodel Dataset {\n id String @id\n name String\n website String\n licenseUrl String\n licenseNotes String?\n englishName String\n language String\n textDirection String\n\n sha256 String?\n\n books DatasetBook[]\n chapters DatasetChapter[]\n verses DatasetChapterVerse[]\n references DatasetReference[]\n}\n\nmodel DatasetBook {\n id String\n\n datasetId String\n dataset Dataset @relation(fields: [datasetId], references: [id])\n\n order Int\n\n numberOfChapters Int\n\n // The SHA-256 hash of the book\n sha256 String?\n\n chapters DatasetChapter[]\n verses DatasetChapterVerse[]\n references DatasetReference[]\n\n @@id([datasetId, id])\n}\n\nmodel DatasetChapter {\n number Int\n\n bookId String\n book DatasetBook @relation(fields: [datasetId, bookId], references: [datasetId, id])\n\n datasetId String\n dataset Dataset @relation(fields: [datasetId], references: [id])\n\n json String // The JSON of the chapter\n\n // The SHA-256 hash of the chapter\n sha256 String?\n\n verses DatasetChapterVerse[]\n references DatasetReference[]\n\n @@id([datasetId, bookId, number])\n}\n\nmodel DatasetChapterVerse {\n number Int\n\n chapterNumber Int\n chapter DatasetChapter @relation(fields: [datasetId, bookId, chapterNumber], references: [datasetId, bookId, number])\n\n bookId String\n book DatasetBook @relation(fields: [datasetId, bookId], references: [datasetId, id])\n\n datasetId String\n dataset Dataset @relation(fields: [datasetId], references: [id])\n\n contentJson String // The JSON of the verse content\n\n // The SHA-256 hash of the verse\n sha256 String?\n\n references DatasetReference[]\n\n @@id([datasetId, bookId, chapterNumber, number])\n}\n\nmodel DatasetReference {\n id Int @id @default(autoincrement())\n\n datasetId String\n dataset Dataset @relation(fields: [datasetId], references: [id])\n\n bookId String\n book DatasetBook @relation(fields: [datasetId, bookId], references: [datasetId, id])\n\n chapterNumber Int\n chapter DatasetChapter @relation(fields: [datasetId, bookId, chapterNumber], references: [datasetId, bookId, number])\n\n verseNumber Int\n verse DatasetChapterVerse @relation(fields: [datasetId, bookId, chapterNumber, verseNumber], references: [datasetId, bookId, chapterNumber, number])\n\n referenceBookId String\n referenceChapter Int\n referenceVerse Int\n\n endVerseNumber Int?\n score Int?\n}\n',
|
|
5749
|
+
"inlineSchemaHash": "7a10a7fbc4f723508362c0cc38d7d07c19ce68e1db29be580483fe78ade713d3",
|
|
5699
5750
|
"copyEngine": true
|
|
5700
5751
|
};
|
|
5701
5752
|
var fs2 = require("fs");
|
|
@@ -5711,7 +5762,7 @@ var require_prisma_gen = __commonJS({
|
|
|
5711
5762
|
config2.dirname = path5.join(process.cwd(), alternativePath);
|
|
5712
5763
|
config2.isBundled = true;
|
|
5713
5764
|
}
|
|
5714
|
-
config2.runtimeDataModel = JSON.parse('{"models":{"Translation":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"website","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseUrl","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseNotes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"shortName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"englishName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"language","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"books","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"ChapterVerseToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"ChapterFootnoteToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"audioUrls","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterAudioUrl","relationName":"ChapterAudioUrlToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Commentary":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"website","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseUrl","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseNotes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"englishName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"language","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"books","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryBook","relationName":"CommentaryToCommentaryBook","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapter","relationName":"CommentaryToCommentaryChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapterVerse","relationName":"CommentaryToCommentaryChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"profiles","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryProfile","relationName":"CommentaryToCommentaryProfile","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"EBibleSource":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"usfmZipUrl","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"usfmZipEtag","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"languageCode","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"shortTitle","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"redistributable","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Boolean","isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"copyright","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"FCBHID","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"updateDate","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","isGenerated":false,"isUpdatedAt":false},{"name":"sourceDate","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","isGenerated":false,"isUpdatedAt":false},{"name":"oldTestamentBooks","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"oldTestamentChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"oldTestamentVerses","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"newTestamentBooks","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"newTestamentChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"newTestamentVerses","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"apocryphaBooks","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"apocryphaChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"apocryphaVerses","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"usfmDownloadDate","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","isGenerated":false,"isUpdatedAt":false},{"name":"usfmDownloadPath","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"InputFile":{"dbName":null,"fields":[{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"format","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sizeInBytes","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","name"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"InputFileWarning":{"dbName":null,"fields":[{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"type","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"message","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["name","type","message"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Book":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"BookToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commonName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"numberOfChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"isApocryphal","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Boolean","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"BookToChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"BookToChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"BookToChapterFootnote","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"audioUrls","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterAudioUrl","relationName":"BookToChapterAudioUrl","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryBook":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryBook","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commonName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"introduction","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"introductionSummary","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"numberOfChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapter","relationName":"CommentaryBookToCommentaryChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapterVerse","relationName":"CommentaryBookToCommentaryChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryProfile":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryProfile","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"subject","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"content","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"referenceBook","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"referenceChapter","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceVerse","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceEndChapter","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceEndVerse","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Chapter":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapter","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"ChapterToChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"ChapterToChapterFootnote","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"audioUrls","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterAudioUrl","relationName":"ChapterToChapterAudioUrl","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryChapter":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryBook","relationName":"CommentaryBookToCommentaryChapter","relationFromFields":["commentaryId","bookId"],"relationToFields":["commentaryId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryChapter","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"introduction","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapterVerse","relationName":"CommentaryChapterToCommentaryChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","bookId","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ChapterAudioUrl":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapterAudioUrl","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterAudioUrlToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToChapterAudioUrl","relationFromFields":["translationId","bookId","number"],"relationToFields":["translationId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"reader","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"url","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","number","reader"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ChapterVerse":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToChapterVerse","relationFromFields":["translationId","bookId","chapterNumber"],"relationToFields":["translationId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapterVerse","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterVerseToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"text","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"contentJson","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"ChapterFootnoteToChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","chapterNumber","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryChapterVerse":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapter","relationName":"CommentaryChapterToCommentaryChapterVerse","relationFromFields":["commentaryId","bookId","chapterNumber"],"relationToFields":["commentaryId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryBook","relationName":"CommentaryBookToCommentaryChapterVerse","relationFromFields":["commentaryId","bookId"],"relationToFields":["commentaryId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryChapterVerse","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"text","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"contentJson","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","bookId","chapterNumber","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ChapterFootnote":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToChapterFootnote","relationFromFields":["translationId","bookId","chapterNumber"],"relationToFields":["translationId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapterFootnote","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterFootnoteToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"text","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verseNumber","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"verse","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"ChapterFootnoteToChapterVerse","relationFromFields":["translationId","bookId","chapterNumber","verseNumber"],"relationToFields":["translationId","bookId","chapterNumber","number"],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","chapterNumber","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false}},"enums":{},"types":{}}');
|
|
5765
|
+
config2.runtimeDataModel = JSON.parse('{"models":{"Translation":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"website","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseUrl","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseNotes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"shortName","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"englishName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"language","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"books","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"ChapterVerseToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"ChapterFootnoteToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"audioUrls","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterAudioUrl","relationName":"ChapterAudioUrlToTranslation","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Commentary":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"website","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseUrl","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseNotes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"englishName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"language","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"books","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryBook","relationName":"CommentaryToCommentaryBook","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapter","relationName":"CommentaryToCommentaryChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapterVerse","relationName":"CommentaryToCommentaryChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"profiles","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryProfile","relationName":"CommentaryToCommentaryProfile","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"EBibleSource":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"usfmZipUrl","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"usfmZipEtag","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"languageCode","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"shortTitle","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"redistributable","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Boolean","isGenerated":false,"isUpdatedAt":false},{"name":"description","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"copyright","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"FCBHID","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"updateDate","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","isGenerated":false,"isUpdatedAt":false},{"name":"sourceDate","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","isGenerated":false,"isUpdatedAt":false},{"name":"oldTestamentBooks","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"oldTestamentChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"oldTestamentVerses","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"newTestamentBooks","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"newTestamentChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"newTestamentVerses","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"apocryphaBooks","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"apocryphaChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"apocryphaVerses","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"usfmDownloadDate","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DateTime","isGenerated":false,"isUpdatedAt":false},{"name":"usfmDownloadPath","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"InputFile":{"dbName":null,"fields":[{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"format","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sizeInBytes","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","name"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"InputFileWarning":{"dbName":null,"fields":[{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"type","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"message","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["name","type","message"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Book":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"BookToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commonName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"title","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"numberOfChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"isApocryphal","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Boolean","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"BookToChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"BookToChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"BookToChapterFootnote","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"audioUrls","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterAudioUrl","relationName":"BookToChapterAudioUrl","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryBook":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryBook","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commonName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"introduction","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"introductionSummary","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"numberOfChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapter","relationName":"CommentaryBookToCommentaryChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapterVerse","relationName":"CommentaryBookToCommentaryChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryProfile":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryProfile","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"subject","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"content","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"referenceBook","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"referenceChapter","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceVerse","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceEndChapter","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceEndVerse","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Chapter":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapter","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"ChapterToChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"ChapterToChapterFootnote","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"audioUrls","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterAudioUrl","relationName":"ChapterToChapterAudioUrl","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryChapter":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryBook","relationName":"CommentaryBookToCommentaryChapter","relationFromFields":["commentaryId","bookId"],"relationToFields":["commentaryId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryChapter","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"introduction","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapterVerse","relationName":"CommentaryChapterToCommentaryChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","bookId","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ChapterAudioUrl":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapterAudioUrl","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterAudioUrlToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToChapterAudioUrl","relationFromFields":["translationId","bookId","number"],"relationToFields":["translationId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"reader","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"url","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","number","reader"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ChapterVerse":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToChapterVerse","relationFromFields":["translationId","bookId","chapterNumber"],"relationToFields":["translationId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapterVerse","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterVerseToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"text","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"contentJson","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"footnotes","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterFootnote","relationName":"ChapterFootnoteToChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","chapterNumber","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"CommentaryChapterVerse":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryChapter","relationName":"CommentaryChapterToCommentaryChapterVerse","relationFromFields":["commentaryId","bookId","chapterNumber"],"relationToFields":["commentaryId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"CommentaryBook","relationName":"CommentaryBookToCommentaryChapterVerse","relationFromFields":["commentaryId","bookId"],"relationToFields":["commentaryId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"commentaryId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"commentary","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Commentary","relationName":"CommentaryToCommentaryChapterVerse","relationFromFields":["commentaryId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"text","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"contentJson","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["commentaryId","bookId","chapterNumber","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"ChapterFootnote":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Chapter","relationName":"ChapterToChapterFootnote","relationFromFields":["translationId","bookId","chapterNumber"],"relationToFields":["translationId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Book","relationName":"BookToChapterFootnote","relationFromFields":["translationId","bookId"],"relationToFields":["translationId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"translationId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"translation","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Translation","relationName":"ChapterFootnoteToTranslation","relationFromFields":["translationId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"text","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verseNumber","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"verse","kind":"object","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"ChapterVerse","relationName":"ChapterFootnoteToChapterVerse","relationFromFields":["translationId","bookId","chapterNumber","verseNumber"],"relationToFields":["translationId","bookId","chapterNumber","number"],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["translationId","bookId","chapterNumber","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"Dataset":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"name","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"website","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseUrl","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"licenseNotes","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"englishName","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"language","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"textDirection","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"books","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetBook","relationName":"DatasetToDatasetBook","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapter","relationName":"DatasetToDatasetChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapterVerse","relationName":"DatasetToDatasetChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"references","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetReference","relationName":"DatasetToDatasetReference","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"DatasetBook":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"datasetId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"dataset","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Dataset","relationName":"DatasetToDatasetBook","relationFromFields":["datasetId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"order","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"numberOfChapters","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"chapters","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapter","relationName":"DatasetBookToDatasetChapter","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapterVerse","relationName":"DatasetBookToDatasetChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"references","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetReference","relationName":"DatasetBookToDatasetReference","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["datasetId","id"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"DatasetChapter":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetBook","relationName":"DatasetBookToDatasetChapter","relationFromFields":["datasetId","bookId"],"relationToFields":["datasetId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"datasetId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"dataset","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Dataset","relationName":"DatasetToDatasetChapter","relationFromFields":["datasetId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"json","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"verses","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapterVerse","relationName":"DatasetChapterToDatasetChapterVerse","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false},{"name":"references","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetReference","relationName":"DatasetChapterToDatasetReference","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["datasetId","bookId","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"DatasetChapterVerse":{"dbName":null,"fields":[{"name":"number","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapter","relationName":"DatasetChapterToDatasetChapterVerse","relationFromFields":["datasetId","bookId","chapterNumber"],"relationToFields":["datasetId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetBook","relationName":"DatasetBookToDatasetChapterVerse","relationFromFields":["datasetId","bookId"],"relationToFields":["datasetId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"datasetId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"dataset","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Dataset","relationName":"DatasetToDatasetChapterVerse","relationFromFields":["datasetId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"contentJson","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"sha256","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"references","kind":"object","isList":true,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetReference","relationName":"DatasetChapterVerseToDatasetReference","relationFromFields":[],"relationToFields":[],"isGenerated":false,"isUpdatedAt":false}],"primaryKey":{"name":null,"fields":["datasetId","bookId","chapterNumber","number"]},"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false},"DatasetReference":{"dbName":null,"fields":[{"name":"id","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":true,"isReadOnly":false,"hasDefaultValue":true,"type":"Int","default":{"name":"autoincrement","args":[]},"isGenerated":false,"isUpdatedAt":false},{"name":"datasetId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"dataset","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Dataset","relationName":"DatasetToDatasetReference","relationFromFields":["datasetId"],"relationToFields":["id"],"isGenerated":false,"isUpdatedAt":false},{"name":"bookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"book","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetBook","relationName":"DatasetBookToDatasetReference","relationFromFields":["datasetId","bookId"],"relationToFields":["datasetId","id"],"isGenerated":false,"isUpdatedAt":false},{"name":"chapterNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"chapter","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapter","relationName":"DatasetChapterToDatasetReference","relationFromFields":["datasetId","bookId","chapterNumber"],"relationToFields":["datasetId","bookId","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"verseNumber","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":true,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"verse","kind":"object","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"DatasetChapterVerse","relationName":"DatasetChapterVerseToDatasetReference","relationFromFields":["datasetId","bookId","chapterNumber","verseNumber"],"relationToFields":["datasetId","bookId","chapterNumber","number"],"isGenerated":false,"isUpdatedAt":false},{"name":"referenceBookId","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"String","isGenerated":false,"isUpdatedAt":false},{"name":"referenceChapter","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"referenceVerse","kind":"scalar","isList":false,"isRequired":true,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"endVerseNumber","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false},{"name":"score","kind":"scalar","isList":false,"isRequired":false,"isUnique":false,"isId":false,"isReadOnly":false,"hasDefaultValue":false,"type":"Int","isGenerated":false,"isUpdatedAt":false}],"primaryKey":null,"uniqueFields":[],"uniqueIndexes":[],"isGenerated":false}},"enums":{},"types":{}}');
|
|
5715
5766
|
defineDmmfProperty2(exports2.Prisma, config2.runtimeDataModel);
|
|
5716
5767
|
config2.engineWasm = void 0;
|
|
5717
5768
|
var { warnEnvConflicts: warnEnvConflicts2 } = require_library();
|
|
@@ -5746,12 +5797,12 @@ var db_exports = {};
|
|
|
5746
5797
|
__export(db_exports, {
|
|
5747
5798
|
getChangedOrNewInputFiles: () => getChangedOrNewInputFiles,
|
|
5748
5799
|
getDb: () => getDb,
|
|
5749
|
-
getDbFromDir: () => getDbFromDir,
|
|
5750
5800
|
getDbPath: () => getDbPath,
|
|
5751
5801
|
getDbPathFromDir: () => getDbPathFromDir,
|
|
5752
5802
|
getMigrationsPath: () => getMigrationsPath,
|
|
5753
|
-
|
|
5803
|
+
getPrismaDb: () => getPrismaDb,
|
|
5754
5804
|
importCommentaries: () => importCommentaries,
|
|
5805
|
+
importDatasetOutput: () => importDatasetOutput,
|
|
5755
5806
|
importFileBatch: () => importFileBatch,
|
|
5756
5807
|
importFiles: () => importFiles,
|
|
5757
5808
|
importTranslationBatch: () => importTranslationBatch,
|
|
@@ -5760,12 +5811,16 @@ __export(db_exports, {
|
|
|
5760
5811
|
insertCommentaryBooks: () => insertCommentaryBooks,
|
|
5761
5812
|
insertCommentaryContent: () => insertCommentaryContent,
|
|
5762
5813
|
insertCommentaryProfiles: () => insertCommentaryProfiles,
|
|
5814
|
+
insertDatasetBooks: () => insertDatasetBooks,
|
|
5815
|
+
insertDatasetContent: () => insertDatasetContent,
|
|
5816
|
+
insertDatasets: () => insertDatasets,
|
|
5763
5817
|
insertFileMetadata: () => insertFileMetadata,
|
|
5764
5818
|
insertTranslationBooks: () => insertTranslationBooks,
|
|
5765
5819
|
insertTranslationContent: () => insertTranslationContent,
|
|
5766
5820
|
insertTranslations: () => insertTranslations,
|
|
5767
5821
|
loadAndImportBatch: () => loadAndImportBatch,
|
|
5768
5822
|
loadCommentaryDatasets: () => loadCommentaryDatasets,
|
|
5823
|
+
loadDatasetDatasets: () => loadDatasetDatasets,
|
|
5769
5824
|
loadDatasets: () => loadDatasets,
|
|
5770
5825
|
loadTranslationDatasets: () => loadTranslationDatasets,
|
|
5771
5826
|
serializeDatasets: () => serializeDatasets,
|
|
@@ -6886,14 +6941,16 @@ function getBookId(book) {
|
|
|
6886
6941
|
return null;
|
|
6887
6942
|
}
|
|
6888
6943
|
var KNOWN_SKIPPED_VERSES = /* @__PURE__ */ new Set([
|
|
6944
|
+
"MAT 12:47",
|
|
6889
6945
|
"MAT 17:21",
|
|
6890
6946
|
"MAT 18:11",
|
|
6891
6947
|
"MAT 23:14",
|
|
6892
|
-
"
|
|
6893
|
-
"
|
|
6894
|
-
"
|
|
6895
|
-
"
|
|
6948
|
+
"MRK 7:16",
|
|
6949
|
+
"MRK 9:44",
|
|
6950
|
+
"MRK 9:46",
|
|
6951
|
+
"MRK 11:26",
|
|
6896
6952
|
"LUK 17:36",
|
|
6953
|
+
"LUK 23:17",
|
|
6897
6954
|
"JHN 5:4",
|
|
6898
6955
|
"ACT 8:37",
|
|
6899
6956
|
"ACT 15:34",
|
|
@@ -12432,19 +12489,23 @@ function generateApiForDataset(dataset, options = {}) {
|
|
|
12432
12489
|
};
|
|
12433
12490
|
let translationChapters = [];
|
|
12434
12491
|
for (let { chapters, ...book } of books) {
|
|
12492
|
+
const firstChapterNumber = chapters[0].chapter.number;
|
|
12493
|
+
const lastChapterNumber = chapters[chapters.length - 1].chapter.number;
|
|
12435
12494
|
const apiBook = {
|
|
12436
12495
|
...book,
|
|
12496
|
+
firstChapterNumber,
|
|
12437
12497
|
firstChapterApiLink: bookChapterApiLink(
|
|
12438
12498
|
translation.id,
|
|
12439
12499
|
getBookLink(book),
|
|
12440
|
-
|
|
12500
|
+
firstChapterNumber,
|
|
12441
12501
|
"json",
|
|
12442
12502
|
apiPathPrefix
|
|
12443
12503
|
),
|
|
12504
|
+
lastChapterNumber,
|
|
12444
12505
|
lastChapterApiLink: bookChapterApiLink(
|
|
12445
12506
|
translation.id,
|
|
12446
12507
|
getBookLink(book),
|
|
12447
|
-
|
|
12508
|
+
lastChapterNumber,
|
|
12448
12509
|
"json",
|
|
12449
12510
|
apiPathPrefix
|
|
12450
12511
|
),
|
|
@@ -12569,22 +12630,26 @@ function generateApiForDataset(dataset, options = {}) {
|
|
|
12569
12630
|
};
|
|
12570
12631
|
let commentaryChapters = [];
|
|
12571
12632
|
for (let { chapters, ...book } of books) {
|
|
12633
|
+
const firstChapterNumber = chapters[0]?.chapter.number ?? null;
|
|
12634
|
+
const lastChapterNumber = chapters[chapters.length - 1]?.chapter.number ?? null;
|
|
12572
12635
|
const apiBook = {
|
|
12573
12636
|
...book,
|
|
12574
|
-
|
|
12637
|
+
firstChapterNumber,
|
|
12638
|
+
firstChapterApiLink: firstChapterNumber ? bookCommentaryChapterApiLink(
|
|
12575
12639
|
commentary.id,
|
|
12576
12640
|
getBookLink(book),
|
|
12577
|
-
|
|
12641
|
+
firstChapterNumber,
|
|
12578
12642
|
"json",
|
|
12579
12643
|
apiPathPrefix
|
|
12580
|
-
),
|
|
12581
|
-
|
|
12644
|
+
) : null,
|
|
12645
|
+
lastChapterNumber,
|
|
12646
|
+
lastChapterApiLink: lastChapterNumber ? bookCommentaryChapterApiLink(
|
|
12582
12647
|
commentary.id,
|
|
12583
12648
|
getBookLink(book),
|
|
12584
|
-
|
|
12649
|
+
lastChapterNumber,
|
|
12585
12650
|
"json",
|
|
12586
12651
|
apiPathPrefix
|
|
12587
|
-
),
|
|
12652
|
+
) : null,
|
|
12588
12653
|
numberOfChapters: chapters.length,
|
|
12589
12654
|
totalNumberOfVerses: 0
|
|
12590
12655
|
};
|
|
@@ -12671,6 +12736,115 @@ function generateApiForDataset(dataset, options = {}) {
|
|
|
12671
12736
|
api.commentaryBooks.push(commentaryBooks);
|
|
12672
12737
|
api.commentaryProfiles.push(commentaryProfiles);
|
|
12673
12738
|
}
|
|
12739
|
+
for (let { books, ...datasetInfo } of dataset.datasets ?? []) {
|
|
12740
|
+
const apiDataset = {
|
|
12741
|
+
...datasetInfo,
|
|
12742
|
+
availableFormats: ["json"],
|
|
12743
|
+
listOfBooksApiLink: listOfDatasetBooksApiLink(
|
|
12744
|
+
datasetInfo.id,
|
|
12745
|
+
apiPathPrefix
|
|
12746
|
+
),
|
|
12747
|
+
numberOfBooks: books.length,
|
|
12748
|
+
totalNumberOfChapters: 0,
|
|
12749
|
+
totalNumberOfVerses: 0,
|
|
12750
|
+
totalNumberOfReferences: 0,
|
|
12751
|
+
languageName: getNativeName2 ? getNativeName2(datasetInfo.language) ?? void 0 : void 0,
|
|
12752
|
+
languageEnglishName: getEnglishName2 ? getEnglishName2(datasetInfo.language) ?? void 0 : void 0
|
|
12753
|
+
};
|
|
12754
|
+
const datasetBooks = {
|
|
12755
|
+
dataset: apiDataset,
|
|
12756
|
+
books: []
|
|
12757
|
+
};
|
|
12758
|
+
let datasetChapters = [];
|
|
12759
|
+
for (let { chapters, ...book } of books) {
|
|
12760
|
+
const firstChapterNumber = chapters[0]?.chapter.number ?? null;
|
|
12761
|
+
const lastChapterNumber = chapters[chapters.length - 1]?.chapter.number ?? null;
|
|
12762
|
+
const apiBook = {
|
|
12763
|
+
...book,
|
|
12764
|
+
firstChapterNumber,
|
|
12765
|
+
firstChapterApiLink: bookDatasetChapterApiLink(
|
|
12766
|
+
datasetInfo.id,
|
|
12767
|
+
book.id,
|
|
12768
|
+
firstChapterNumber,
|
|
12769
|
+
"json",
|
|
12770
|
+
apiPathPrefix
|
|
12771
|
+
),
|
|
12772
|
+
lastChapterNumber,
|
|
12773
|
+
lastChapterApiLink: bookDatasetChapterApiLink(
|
|
12774
|
+
datasetInfo.id,
|
|
12775
|
+
book.id,
|
|
12776
|
+
lastChapterNumber,
|
|
12777
|
+
"json",
|
|
12778
|
+
apiPathPrefix
|
|
12779
|
+
),
|
|
12780
|
+
numberOfChapters: chapters.length,
|
|
12781
|
+
totalNumberOfVerses: 0,
|
|
12782
|
+
totalNumberOfReferences: 0
|
|
12783
|
+
};
|
|
12784
|
+
for (let { chapter } of chapters) {
|
|
12785
|
+
const apiBookChapter = {
|
|
12786
|
+
dataset: apiDataset,
|
|
12787
|
+
book: apiBook,
|
|
12788
|
+
chapter,
|
|
12789
|
+
thisChapterLink: bookDatasetChapterApiLink(
|
|
12790
|
+
datasetInfo.id,
|
|
12791
|
+
book.id,
|
|
12792
|
+
chapter.number,
|
|
12793
|
+
"json",
|
|
12794
|
+
apiPathPrefix
|
|
12795
|
+
),
|
|
12796
|
+
nextChapterApiLink: null,
|
|
12797
|
+
previousChapterApiLink: null,
|
|
12798
|
+
numberOfVerses: chapter.content.length,
|
|
12799
|
+
numberOfReferences: 0
|
|
12800
|
+
};
|
|
12801
|
+
for (let verse of chapter.content) {
|
|
12802
|
+
apiBookChapter.numberOfReferences += verse.references.length;
|
|
12803
|
+
}
|
|
12804
|
+
apiBook.totalNumberOfVerses += apiBookChapter.numberOfVerses;
|
|
12805
|
+
apiBook.totalNumberOfReferences += apiBookChapter.numberOfReferences;
|
|
12806
|
+
datasetChapters.push(apiBookChapter);
|
|
12807
|
+
if (!api.datasetBookChapters) {
|
|
12808
|
+
api.datasetBookChapters = [];
|
|
12809
|
+
}
|
|
12810
|
+
api.datasetBookChapters.push(apiBookChapter);
|
|
12811
|
+
}
|
|
12812
|
+
datasetBooks.books.push(apiBook);
|
|
12813
|
+
apiDataset.totalNumberOfChapters += apiBook.numberOfChapters;
|
|
12814
|
+
apiDataset.totalNumberOfVerses += apiBook.totalNumberOfVerses;
|
|
12815
|
+
apiDataset.totalNumberOfReferences += apiBook.totalNumberOfReferences;
|
|
12816
|
+
}
|
|
12817
|
+
for (let i = 0; i < datasetChapters.length; i++) {
|
|
12818
|
+
if (i > 0) {
|
|
12819
|
+
datasetChapters[i].previousChapterApiLink = bookDatasetChapterApiLink(
|
|
12820
|
+
datasetInfo.id,
|
|
12821
|
+
datasetChapters[i - 1].book.id,
|
|
12822
|
+
datasetChapters[i - 1].chapter.number,
|
|
12823
|
+
"json",
|
|
12824
|
+
apiPathPrefix
|
|
12825
|
+
);
|
|
12826
|
+
}
|
|
12827
|
+
if (i < datasetChapters.length - 1) {
|
|
12828
|
+
datasetChapters[i].nextChapterApiLink = bookDatasetChapterApiLink(
|
|
12829
|
+
datasetInfo.id,
|
|
12830
|
+
datasetChapters[i + 1].book.id,
|
|
12831
|
+
datasetChapters[i + 1].chapter.number,
|
|
12832
|
+
"json",
|
|
12833
|
+
apiPathPrefix
|
|
12834
|
+
);
|
|
12835
|
+
}
|
|
12836
|
+
}
|
|
12837
|
+
if (!api.availableDatasets) {
|
|
12838
|
+
api.availableDatasets = {
|
|
12839
|
+
datasets: []
|
|
12840
|
+
};
|
|
12841
|
+
}
|
|
12842
|
+
api.availableDatasets.datasets.push(apiDataset);
|
|
12843
|
+
if (!api.datasetBooks) {
|
|
12844
|
+
api.datasetBooks = [];
|
|
12845
|
+
}
|
|
12846
|
+
api.datasetBooks.push(datasetBooks);
|
|
12847
|
+
}
|
|
12674
12848
|
return api;
|
|
12675
12849
|
function getBookLink(book) {
|
|
12676
12850
|
return useCommonName ? book.commonName : book.id;
|
|
@@ -12730,6 +12904,29 @@ function generateFilesForApi(api) {
|
|
|
12730
12904
|
for (let bookChapter of api.commentaryBookChapters) {
|
|
12731
12905
|
files.push(jsonFile(bookChapter.thisChapterLink, bookChapter));
|
|
12732
12906
|
}
|
|
12907
|
+
if (api.availableDatasets) {
|
|
12908
|
+
files.push(
|
|
12909
|
+
jsonFile(
|
|
12910
|
+
`${api.pathPrefix}/api/available_datasets.json`,
|
|
12911
|
+
api.availableDatasets,
|
|
12912
|
+
true
|
|
12913
|
+
)
|
|
12914
|
+
);
|
|
12915
|
+
}
|
|
12916
|
+
if (api.datasetBooks) {
|
|
12917
|
+
for (let datasetBook of api.datasetBooks) {
|
|
12918
|
+
files.push(
|
|
12919
|
+
jsonFile(datasetBook.dataset.listOfBooksApiLink, datasetBook)
|
|
12920
|
+
);
|
|
12921
|
+
}
|
|
12922
|
+
}
|
|
12923
|
+
if (api.datasetBookChapters) {
|
|
12924
|
+
for (let datasetBookChapter of api.datasetBookChapters) {
|
|
12925
|
+
files.push(
|
|
12926
|
+
jsonFile(datasetBookChapter.thisChapterLink, datasetBookChapter)
|
|
12927
|
+
);
|
|
12928
|
+
}
|
|
12929
|
+
}
|
|
12733
12930
|
return files;
|
|
12734
12931
|
}
|
|
12735
12932
|
async function* generateOutputFilesFromDatasets(datasets, options) {
|
|
@@ -12745,6 +12942,9 @@ function listOfBooksApiLink(translationId, prefix = "") {
|
|
|
12745
12942
|
function listOfCommentaryBooksApiLink(commentaryId, prefix = "") {
|
|
12746
12943
|
return `${prefix}/api/c/${commentaryId}/books.json`;
|
|
12747
12944
|
}
|
|
12945
|
+
function listOfDatasetBooksApiLink(datasetId, prefix = "") {
|
|
12946
|
+
return `${prefix}/api/d/${datasetId}/books.json`;
|
|
12947
|
+
}
|
|
12748
12948
|
function bookChapterApiLink(translationId, commonName, chapterNumber, extension, prefix = "") {
|
|
12749
12949
|
return `${prefix}/api/${translationId}/${replaceSpacesWithUnderscores(
|
|
12750
12950
|
commonName
|
|
@@ -12760,6 +12960,11 @@ function bookChapterAudioApiLink(translationId, bookId, chapterNumber, reader, p
|
|
|
12760
12960
|
bookId
|
|
12761
12961
|
)}/${chapterNumber}.${reader}.mp3`;
|
|
12762
12962
|
}
|
|
12963
|
+
function bookDatasetChapterApiLink(translationId, commonName, chapterNumber, extension, prefix = "") {
|
|
12964
|
+
return `${prefix}/api/d/${translationId}/${replaceSpacesWithUnderscores(
|
|
12965
|
+
commonName
|
|
12966
|
+
)}/${chapterNumber}.${extension}`;
|
|
12967
|
+
}
|
|
12763
12968
|
function profilesCommentaryApiLink(translationId, extension, prefix = "") {
|
|
12764
12969
|
return `${prefix}/api/c/${translationId}/profiles.${extension}`;
|
|
12765
12970
|
}
|
|
@@ -12793,6 +12998,7 @@ __export(files_exports, {
|
|
|
12793
12998
|
hashInputFiles: () => hashInputFiles,
|
|
12794
12999
|
loadCommentariesFiles: () => loadCommentariesFiles,
|
|
12795
13000
|
loadCommentaryFiles: () => loadCommentaryFiles,
|
|
13001
|
+
loadDatasetsFromDirectory: () => loadDatasetsFromDirectory,
|
|
12796
13002
|
loadTranslationFiles: () => loadTranslationFiles,
|
|
12797
13003
|
loadTranslationsFiles: () => loadTranslationsFiles,
|
|
12798
13004
|
serializeFile: () => serializeFile,
|
|
@@ -12993,6 +13199,81 @@ async function loadCommentaryFiles(commentary) {
|
|
|
12993
13199
|
}
|
|
12994
13200
|
return await Promise.all(promises);
|
|
12995
13201
|
}
|
|
13202
|
+
async function loadDatasetsFromDirectory(dir) {
|
|
13203
|
+
const logger2 = log_exports.getLogger();
|
|
13204
|
+
let datasets = [];
|
|
13205
|
+
const apiDir = path.resolve(dir, "api");
|
|
13206
|
+
const availableDatasets = JSON.parse(
|
|
13207
|
+
await (0, import_promises.readFile)(path.resolve(apiDir, "available_datasets.json"), "utf-8")
|
|
13208
|
+
);
|
|
13209
|
+
datasets.push(
|
|
13210
|
+
...availableDatasets.datasets.map((d) => ({
|
|
13211
|
+
...d,
|
|
13212
|
+
books: []
|
|
13213
|
+
}))
|
|
13214
|
+
);
|
|
13215
|
+
for (let dataset of datasets) {
|
|
13216
|
+
const datasetDir = path.resolve(apiDir, "d", dataset.id);
|
|
13217
|
+
const booksList = await (0, import_promises.readdir)(datasetDir);
|
|
13218
|
+
for (let bookId of booksList) {
|
|
13219
|
+
if (bookId === "books.json") {
|
|
13220
|
+
continue;
|
|
13221
|
+
}
|
|
13222
|
+
const id2 = getBookId(bookId);
|
|
13223
|
+
if (!id2) {
|
|
13224
|
+
logger2.warn(`Unknown book directory: ${bookId}`);
|
|
13225
|
+
continue;
|
|
13226
|
+
}
|
|
13227
|
+
const book = {
|
|
13228
|
+
id: id2,
|
|
13229
|
+
chapters: [],
|
|
13230
|
+
order: bookOrderMap.get(id2)
|
|
13231
|
+
};
|
|
13232
|
+
dataset.books.push(book);
|
|
13233
|
+
const bookDir = path.resolve(datasetDir, bookId);
|
|
13234
|
+
const chapters = await (0, import_promises.readdir)(bookDir);
|
|
13235
|
+
for (let chapterFile of chapters) {
|
|
13236
|
+
const chapterJson = JSON.parse(
|
|
13237
|
+
await (0, import_promises.readFile)(path.resolve(bookDir, chapterFile), "utf-8")
|
|
13238
|
+
);
|
|
13239
|
+
if (chapterJson.chapter) {
|
|
13240
|
+
book.chapters.push({
|
|
13241
|
+
chapter: chapterJson.chapter
|
|
13242
|
+
});
|
|
13243
|
+
} else if (chapterJson.content) {
|
|
13244
|
+
const chapterNumber = parseInt(
|
|
13245
|
+
(0, import_path.basename)(chapterFile, (0, import_path.extname)(chapterFile))
|
|
13246
|
+
);
|
|
13247
|
+
if (isNaN(chapterNumber)) {
|
|
13248
|
+
logger2.warn(`Unknown chapter format: ${chapterFile}`);
|
|
13249
|
+
continue;
|
|
13250
|
+
}
|
|
13251
|
+
book.chapters.push({
|
|
13252
|
+
chapter: {
|
|
13253
|
+
number: chapterNumber,
|
|
13254
|
+
content: chapterJson.content.map((c) => ({
|
|
13255
|
+
verse: c.verse,
|
|
13256
|
+
references: (c.references ?? []).map(
|
|
13257
|
+
(ref) => ({
|
|
13258
|
+
book: ref.book,
|
|
13259
|
+
chapter: ref.chapter,
|
|
13260
|
+
verse: ref.verse,
|
|
13261
|
+
endVerse: ref.endVerse,
|
|
13262
|
+
score: ref.score ?? ref.votes
|
|
13263
|
+
})
|
|
13264
|
+
)
|
|
13265
|
+
}))
|
|
13266
|
+
}
|
|
13267
|
+
});
|
|
13268
|
+
} else {
|
|
13269
|
+
logger2.warn(`Unknown chapter format: ${chapterFile}`);
|
|
13270
|
+
continue;
|
|
13271
|
+
}
|
|
13272
|
+
}
|
|
13273
|
+
}
|
|
13274
|
+
}
|
|
13275
|
+
return datasets;
|
|
13276
|
+
}
|
|
12996
13277
|
async function loadTranslationMetadata(translation) {
|
|
12997
13278
|
const logger2 = log_exports.getLogger();
|
|
12998
13279
|
const metadataTs = path.resolve(translation, "metadata.ts");
|
|
@@ -13226,14 +13507,23 @@ async function importFileBatch(db, files, parser, overwrite) {
|
|
|
13226
13507
|
);
|
|
13227
13508
|
logger2.log("Generated", output.translations.length, "translations");
|
|
13228
13509
|
logger2.log("Generated", output.commentaries.length, "commentaries");
|
|
13510
|
+
importDatasetOutput(db, output);
|
|
13511
|
+
insertFileMetadata(db, changedFiles);
|
|
13512
|
+
}
|
|
13513
|
+
function importDatasetOutput(db, output) {
|
|
13514
|
+
const logger2 = log_exports.getLogger();
|
|
13229
13515
|
insertTranslations(db, output.translations);
|
|
13230
13516
|
updateTranslationHashes(db, output.translations);
|
|
13231
13517
|
insertCommentaries(db, output.commentaries);
|
|
13232
13518
|
updateCommentaryHashes(db, output.commentaries);
|
|
13233
|
-
|
|
13519
|
+
insertDatasets(db, output.datasets ?? []);
|
|
13520
|
+
updateDatasetHashes(db, output.datasets ?? []);
|
|
13234
13521
|
insertWarningMetadata(db, output.parseMessages);
|
|
13235
13522
|
logger2.log(`Inserted ${output.translations.length} translations into DB`);
|
|
13236
13523
|
logger2.log(`Inserted ${output.commentaries.length} commentaries into DB`);
|
|
13524
|
+
if (output.datasets) {
|
|
13525
|
+
logger2.log(`Inserted ${output.datasets.length} datasets into DB`);
|
|
13526
|
+
}
|
|
13237
13527
|
logger2.log(
|
|
13238
13528
|
`Produced ${output.parseMessages?.length ?? 0} warnings/errors.`
|
|
13239
13529
|
);
|
|
@@ -13946,6 +14236,248 @@ function updateCommentaryHashes(db, commentaries) {
|
|
|
13946
14236
|
updateCommentaries();
|
|
13947
14237
|
logger2.log(`Updated.`);
|
|
13948
14238
|
}
|
|
14239
|
+
function insertDatasets(db, datasets) {
|
|
14240
|
+
const translationUpsert = db.prepare(`INSERT INTO Dataset(
|
|
14241
|
+
id,
|
|
14242
|
+
name,
|
|
14243
|
+
language,
|
|
14244
|
+
textDirection,
|
|
14245
|
+
licenseUrl,
|
|
14246
|
+
licenseNotes,
|
|
14247
|
+
website,
|
|
14248
|
+
englishName
|
|
14249
|
+
) VALUES (
|
|
14250
|
+
@id,
|
|
14251
|
+
@name,
|
|
14252
|
+
@language,
|
|
14253
|
+
@textDirection,
|
|
14254
|
+
@licenseUrl,
|
|
14255
|
+
@licenseNotes,
|
|
14256
|
+
@website,
|
|
14257
|
+
@englishName
|
|
14258
|
+
) ON CONFLICT(id) DO
|
|
14259
|
+
UPDATE SET
|
|
14260
|
+
name=excluded.name,
|
|
14261
|
+
language=excluded.language,
|
|
14262
|
+
textDirection=excluded.textDirection,
|
|
14263
|
+
licenseUrl=excluded.licenseUrl,
|
|
14264
|
+
licenseNotes=excluded.licenseNotes,
|
|
14265
|
+
website=excluded.website,
|
|
14266
|
+
englishName=excluded.englishName;`);
|
|
14267
|
+
const insertManyTranslations = db.transaction(
|
|
14268
|
+
(datasets2) => {
|
|
14269
|
+
for (let dataset of datasets2) {
|
|
14270
|
+
translationUpsert.run({
|
|
14271
|
+
id: dataset.id,
|
|
14272
|
+
name: dataset.name,
|
|
14273
|
+
language: dataset.language,
|
|
14274
|
+
textDirection: dataset.textDirection,
|
|
14275
|
+
licenseUrl: dataset.licenseUrl,
|
|
14276
|
+
licenseNotes: dataset.licenseNotes,
|
|
14277
|
+
website: dataset.website,
|
|
14278
|
+
englishName: dataset.englishName
|
|
14279
|
+
});
|
|
14280
|
+
}
|
|
14281
|
+
}
|
|
14282
|
+
);
|
|
14283
|
+
insertManyTranslations(datasets);
|
|
14284
|
+
const deleteReferences = db.prepare(`DELETE FROM DatasetReference
|
|
14285
|
+
WHERE datasetId = @datasetId;`);
|
|
14286
|
+
for (let dataset of datasets) {
|
|
14287
|
+
deleteReferences.run({
|
|
14288
|
+
datasetId: dataset.id
|
|
14289
|
+
});
|
|
14290
|
+
insertDatasetBooks(db, dataset, dataset.books);
|
|
14291
|
+
}
|
|
14292
|
+
}
|
|
14293
|
+
function insertDatasetBooks(db, dataset, datasetBooks) {
|
|
14294
|
+
const bookUpsert = db.prepare(`INSERT INTO DatasetBook(
|
|
14295
|
+
id,
|
|
14296
|
+
datasetId,
|
|
14297
|
+
numberOfChapters,
|
|
14298
|
+
\`order\`
|
|
14299
|
+
) VALUES (
|
|
14300
|
+
@id,
|
|
14301
|
+
@datasetId,
|
|
14302
|
+
@numberOfChapters,
|
|
14303
|
+
@bookOrder
|
|
14304
|
+
) ON CONFLICT(id,datasetId) DO
|
|
14305
|
+
UPDATE SET
|
|
14306
|
+
numberOfChapters=excluded.numberOfChapters;`);
|
|
14307
|
+
const insertMany = db.transaction((books) => {
|
|
14308
|
+
for (let book of books) {
|
|
14309
|
+
if (!book) {
|
|
14310
|
+
continue;
|
|
14311
|
+
}
|
|
14312
|
+
bookUpsert.run({
|
|
14313
|
+
id: book.id,
|
|
14314
|
+
datasetId: dataset.id,
|
|
14315
|
+
numberOfChapters: book.chapters.length,
|
|
14316
|
+
bookOrder: book.order ?? 9999
|
|
14317
|
+
});
|
|
14318
|
+
}
|
|
14319
|
+
});
|
|
14320
|
+
insertMany(datasetBooks);
|
|
14321
|
+
for (let book of datasetBooks) {
|
|
14322
|
+
insertDatasetContent(db, dataset, book, book.chapters);
|
|
14323
|
+
}
|
|
14324
|
+
}
|
|
14325
|
+
function insertDatasetContent(db, dataset, book, chapters) {
|
|
14326
|
+
const logger2 = log_exports.getLogger();
|
|
14327
|
+
const chapterUpsert = db.prepare(`INSERT INTO DatasetChapter(
|
|
14328
|
+
datasetId,
|
|
14329
|
+
bookId,
|
|
14330
|
+
number,
|
|
14331
|
+
json
|
|
14332
|
+
) VALUES (
|
|
14333
|
+
@datasetId,
|
|
14334
|
+
@bookId,
|
|
14335
|
+
@number,
|
|
14336
|
+
@json
|
|
14337
|
+
) ON CONFLICT(datasetId,bookId,number) DO
|
|
14338
|
+
UPDATE SET
|
|
14339
|
+
json=excluded.json;`);
|
|
14340
|
+
const verseUpsert = db.prepare(`INSERT INTO DatasetChapterVerse(
|
|
14341
|
+
datasetId,
|
|
14342
|
+
bookId,
|
|
14343
|
+
chapterNumber,
|
|
14344
|
+
number,
|
|
14345
|
+
contentJson
|
|
14346
|
+
) VALUES (
|
|
14347
|
+
@datasetId,
|
|
14348
|
+
@bookId,
|
|
14349
|
+
@chapterNumber,
|
|
14350
|
+
@number,
|
|
14351
|
+
@contentJson
|
|
14352
|
+
) ON CONFLICT(datasetId,bookId,chapterNumber,number) DO
|
|
14353
|
+
UPDATE SET
|
|
14354
|
+
contentJson=excluded.contentJson;`);
|
|
14355
|
+
const referenceInsert = db.prepare(`INSERT INTO DatasetReference(
|
|
14356
|
+
datasetId,
|
|
14357
|
+
bookId,
|
|
14358
|
+
chapterNumber,
|
|
14359
|
+
verseNumber,
|
|
14360
|
+
referenceBookId,
|
|
14361
|
+
referenceChapter,
|
|
14362
|
+
referenceVerse,
|
|
14363
|
+
endVerseNumber,
|
|
14364
|
+
score
|
|
14365
|
+
) VALUES (
|
|
14366
|
+
@datasetId,
|
|
14367
|
+
@bookId,
|
|
14368
|
+
@chapterNumber,
|
|
14369
|
+
@verseNumber,
|
|
14370
|
+
@referenceBookId,
|
|
14371
|
+
@referenceChapter,
|
|
14372
|
+
@referenceVerse,
|
|
14373
|
+
@endVerseNumber,
|
|
14374
|
+
@score
|
|
14375
|
+
);`);
|
|
14376
|
+
const insertChaptersAndVerses = db.transaction(() => {
|
|
14377
|
+
for (let chapter of chapters) {
|
|
14378
|
+
chapterUpsert.run({
|
|
14379
|
+
datasetId: dataset.id,
|
|
14380
|
+
bookId: book.id,
|
|
14381
|
+
number: chapter.chapter.number,
|
|
14382
|
+
json: JSON.stringify(chapter.chapter)
|
|
14383
|
+
});
|
|
14384
|
+
for (let verse of chapter.chapter.content) {
|
|
14385
|
+
verseUpsert.run({
|
|
14386
|
+
datasetId: dataset.id,
|
|
14387
|
+
bookId: book.id,
|
|
14388
|
+
chapterNumber: chapter.chapter.number,
|
|
14389
|
+
number: verse.verse,
|
|
14390
|
+
contentJson: JSON.stringify(verse)
|
|
14391
|
+
});
|
|
14392
|
+
for (let ref of verse.references) {
|
|
14393
|
+
referenceInsert.run({
|
|
14394
|
+
datasetId: dataset.id,
|
|
14395
|
+
bookId: book.id,
|
|
14396
|
+
chapterNumber: chapter.chapter.number,
|
|
14397
|
+
verseNumber: verse.verse,
|
|
14398
|
+
referenceBookId: ref.book,
|
|
14399
|
+
referenceChapter: ref.chapter,
|
|
14400
|
+
referenceVerse: ref.verse,
|
|
14401
|
+
endVerseNumber: ref.endVerse ?? null,
|
|
14402
|
+
score: ref.score ?? null
|
|
14403
|
+
});
|
|
14404
|
+
}
|
|
14405
|
+
}
|
|
14406
|
+
}
|
|
14407
|
+
});
|
|
14408
|
+
insertChaptersAndVerses();
|
|
14409
|
+
}
|
|
14410
|
+
function updateDatasetHashes(db, datasets) {
|
|
14411
|
+
const logger2 = log_exports.getLogger();
|
|
14412
|
+
logger2.log(`Updating hashes for ${datasets.length} datasets.`);
|
|
14413
|
+
const updateTranslationHash = db.prepare(
|
|
14414
|
+
`UPDATE Dataset SET sha256 = @sha256 WHERE id = @datasetId;`
|
|
14415
|
+
);
|
|
14416
|
+
const updateBookHash = db.prepare(
|
|
14417
|
+
`UPDATE DatasetBook SET sha256 = @sha256 WHERE datasetId = @datasetId AND id = @bookId;`
|
|
14418
|
+
);
|
|
14419
|
+
const updateChapterHash = db.prepare(
|
|
14420
|
+
`UPDATE DatasetChapter SET sha256 = @sha256 WHERE datasetId = @datasetId AND bookId = @bookId AND number = @chapterNumber;`
|
|
14421
|
+
);
|
|
14422
|
+
const getBooks = db.prepare(
|
|
14423
|
+
"SELECT * FROM DatasetBook WHERE datasetId = ?;"
|
|
14424
|
+
);
|
|
14425
|
+
const getChapters = db.prepare(
|
|
14426
|
+
"SELECT * FROM DatasetChapter WHERE datasetId = @datasetId AND bookId = @bookId;"
|
|
14427
|
+
);
|
|
14428
|
+
for (let dataset of datasets) {
|
|
14429
|
+
const commentarySha = (0, import_hash2.sha256)().update(dataset.id).update(dataset.name).update(dataset.language).update(dataset.licenseUrl).update(dataset.textDirection).update(dataset.website).update(dataset.englishName);
|
|
14430
|
+
const books = getBooks.all(dataset.id);
|
|
14431
|
+
for (let book of books) {
|
|
14432
|
+
const chapters = getChapters.all({
|
|
14433
|
+
datasetId: dataset.id,
|
|
14434
|
+
bookId: book.id
|
|
14435
|
+
});
|
|
14436
|
+
const bookSha = (0, import_hash2.sha256)().update(book.datasetId).update(book.id).update(book.numberOfChapters).update(book.order);
|
|
14437
|
+
for (let chapter of chapters) {
|
|
14438
|
+
const hash2 = (0, import_hash2.sha256)().update(chapter.datasetId).update(chapter.bookId).update(chapter.number).update(chapter.json).digest("hex");
|
|
14439
|
+
chapter.sha256 = hash2;
|
|
14440
|
+
bookSha.update(hash2);
|
|
14441
|
+
}
|
|
14442
|
+
const updateChapters = db.transaction(() => {
|
|
14443
|
+
for (let chapter of chapters) {
|
|
14444
|
+
updateChapterHash.run({
|
|
14445
|
+
sha256: chapter.sha256,
|
|
14446
|
+
datasetId: chapter.datasetId,
|
|
14447
|
+
bookId: chapter.bookId,
|
|
14448
|
+
chapterNumber: chapter.number
|
|
14449
|
+
});
|
|
14450
|
+
}
|
|
14451
|
+
});
|
|
14452
|
+
updateChapters();
|
|
14453
|
+
const bookHash = bookSha.digest("hex");
|
|
14454
|
+
book.sha256 = bookHash;
|
|
14455
|
+
commentarySha.update(bookHash);
|
|
14456
|
+
}
|
|
14457
|
+
const updateBooks = db.transaction(() => {
|
|
14458
|
+
for (let book of books) {
|
|
14459
|
+
updateBookHash.run({
|
|
14460
|
+
sha256: book.sha256,
|
|
14461
|
+
datasetId: book.datasetId,
|
|
14462
|
+
bookId: book.id
|
|
14463
|
+
});
|
|
14464
|
+
}
|
|
14465
|
+
});
|
|
14466
|
+
updateBooks();
|
|
14467
|
+
const hash = commentarySha.digest("hex");
|
|
14468
|
+
dataset.sha256 = hash;
|
|
14469
|
+
}
|
|
14470
|
+
const updateDatasets = db.transaction(() => {
|
|
14471
|
+
for (let dataset of datasets) {
|
|
14472
|
+
updateTranslationHash.run({
|
|
14473
|
+
sha256: dataset.sha256,
|
|
14474
|
+
datasetId: dataset.id
|
|
14475
|
+
});
|
|
14476
|
+
}
|
|
14477
|
+
});
|
|
14478
|
+
updateDatasets();
|
|
14479
|
+
logger2.log(`Updated.`);
|
|
14480
|
+
}
|
|
13949
14481
|
function getDbPathFromDir(dir) {
|
|
13950
14482
|
dir = dir || process.cwd();
|
|
13951
14483
|
return import_path2.default.resolve(dir, "bible-api.db");
|
|
@@ -13956,8 +14488,9 @@ function getDbPath(p) {
|
|
|
13956
14488
|
}
|
|
13957
14489
|
return getDbPathFromDir(process.cwd());
|
|
13958
14490
|
}
|
|
13959
|
-
function
|
|
13960
|
-
const dbPath =
|
|
14491
|
+
function getPrismaDb(path5) {
|
|
14492
|
+
const dbPath = getDbPath(path5);
|
|
14493
|
+
console.log("Opening database at", dbPath);
|
|
13961
14494
|
const prisma = new import_prisma_gen.PrismaClient({
|
|
13962
14495
|
datasources: {
|
|
13963
14496
|
db: {
|
|
@@ -13967,12 +14500,13 @@ function getPrismaDbFromDir(dir) {
|
|
|
13967
14500
|
});
|
|
13968
14501
|
return prisma;
|
|
13969
14502
|
}
|
|
13970
|
-
async function
|
|
13971
|
-
const dbPath =
|
|
13972
|
-
const db = await
|
|
14503
|
+
async function getDb(path5) {
|
|
14504
|
+
const dbPath = getDbPath(path5);
|
|
14505
|
+
const db = await getDbFromPath(dbPath);
|
|
13973
14506
|
return db;
|
|
13974
14507
|
}
|
|
13975
|
-
async function
|
|
14508
|
+
async function getDbFromPath(dbPath) {
|
|
14509
|
+
console.log("Opening database at", dbPath);
|
|
13976
14510
|
const logger2 = log_exports.getLogger();
|
|
13977
14511
|
const migrationsPath = await getMigrationsPath();
|
|
13978
14512
|
if (!migrationsPath) {
|
|
@@ -14027,6 +14561,7 @@ async function getDb(dbPath) {
|
|
|
14027
14561
|
async function* loadDatasets(db, perBatch = 50, translationsToLoad) {
|
|
14028
14562
|
yield* loadTranslationDatasets(db, perBatch, translationsToLoad);
|
|
14029
14563
|
yield* loadCommentaryDatasets(db, perBatch, translationsToLoad);
|
|
14564
|
+
yield* loadDatasetDatasets(db, perBatch, translationsToLoad);
|
|
14030
14565
|
}
|
|
14031
14566
|
async function* loadTranslationDatasets(db, translationsPerBatch = 50, translationsToLoad) {
|
|
14032
14567
|
const logger2 = log_exports.getLogger();
|
|
@@ -14227,6 +14762,84 @@ async function* loadCommentaryDatasets(db, perBatch = 50, commentariesToLoad) {
|
|
|
14227
14762
|
offset += pageSize;
|
|
14228
14763
|
}
|
|
14229
14764
|
}
|
|
14765
|
+
async function* loadDatasetDatasets(db, perBatch = 50, datasetsToLoad) {
|
|
14766
|
+
const logger2 = log_exports.getLogger();
|
|
14767
|
+
let offset = 0;
|
|
14768
|
+
let pageSize = perBatch;
|
|
14769
|
+
logger2.log("Generating dataset datasets in batches of", pageSize);
|
|
14770
|
+
const totalDatasets = await db.dataset.count();
|
|
14771
|
+
const totalBatches = Math.ceil(totalDatasets / pageSize);
|
|
14772
|
+
let batchNumber = 1;
|
|
14773
|
+
while (true) {
|
|
14774
|
+
logger2.log("Generating dataset batch", batchNumber, "of", totalBatches);
|
|
14775
|
+
batchNumber++;
|
|
14776
|
+
const datasetQuery = {
|
|
14777
|
+
skip: offset,
|
|
14778
|
+
take: pageSize
|
|
14779
|
+
};
|
|
14780
|
+
if (datasetsToLoad && datasetsToLoad.length > 0) {
|
|
14781
|
+
datasetQuery.where = {
|
|
14782
|
+
id: {
|
|
14783
|
+
in: datasetsToLoad
|
|
14784
|
+
}
|
|
14785
|
+
};
|
|
14786
|
+
}
|
|
14787
|
+
const datasets = await db.dataset.findMany(datasetQuery);
|
|
14788
|
+
if (datasets.length <= 0) {
|
|
14789
|
+
break;
|
|
14790
|
+
}
|
|
14791
|
+
const output = {
|
|
14792
|
+
translations: [],
|
|
14793
|
+
commentaries: [],
|
|
14794
|
+
datasets: []
|
|
14795
|
+
};
|
|
14796
|
+
for (let dataset of datasets) {
|
|
14797
|
+
const datasetDataset = {
|
|
14798
|
+
...dataset,
|
|
14799
|
+
textDirection: dataset.textDirection,
|
|
14800
|
+
books: []
|
|
14801
|
+
};
|
|
14802
|
+
output.datasets.push(datasetDataset);
|
|
14803
|
+
const books = await db.datasetBook.findMany({
|
|
14804
|
+
where: {
|
|
14805
|
+
datasetId: dataset.id
|
|
14806
|
+
},
|
|
14807
|
+
orderBy: {
|
|
14808
|
+
order: "asc"
|
|
14809
|
+
}
|
|
14810
|
+
});
|
|
14811
|
+
for (let book of books) {
|
|
14812
|
+
const chapters = await db.datasetChapter.findMany({
|
|
14813
|
+
where: {
|
|
14814
|
+
datasetId: dataset.id,
|
|
14815
|
+
bookId: book.id
|
|
14816
|
+
},
|
|
14817
|
+
orderBy: {
|
|
14818
|
+
number: "asc"
|
|
14819
|
+
}
|
|
14820
|
+
});
|
|
14821
|
+
const bookChapters = chapters.map(
|
|
14822
|
+
(chapter) => {
|
|
14823
|
+
const bookChapter = {
|
|
14824
|
+
chapter: JSON.parse(chapter.json)
|
|
14825
|
+
};
|
|
14826
|
+
for (let verse of bookChapter.chapter.content) {
|
|
14827
|
+
verse.references.sort((a, b2) => b2.score - a.score);
|
|
14828
|
+
}
|
|
14829
|
+
return bookChapter;
|
|
14830
|
+
}
|
|
14831
|
+
);
|
|
14832
|
+
const datasetBook = {
|
|
14833
|
+
...book,
|
|
14834
|
+
chapters: bookChapters
|
|
14835
|
+
};
|
|
14836
|
+
datasetDataset.books.push(datasetBook);
|
|
14837
|
+
}
|
|
14838
|
+
}
|
|
14839
|
+
yield output;
|
|
14840
|
+
offset += pageSize;
|
|
14841
|
+
}
|
|
14842
|
+
}
|
|
14230
14843
|
function serializeFilesFromDatabase(db, options = {}, translationsPerBatch = 50, translations) {
|
|
14231
14844
|
return serializeDatasets(
|
|
14232
14845
|
loadDatasets(db, translationsPerBatch, translations),
|
|
@@ -14678,6 +15291,7 @@ __export(actions_exports, {
|
|
|
14678
15291
|
generateTranslationFiles: () => generateTranslationFiles,
|
|
14679
15292
|
generateTranslationsFiles: () => generateTranslationsFiles,
|
|
14680
15293
|
getMetaPath: () => getMetaPath,
|
|
15294
|
+
importApi: () => importApi,
|
|
14681
15295
|
importCommentaries: () => importCommentaries2,
|
|
14682
15296
|
importCommentary: () => importCommentary,
|
|
14683
15297
|
importTranslation: () => importTranslation,
|
|
@@ -15005,6 +15619,25 @@ async function initDb(dbPath, options) {
|
|
|
15005
15619
|
CREATE TABLE "CommentaryChapterVerse" AS SELECT * FROM source.CommentaryChapterVerse
|
|
15006
15620
|
INNER JOIN source.Commentary ON source.Commentary.id = source.CommentaryChapterVerse.commentaryId
|
|
15007
15621
|
WHERE source.Commentary.language IN ${languages};
|
|
15622
|
+
|
|
15623
|
+
CREATE TABLE "Dataset" AS SELECT * FROM source.Dataset
|
|
15624
|
+
WHERE language IN ${languages};
|
|
15625
|
+
|
|
15626
|
+
CREATE TABLE "DatasetBook" AS SELECT * FROM source.DatasetBook
|
|
15627
|
+
INNER JOIN source.Dataset ON source.Dataset.id = source.DatasetBook.datasetId
|
|
15628
|
+
WHERE source.Dataset.language IN ${languages};
|
|
15629
|
+
|
|
15630
|
+
CREATE TABLE "DatasetChapter" AS SELECT * FROM source.DatasetChapter
|
|
15631
|
+
INNER JOIN source.Dataset ON source.Dataset.id = source.DatasetChapter.datasetId
|
|
15632
|
+
WHERE source.Dataset.language IN ${languages};
|
|
15633
|
+
|
|
15634
|
+
CREATE TABLE "DatasetChapterVerse" AS SELECT * FROM source.DatasetChapterVerse
|
|
15635
|
+
INNER JOIN source.Dataset ON source.Dataset.id = source.DatasetChapterVerse.datasetId
|
|
15636
|
+
WHERE source.Dataset.language IN ${languages};
|
|
15637
|
+
|
|
15638
|
+
CREATE TABLE "DatasetReference" AS SELECT * FROM source.DatasetReference
|
|
15639
|
+
INNER JOIN source.Dataset ON source.Dataset.id = source.DatasetReference.datasetId
|
|
15640
|
+
WHERE source.Dataset.language IN ${languages};
|
|
15008
15641
|
`);
|
|
15009
15642
|
} else {
|
|
15010
15643
|
db.exec(`
|
|
@@ -15021,6 +15654,11 @@ async function initDb(dbPath, options) {
|
|
|
15021
15654
|
CREATE TABLE "CommentaryBook" AS SELECT * FROM source.CommentaryBook;
|
|
15022
15655
|
CREATE TABLE "CommentaryChapter" AS SELECT * FROM source.CommentaryChapter;
|
|
15023
15656
|
CREATE TABLE "CommentaryChapterVerse" AS SELECT * FROM source.CommentaryChapterVerse;
|
|
15657
|
+
CREATE TABLE "Dataset" AS SELECT * FROM source.Dataset;
|
|
15658
|
+
CREATE TABLE "DatasetBook" AS SELECT * FROM source.DatasetBook;
|
|
15659
|
+
CREATE TABLE "DatasetChapter" AS SELECT * FROM source.DatasetChapter;
|
|
15660
|
+
CREATE TABLE "DatasetChapterVerse" AS SELECT * FROM source.DatasetChapterVerse;
|
|
15661
|
+
CREATE TABLE "DatasetReference" AS SELECT * FROM source.DatasetReference;
|
|
15024
15662
|
`);
|
|
15025
15663
|
}
|
|
15026
15664
|
logger2.log("Done.");
|
|
@@ -15029,7 +15667,7 @@ async function initDb(dbPath, options) {
|
|
|
15029
15667
|
}
|
|
15030
15668
|
}
|
|
15031
15669
|
} else {
|
|
15032
|
-
const db = await getDb(
|
|
15670
|
+
const db = await getDb(dbPath);
|
|
15033
15671
|
db.close();
|
|
15034
15672
|
}
|
|
15035
15673
|
}
|
|
@@ -15038,7 +15676,7 @@ async function importTranslation(dir, dirs, options) {
|
|
|
15038
15676
|
globalThis.DOMParser = import_linkedom.DOMParser;
|
|
15039
15677
|
globalThis.Element = import_linkedom.Element;
|
|
15040
15678
|
globalThis.Node = import_linkedom.Node;
|
|
15041
|
-
const db = await
|
|
15679
|
+
const db = await getDb(options.db);
|
|
15042
15680
|
try {
|
|
15043
15681
|
await importTranslations(
|
|
15044
15682
|
db,
|
|
@@ -15056,7 +15694,7 @@ async function importTranslations2(dir, options) {
|
|
|
15056
15694
|
globalThis.DOMParser = import_linkedom.DOMParser;
|
|
15057
15695
|
globalThis.Element = import_linkedom.Element;
|
|
15058
15696
|
globalThis.Node = import_linkedom.Node;
|
|
15059
|
-
const db = await
|
|
15697
|
+
const db = await getDb(options.db);
|
|
15060
15698
|
try {
|
|
15061
15699
|
const files = await (0, import_promises5.readdir)(dir);
|
|
15062
15700
|
const translationDirs = files.map((f) => import_node_path2.default.resolve(dir, f));
|
|
@@ -15076,7 +15714,7 @@ async function importCommentary(dir, dirs, options) {
|
|
|
15076
15714
|
globalThis.DOMParser = import_linkedom.DOMParser;
|
|
15077
15715
|
globalThis.Element = import_linkedom.Element;
|
|
15078
15716
|
globalThis.Node = import_linkedom.Node;
|
|
15079
|
-
const db = await
|
|
15717
|
+
const db = await getDb(options.db);
|
|
15080
15718
|
try {
|
|
15081
15719
|
await importCommentaries(
|
|
15082
15720
|
db,
|
|
@@ -15094,7 +15732,7 @@ async function importCommentaries2(dir, options) {
|
|
|
15094
15732
|
globalThis.DOMParser = import_linkedom.DOMParser;
|
|
15095
15733
|
globalThis.Element = import_linkedom.Element;
|
|
15096
15734
|
globalThis.Node = import_linkedom.Node;
|
|
15097
|
-
const db = await
|
|
15735
|
+
const db = await getDb(options.db);
|
|
15098
15736
|
try {
|
|
15099
15737
|
const files = await (0, import_promises5.readdir)(dir);
|
|
15100
15738
|
const commentaryDirs = files.map((f) => import_node_path2.default.resolve(dir, f));
|
|
@@ -15109,6 +15747,19 @@ async function importCommentaries2(dir, options) {
|
|
|
15109
15747
|
db.close();
|
|
15110
15748
|
}
|
|
15111
15749
|
}
|
|
15750
|
+
async function importApi(dir, options) {
|
|
15751
|
+
const db = await getDb(options.db);
|
|
15752
|
+
try {
|
|
15753
|
+
const datasets = await loadDatasetsFromDirectory(dir);
|
|
15754
|
+
importDatasetOutput(db, {
|
|
15755
|
+
commentaries: [],
|
|
15756
|
+
translations: [],
|
|
15757
|
+
datasets
|
|
15758
|
+
});
|
|
15759
|
+
} finally {
|
|
15760
|
+
db.close();
|
|
15761
|
+
}
|
|
15762
|
+
}
|
|
15112
15763
|
async function fetchAudio(dir, translations, options = {}) {
|
|
15113
15764
|
const logger2 = log_exports.getLogger();
|
|
15114
15765
|
for (let translation of translations) {
|
|
@@ -15265,7 +15916,7 @@ Found ${sources.length} sources for '${translationQuery}':`);
|
|
|
15265
15916
|
}
|
|
15266
15917
|
async function sourceTranslations(outputDir, translations, options = {}) {
|
|
15267
15918
|
const logger2 = log_exports.getLogger();
|
|
15268
|
-
|
|
15919
|
+
let {
|
|
15269
15920
|
convertToUsx3 = false,
|
|
15270
15921
|
useDatabase = true,
|
|
15271
15922
|
// Default to true
|
|
@@ -15300,20 +15951,27 @@ async function sourceTranslations(outputDir, translations, options = {}) {
|
|
|
15300
15951
|
let db = null;
|
|
15301
15952
|
let sourceExists = null;
|
|
15302
15953
|
let sourceUpsert = null;
|
|
15303
|
-
let skippedByDatabase = 0;
|
|
15304
15954
|
if (useDatabase) {
|
|
15955
|
+
if (!overwrite) {
|
|
15956
|
+
overwrite = true;
|
|
15957
|
+
console.warn(
|
|
15958
|
+
"Overwriting files is enabled due to database tracking."
|
|
15959
|
+
);
|
|
15960
|
+
}
|
|
15305
15961
|
logger2.log("Connecting to database for download tracking...");
|
|
15306
|
-
db = await
|
|
15962
|
+
db = await getDb(options.db);
|
|
15307
15963
|
sourceExists = db.prepare(
|
|
15308
15964
|
"SELECT usfmZipEtag, usfmDownloadDate FROM EBibleSource WHERE id = @id AND sha256 = @sha256;"
|
|
15309
15965
|
);
|
|
15966
|
+
let skippedByDatabase = 0;
|
|
15967
|
+
let sourcesChecked = 0;
|
|
15968
|
+
let notDownloaded = 0;
|
|
15310
15969
|
filteredSources = filteredSources.filter((source) => {
|
|
15311
|
-
if (overwrite) {
|
|
15312
|
-
return true;
|
|
15313
|
-
}
|
|
15314
15970
|
const existingSource = sourceExists.get(source);
|
|
15971
|
+
sourcesChecked++;
|
|
15315
15972
|
if (existingSource) {
|
|
15316
15973
|
if (!existingSource.usfmDownloadDate) {
|
|
15974
|
+
notDownloaded++;
|
|
15317
15975
|
return true;
|
|
15318
15976
|
}
|
|
15319
15977
|
source.usfmZipEtag = existingSource.usfmZipEtag;
|
|
@@ -15328,13 +15986,18 @@ async function sourceTranslations(outputDir, translations, options = {}) {
|
|
|
15328
15986
|
});
|
|
15329
15987
|
if (skippedByDatabase > 0) {
|
|
15330
15988
|
logger2.log(
|
|
15331
|
-
`Database filtering: Skipped ${skippedByDatabase} already downloaded sources
|
|
15989
|
+
`Database filtering: Skipped ${skippedByDatabase} already downloaded sources.`
|
|
15332
15990
|
);
|
|
15333
15991
|
} else {
|
|
15334
|
-
logger2.log(
|
|
15335
|
-
"Database filtering: No sources were skipped (none previously downloaded)"
|
|
15336
|
-
);
|
|
15992
|
+
logger2.log(`Database filtering: No sources were skipped.`);
|
|
15337
15993
|
}
|
|
15994
|
+
logger2.log(`Database filtering:`);
|
|
15995
|
+
logger2.log(` \u2022 Checked: ${sourcesChecked}`);
|
|
15996
|
+
logger2.log(` \u2022 Skipped: ${skippedByDatabase}`);
|
|
15997
|
+
logger2.log(` \u2022 New: ${notDownloaded}`);
|
|
15998
|
+
logger2.log(
|
|
15999
|
+
` \u2022 Needs Update: ${filteredSources.length - notDownloaded}`
|
|
16000
|
+
);
|
|
15338
16001
|
sourceUpsert = db.prepare(`INSERT INTO EBibleSource(
|
|
15339
16002
|
id, translationId, title, shortTitle, languageCode, textDirection, copyright, description,
|
|
15340
16003
|
oldTestamentBooks, oldTestamentChapters, oldTestamentVerses,
|
|
@@ -15541,9 +16204,9 @@ Total selected: ${selectedSources.length} sources from ${sourceGroups.size} tran
|
|
|
15541
16204
|
if (!convertToUsx3) {
|
|
15542
16205
|
source.usfmDownloadDate = import_luxon2.DateTime.utc().toISO();
|
|
15543
16206
|
source.usfmDownloadPath = outputDir;
|
|
15544
|
-
|
|
15545
|
-
|
|
15546
|
-
|
|
16207
|
+
if (sourceUpsert) {
|
|
16208
|
+
sourceUpsert.run(source);
|
|
16209
|
+
}
|
|
15547
16210
|
}
|
|
15548
16211
|
} catch (error) {
|
|
15549
16212
|
numErrored++;
|