@helloao/cli 0.0.20 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +136 -136
  2. package/dist/cjs/cli.cjs +5526 -6666
  3. package/dist/cjs/index.cjs +3830 -5150
  4. package/dist/esm/index.js +1233 -342
  5. package/dist/esm/index.js.map +4 -4
  6. package/dist/types/actions.d.ts +36 -0
  7. package/dist/types/db.d.ts +2 -2
  8. package/dist/types/ebible.d.ts +1 -1
  9. package/dist/types/files.d.ts +7 -1
  10. package/dist/types/openapi.d.ts +2 -0
  11. package/dist/types/uploads.d.ts +6 -0
  12. package/meta/ARBNAV.json +10 -10
  13. package/meta/BSB.json +10 -10
  14. package/meta/HBOMAS.json +10 -10
  15. package/meta/HINIRV.json +10 -10
  16. package/meta/eng_dra.json +10 -10
  17. package/migrations/20240420231455_initial/migration.sql +66 -66
  18. package/migrations/20240711173108_add_chapter_audio/migration.sql +13 -13
  19. package/migrations/20240724212651_add_hashing/migration.sql +25 -25
  20. package/migrations/20250625201152_add_extra_ebible_metadata/migration.sql +3 -3
  21. package/migrations/20250630200532_add_apocryhpa_flag/migration.sql +2 -2
  22. package/migrations/20250701195337_add_file_warnings/migration.sql +8 -8
  23. package/migrations/20251028135135_add_datasets/migration.sql +72 -72
  24. package/migrations/20251028144932_fix_dataset_types/migration.sql +50 -50
  25. package/migrations/20260217200934_add_license_notice/migration.sql +5 -0
  26. package/package.json +5 -2
  27. package/prisma-gen/edge.js +5 -3
  28. package/prisma-gen/index-browser.js +2 -0
  29. package/prisma-gen/index.d.ts +92 -0
  30. package/prisma-gen/index.js +5 -3
  31. package/prisma-gen/wasm.js +2 -0
  32. package/schema.prisma +2 -0
  33. package/prisma-gen/client.d.ts +0 -1
  34. package/prisma-gen/client.js +0 -4
@@ -1,3 +1,4 @@
1
+ import { PrismaClient } from './prisma-gen/index.js';
1
2
  import { InputTranslationMetadata } from '@helloao/tools/generation/index.js';
2
3
  import { UploadApiFromDatabaseOptions, UploadApiOptions } from './uploads.js';
3
4
  export interface GetTranslationsItem {
@@ -236,5 +237,40 @@ export declare function uploadTestTranslation(input: string, options: UploadTest
236
237
  /**
237
238
  * Asks the user for the metadata for the translation.
238
239
  */
240
+ export interface UploadTypesenseVersesOptions {
241
+ translations?: string[];
242
+ language?: string;
243
+ }
244
+ export interface TypesenseSearchOptions {
245
+ translation?: string;
246
+ book?: string;
247
+ chapter?: string | number;
248
+ language?: string;
249
+ search?: string;
250
+ }
251
+ export declare function uploadTypesenseVerses(nodes: string[], apiKey: string, db: PrismaClient, options: UploadTypesenseVersesOptions): Promise<void>;
252
+ export declare function searchTypesenseVerses(nodes: string[], apiKey: string, options: TypesenseSearchOptions): Promise<import("typesense").SearchResponse<object>>;
239
253
  export declare function askForMetadata(defaultId?: string): Promise<InputTranslationMetadata>;
254
+ export interface CopyOpenBibleAudioOptions {
255
+ /**
256
+ * The translation ID to copy (e.g. "BSB"). If omitted, all known translations are copied.
257
+ */
258
+ translation?: string;
259
+ /**
260
+ * The readers to copy (e.g. ["hays", "souer"]). If omitted, all known readers for the translation are copied.
261
+ */
262
+ readers?: string[];
263
+ /**
264
+ * Whether to overwrite existing files.
265
+ */
266
+ overwrite?: boolean;
267
+ }
268
+ /**
269
+ * Copies .mp3 files from the OpenBible filename format to the Free Use Bible API format:
270
+ * /api/{translationId}/{bookId}/{chapterNumber}/audio/{reader}.mp3
271
+ * @param srcDir The source directory containing .mp3 files in OpenBible filename format.
272
+ * @param destDir The destination directory for files in API format.
273
+ * @param options The options.
274
+ */
275
+ export declare function copyOpenBibleAudio(srcDir: string, destDir: string, options?: CopyOpenBibleAudioOptions): Promise<void>;
240
276
  //# sourceMappingURL=actions.d.ts.map
@@ -81,13 +81,13 @@ export declare function insertDatasetBooks(db: Database, dataset: DatasetDataset
81
81
  export declare function insertDatasetContent(db: Database, dataset: DatasetDataset, book: DatasetDatasetBook, chapters: DatasetBookChapter[]): void;
82
82
  export declare function getDbPathFromDir(dir: string): string;
83
83
  export declare function getDbPath(p?: string | null): string;
84
- export declare function getPrismaDb(path?: string | null): PrismaClient<{
84
+ export declare function getPrismaDb(path?: string | null): Promise<PrismaClient<{
85
85
  datasources: {
86
86
  db: {
87
87
  url: string;
88
88
  };
89
89
  };
90
- }, never, import("prisma-gen/runtime/library.js").DefaultArgs>;
90
+ }, never, import("./prisma-gen/runtime/library.js").DefaultArgs>>;
91
91
  /**
92
92
  * Gets the database from the given path. If no path is provided, the current working directory is used.
93
93
  * @param path The path to the database. If not provided, the current working directory is used.
@@ -1,4 +1,4 @@
1
- import { EBibleSource } from 'prisma-gen/index.js';
1
+ import { EBibleSource } from './prisma-gen/index.js';
2
2
  /**
3
3
  * Fetches eBible translation metadata and returns EBibleSource objects.
4
4
  */
@@ -1,6 +1,6 @@
1
1
  import { InputFile, InputTranslationMetadata, OutputFile } from '@helloao/tools/generation/common-types.js';
2
2
  import { Readable } from 'stream';
3
- import { DatasetDataset } from '@helloao/tools/generation/dataset.js';
3
+ import { DatasetDataset, DatasetTranslation } from '@helloao/tools/generation/dataset.js';
4
4
  /**
5
5
  * Defines an interface that contains information about a serialized file.
6
6
  */
@@ -80,6 +80,12 @@ export declare function loadCommentariesFiles(dirs: string[]): Promise<InputFile
80
80
  * @returns The list of files that were loaded, or null if the commentary has no metadata.
81
81
  */
82
82
  export declare function loadCommentaryFiles(commentary: string): Promise<InputFile[] | null>;
83
+ /**
84
+ * Imports all the datasets from the given directory into the database in the current working directory.
85
+ * @param dir The directory that the datasets are located in.
86
+ * @param options The options.
87
+ */
88
+ export declare function loadTranslationsFromDirectory(dir: string): Promise<DatasetTranslation[]>;
83
89
  /**
84
90
  * Imports all the datasets from the given directory into the database in the current working directory.
85
91
  * @param dir The directory that the datasets are located in.
@@ -0,0 +1,2 @@
1
+ export declare function createFreeUseBibleApiOpenApiDocument(): any;
2
+ //# sourceMappingURL=openapi.d.ts.map
@@ -56,6 +56,11 @@ export interface UploadApiOptions {
56
56
  * Whether to generate audio files for the API.
57
57
  */
58
58
  generateAudioFiles?: boolean;
59
+ /**
60
+ * Whether to generate the OpenAPI document for the API.
61
+ * Defaults to true.
62
+ */
63
+ generateOpenApiDocument?: boolean;
59
64
  /**
60
65
  * Whether to generate pretty-printed JSON files.
61
66
  */
@@ -72,6 +77,7 @@ export interface UploadApiOptions {
72
77
  * @param options The options to use for the upload.
73
78
  */
74
79
  export declare function uploadApiFilesFromDatabase(db: PrismaClient, dest: string, options: UploadApiFromDatabaseOptions): Promise<void>;
80
+ export declare function uploadOpenApiDocument(dest: string, options: UploadApiFromDatabaseOptions): Promise<void>;
75
81
  /**
76
82
  * Generates the API files from the given datasets and uploads them to the specified destination.
77
83
  * @param dest The destination to upload the API files to. Supported destinations are S3, zip files, and local directories.
package/meta/ARBNAV.json CHANGED
@@ -1,10 +1,10 @@
1
- {
2
- "id": "ARBNAV",
3
- "name": "كتاب الحياة",
4
- "direction": "rtl",
5
- "englishName": "New Arabic Version (Book of Life)",
6
- "language": "arb",
7
- "licenseUrl": "https://ebible.org/Scriptures/details.php?id=arbnav",
8
- "shortName": "NAV",
9
- "website": "https://ebible.org/Scriptures/details.php?id=arbnav"
10
- }
1
+ {
2
+ "id": "ARBNAV",
3
+ "name": "كتاب الحياة",
4
+ "direction": "rtl",
5
+ "englishName": "New Arabic Version (Book of Life)",
6
+ "language": "arb",
7
+ "licenseUrl": "https://ebible.org/Scriptures/details.php?id=arbnav",
8
+ "shortName": "NAV",
9
+ "website": "https://ebible.org/Scriptures/details.php?id=arbnav"
10
+ }
package/meta/BSB.json CHANGED
@@ -1,10 +1,10 @@
1
- {
2
- "id": "BSB",
3
- "name": "Berean Standard Bible",
4
- "direction": "ltr",
5
- "englishName": "Berean Standard Bible",
6
- "language": "eng",
7
- "licenseUrl": "https://berean.bible/",
8
- "shortName": "BSB",
9
- "website": "https://berean.bible/"
10
- }
1
+ {
2
+ "id": "BSB",
3
+ "name": "Berean Standard Bible",
4
+ "direction": "ltr",
5
+ "englishName": "Berean Standard Bible",
6
+ "language": "eng",
7
+ "licenseUrl": "https://berean.bible/",
8
+ "shortName": "BSB",
9
+ "website": "https://berean.bible/"
10
+ }
package/meta/HBOMAS.json CHANGED
@@ -1,10 +1,10 @@
1
- {
2
- "id": "HBOMAS",
3
- "name": "כתבי הקודש",
4
- "direction": "rtl",
5
- "englishName": "Hebrew Masoretic OT",
6
- "language": "hbo",
7
- "licenseUrl": "https://ebible.org/Scriptures/details.php?id=hbo",
8
- "shortName": "MAS",
9
- "website": "https://ebible.org/Scriptures/details.php?id=hbo"
10
- }
1
+ {
2
+ "id": "HBOMAS",
3
+ "name": "כתבי הקודש",
4
+ "direction": "rtl",
5
+ "englishName": "Hebrew Masoretic OT",
6
+ "language": "hbo",
7
+ "licenseUrl": "https://ebible.org/Scriptures/details.php?id=hbo",
8
+ "shortName": "MAS",
9
+ "website": "https://ebible.org/Scriptures/details.php?id=hbo"
10
+ }
package/meta/HINIRV.json CHANGED
@@ -1,10 +1,10 @@
1
- {
2
- "id": "HINIRV",
3
- "name": "इंडियन रिवाइज्ड वर्जन",
4
- "direction": "ltr",
5
- "englishName": "Hindi Indian Revised Version Bible",
6
- "language": "hin",
7
- "licenseUrl": "https://ebible.org/Scriptures/details.php?id=hin2017",
8
- "shortName": "IRV",
9
- "website": "https://ebible.org/Scriptures/details.php?id=hin2017"
10
- }
1
+ {
2
+ "id": "HINIRV",
3
+ "name": "इंडियन रिवाइज्ड वर्जन",
4
+ "direction": "ltr",
5
+ "englishName": "Hindi Indian Revised Version Bible",
6
+ "language": "hin",
7
+ "licenseUrl": "https://ebible.org/Scriptures/details.php?id=hin2017",
8
+ "shortName": "IRV",
9
+ "website": "https://ebible.org/Scriptures/details.php?id=hin2017"
10
+ }
package/meta/eng_dra.json CHANGED
@@ -1,10 +1,10 @@
1
- {
2
- "id": "eng_dra",
3
- "name": "Douay-Rheims 1899",
4
- "direction": "ltr",
5
- "englishName": "Douay-Rheims 1899",
6
- "language": "eng",
7
- "licenseUrl": "https://ebible.org/Scriptures/details.php?id=engDRA",
8
- "shortName": "DRA",
9
- "website": "https://ebible.org/Scriptures/details.php?id=engDRA"
10
- }
1
+ {
2
+ "id": "eng_dra",
3
+ "name": "Douay-Rheims 1899",
4
+ "direction": "ltr",
5
+ "englishName": "Douay-Rheims 1899",
6
+ "language": "eng",
7
+ "licenseUrl": "https://ebible.org/Scriptures/details.php?id=engDRA",
8
+ "shortName": "DRA",
9
+ "website": "https://ebible.org/Scriptures/details.php?id=engDRA"
10
+ }
@@ -1,66 +1,66 @@
1
- -- CreateTable
2
- CREATE TABLE "Translation" (
3
- "id" TEXT NOT NULL PRIMARY KEY,
4
- "name" TEXT NOT NULL,
5
- "website" TEXT NOT NULL,
6
- "licenseUrl" TEXT NOT NULL,
7
- "shortName" TEXT,
8
- "englishName" TEXT NOT NULL,
9
- "language" TEXT NOT NULL,
10
- "textDirection" TEXT NOT NULL
11
- );
12
-
13
- -- CreateTable
14
- CREATE TABLE "Book" (
15
- "id" TEXT NOT NULL,
16
- "translationId" TEXT NOT NULL,
17
- "name" TEXT NOT NULL,
18
- "commonName" TEXT NOT NULL,
19
- "title" TEXT,
20
- "numberOfChapters" INTEGER NOT NULL,
21
-
22
- PRIMARY KEY ("translationId", "id"),
23
- CONSTRAINT "Book_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
24
- );
25
-
26
- -- CreateTable
27
- CREATE TABLE "Chapter" (
28
- "number" INTEGER NOT NULL,
29
- "bookId" TEXT NOT NULL,
30
- "translationId" TEXT NOT NULL,
31
- "apiLink" TEXT NOT NULL,
32
-
33
- PRIMARY KEY ("translationId", "bookId", "number"),
34
- CONSTRAINT "Chapter_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
35
- CONSTRAINT "Chapter_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
36
- );
37
-
38
- -- CreateTable
39
- CREATE TABLE "ChapterVerse" (
40
- "number" INTEGER NOT NULL,
41
- "chapterNumber" INTEGER NOT NULL,
42
- "bookId" TEXT NOT NULL,
43
- "translationId" TEXT NOT NULL,
44
- "text" TEXT NOT NULL,
45
-
46
- PRIMARY KEY ("translationId", "bookId", "chapterNumber", "number"),
47
- CONSTRAINT "ChapterVerse_translationId_bookId_chapterNumber_fkey" FOREIGN KEY ("translationId", "bookId", "chapterNumber") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
48
- CONSTRAINT "ChapterVerse_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
49
- CONSTRAINT "ChapterVerse_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
50
- );
51
-
52
- -- CreateTable
53
- CREATE TABLE "ChapterFootnote" (
54
- "id" INTEGER NOT NULL,
55
- "chapterNumber" INTEGER NOT NULL,
56
- "bookId" TEXT NOT NULL,
57
- "translationId" TEXT NOT NULL,
58
- "text" TEXT NOT NULL,
59
- "verseNumber" INTEGER,
60
-
61
- PRIMARY KEY ("translationId", "bookId", "chapterNumber", "id"),
62
- CONSTRAINT "ChapterFootnote_translationId_bookId_chapterNumber_fkey" FOREIGN KEY ("translationId", "bookId", "chapterNumber") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
63
- CONSTRAINT "ChapterFootnote_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
64
- CONSTRAINT "ChapterFootnote_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
65
- CONSTRAINT "ChapterFootnote_translationId_bookId_chapterNumber_verseNumber_fkey" FOREIGN KEY ("translationId", "bookId", "chapterNumber", "verseNumber") REFERENCES "ChapterVerse" ("translationId", "bookId", "chapterNumber", "number") ON DELETE RESTRICT ON UPDATE CASCADE
66
- );
1
+ -- CreateTable
2
+ CREATE TABLE "Translation" (
3
+ "id" TEXT NOT NULL PRIMARY KEY,
4
+ "name" TEXT NOT NULL,
5
+ "website" TEXT NOT NULL,
6
+ "licenseUrl" TEXT NOT NULL,
7
+ "shortName" TEXT,
8
+ "englishName" TEXT NOT NULL,
9
+ "language" TEXT NOT NULL,
10
+ "textDirection" TEXT NOT NULL
11
+ );
12
+
13
+ -- CreateTable
14
+ CREATE TABLE "Book" (
15
+ "id" TEXT NOT NULL,
16
+ "translationId" TEXT NOT NULL,
17
+ "name" TEXT NOT NULL,
18
+ "commonName" TEXT NOT NULL,
19
+ "title" TEXT,
20
+ "numberOfChapters" INTEGER NOT NULL,
21
+
22
+ PRIMARY KEY ("translationId", "id"),
23
+ CONSTRAINT "Book_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
24
+ );
25
+
26
+ -- CreateTable
27
+ CREATE TABLE "Chapter" (
28
+ "number" INTEGER NOT NULL,
29
+ "bookId" TEXT NOT NULL,
30
+ "translationId" TEXT NOT NULL,
31
+ "apiLink" TEXT NOT NULL,
32
+
33
+ PRIMARY KEY ("translationId", "bookId", "number"),
34
+ CONSTRAINT "Chapter_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
35
+ CONSTRAINT "Chapter_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
36
+ );
37
+
38
+ -- CreateTable
39
+ CREATE TABLE "ChapterVerse" (
40
+ "number" INTEGER NOT NULL,
41
+ "chapterNumber" INTEGER NOT NULL,
42
+ "bookId" TEXT NOT NULL,
43
+ "translationId" TEXT NOT NULL,
44
+ "text" TEXT NOT NULL,
45
+
46
+ PRIMARY KEY ("translationId", "bookId", "chapterNumber", "number"),
47
+ CONSTRAINT "ChapterVerse_translationId_bookId_chapterNumber_fkey" FOREIGN KEY ("translationId", "bookId", "chapterNumber") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
48
+ CONSTRAINT "ChapterVerse_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
49
+ CONSTRAINT "ChapterVerse_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
50
+ );
51
+
52
+ -- CreateTable
53
+ CREATE TABLE "ChapterFootnote" (
54
+ "id" INTEGER NOT NULL,
55
+ "chapterNumber" INTEGER NOT NULL,
56
+ "bookId" TEXT NOT NULL,
57
+ "translationId" TEXT NOT NULL,
58
+ "text" TEXT NOT NULL,
59
+ "verseNumber" INTEGER,
60
+
61
+ PRIMARY KEY ("translationId", "bookId", "chapterNumber", "id"),
62
+ CONSTRAINT "ChapterFootnote_translationId_bookId_chapterNumber_fkey" FOREIGN KEY ("translationId", "bookId", "chapterNumber") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
63
+ CONSTRAINT "ChapterFootnote_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
64
+ CONSTRAINT "ChapterFootnote_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
65
+ CONSTRAINT "ChapterFootnote_translationId_bookId_chapterNumber_verseNumber_fkey" FOREIGN KEY ("translationId", "bookId", "chapterNumber", "verseNumber") REFERENCES "ChapterVerse" ("translationId", "bookId", "chapterNumber", "number") ON DELETE RESTRICT ON UPDATE CASCADE
66
+ );
@@ -1,13 +1,13 @@
1
- -- CreateTable
2
- CREATE TABLE "ChapterAudioUrl" (
3
- "number" INTEGER NOT NULL,
4
- "bookId" TEXT NOT NULL,
5
- "translationId" TEXT NOT NULL,
6
- "reader" TEXT NOT NULL,
7
- "url" TEXT NOT NULL,
8
-
9
- PRIMARY KEY ("translationId", "bookId", "number", "reader"),
10
- CONSTRAINT "ChapterAudioUrl_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
11
- CONSTRAINT "ChapterAudioUrl_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
12
- CONSTRAINT "ChapterAudioUrl_translationId_bookId_number_fkey" FOREIGN KEY ("translationId", "bookId", "number") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE
13
- );
1
+ -- CreateTable
2
+ CREATE TABLE "ChapterAudioUrl" (
3
+ "number" INTEGER NOT NULL,
4
+ "bookId" TEXT NOT NULL,
5
+ "translationId" TEXT NOT NULL,
6
+ "reader" TEXT NOT NULL,
7
+ "url" TEXT NOT NULL,
8
+
9
+ PRIMARY KEY ("translationId", "bookId", "number", "reader"),
10
+ CONSTRAINT "ChapterAudioUrl_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
11
+ CONSTRAINT "ChapterAudioUrl_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
12
+ CONSTRAINT "ChapterAudioUrl_translationId_bookId_number_fkey" FOREIGN KEY ("translationId", "bookId", "number") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE
13
+ );
@@ -1,25 +1,25 @@
1
- -- AlterTable
2
- ALTER TABLE "Book" ADD COLUMN "sha256" TEXT;
3
-
4
- -- AlterTable
5
- ALTER TABLE "Chapter" ADD COLUMN "sha256" TEXT;
6
-
7
- -- AlterTable
8
- ALTER TABLE "ChapterFootnote" ADD COLUMN "sha256" TEXT;
9
-
10
- -- AlterTable
11
- ALTER TABLE "ChapterVerse" ADD COLUMN "sha256" TEXT;
12
-
13
- -- AlterTable
14
- ALTER TABLE "Translation" ADD COLUMN "sha256" TEXT;
15
-
16
- -- CreateTable
17
- CREATE TABLE "InputFile" (
18
- "translationId" TEXT NOT NULL,
19
- "name" TEXT NOT NULL,
20
- "format" TEXT NOT NULL,
21
- "sha256" TEXT NOT NULL,
22
- "sizeInBytes" INTEGER NOT NULL,
23
-
24
- PRIMARY KEY ("translationId", "name")
25
- );
1
+ -- AlterTable
2
+ ALTER TABLE "Book" ADD COLUMN "sha256" TEXT;
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "Chapter" ADD COLUMN "sha256" TEXT;
6
+
7
+ -- AlterTable
8
+ ALTER TABLE "ChapterFootnote" ADD COLUMN "sha256" TEXT;
9
+
10
+ -- AlterTable
11
+ ALTER TABLE "ChapterVerse" ADD COLUMN "sha256" TEXT;
12
+
13
+ -- AlterTable
14
+ ALTER TABLE "Translation" ADD COLUMN "sha256" TEXT;
15
+
16
+ -- CreateTable
17
+ CREATE TABLE "InputFile" (
18
+ "translationId" TEXT NOT NULL,
19
+ "name" TEXT NOT NULL,
20
+ "format" TEXT NOT NULL,
21
+ "sha256" TEXT NOT NULL,
22
+ "sizeInBytes" INTEGER NOT NULL,
23
+
24
+ PRIMARY KEY ("translationId", "name")
25
+ );
@@ -1,3 +1,3 @@
1
- -- AlterTable
2
- ALTER TABLE "EBibleSource" ADD COLUMN "shortTitle" TEXT;
3
- ALTER TABLE "EBibleSource" ADD COLUMN "textDirection" TEXT;
1
+ -- AlterTable
2
+ ALTER TABLE "EBibleSource" ADD COLUMN "shortTitle" TEXT;
3
+ ALTER TABLE "EBibleSource" ADD COLUMN "textDirection" TEXT;
@@ -1,2 +1,2 @@
1
- -- AlterTable
2
- ALTER TABLE "Book" ADD COLUMN "isApocryphal" BOOLEAN;
1
+ -- AlterTable
2
+ ALTER TABLE "Book" ADD COLUMN "isApocryphal" BOOLEAN;
@@ -1,8 +1,8 @@
1
- -- CreateTable
2
- CREATE TABLE "InputFileWarning" (
3
- "name" TEXT NOT NULL,
4
- "type" TEXT NOT NULL,
5
- "message" TEXT NOT NULL,
6
-
7
- PRIMARY KEY ("name", "type", "message")
8
- );
1
+ -- CreateTable
2
+ CREATE TABLE "InputFileWarning" (
3
+ "name" TEXT NOT NULL,
4
+ "type" TEXT NOT NULL,
5
+ "message" TEXT NOT NULL,
6
+
7
+ PRIMARY KEY ("name", "type", "message")
8
+ );
@@ -1,72 +1,72 @@
1
- -- CreateTable
2
- CREATE TABLE "Dataset" (
3
- "id" TEXT NOT NULL PRIMARY KEY,
4
- "name" TEXT NOT NULL,
5
- "website" TEXT NOT NULL,
6
- "licenseUrl" TEXT NOT NULL,
7
- "licenseNotes" TEXT,
8
- "englishName" TEXT NOT NULL,
9
- "language" TEXT NOT NULL,
10
- "textDirection" TEXT NOT NULL,
11
- "sha256" TEXT
12
- );
13
-
14
- -- CreateTable
15
- CREATE TABLE "DatasetBook" (
16
- "id" TEXT NOT NULL,
17
- "datasetId" TEXT NOT NULL,
18
- "name" TEXT NOT NULL,
19
- "commonName" TEXT NOT NULL,
20
- "introduction" TEXT,
21
- "introductionSummary" TEXT,
22
- "order" INTEGER NOT NULL,
23
- "numberOfChapters" INTEGER NOT NULL,
24
- "sha256" TEXT,
25
-
26
- PRIMARY KEY ("datasetId", "id"),
27
- CONSTRAINT "DatasetBook_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
28
- );
29
-
30
- -- CreateTable
31
- CREATE TABLE "DatasetChapter" (
32
- "number" INTEGER NOT NULL,
33
- "bookId" TEXT NOT NULL,
34
- "datasetId" TEXT NOT NULL,
35
- "json" TEXT NOT NULL,
36
- "sha256" TEXT,
37
-
38
- PRIMARY KEY ("datasetId", "bookId", "number"),
39
- CONSTRAINT "DatasetChapter_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
40
- CONSTRAINT "DatasetChapter_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
41
- );
42
-
43
- -- CreateTable
44
- CREATE TABLE "DatasetChapterVerse" (
45
- "number" INTEGER NOT NULL,
46
- "chapterNumber" INTEGER NOT NULL,
47
- "bookId" TEXT NOT NULL,
48
- "datasetId" TEXT NOT NULL,
49
- "contentJson" TEXT NOT NULL,
50
- "sha256" TEXT,
51
-
52
- PRIMARY KEY ("datasetId", "bookId", "chapterNumber", "number"),
53
- CONSTRAINT "DatasetChapterVerse_datasetId_bookId_chapterNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber") REFERENCES "DatasetChapter" ("datasetId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
54
- CONSTRAINT "DatasetChapterVerse_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
55
- CONSTRAINT "DatasetChapterVerse_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
56
- );
57
-
58
- -- CreateTable
59
- CREATE TABLE "DatasetReference" (
60
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
61
- "datasetId" TEXT NOT NULL,
62
- "bookId" TEXT NOT NULL,
63
- "chapterNumber" INTEGER NOT NULL,
64
- "verseNumber" INTEGER NOT NULL,
65
- "endVerseNumber" INTEGER,
66
- "score" INTEGER,
67
- "sha256" TEXT,
68
- CONSTRAINT "DatasetReference_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
69
- CONSTRAINT "DatasetReference_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
70
- CONSTRAINT "DatasetReference_datasetId_bookId_chapterNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber") REFERENCES "DatasetChapter" ("datasetId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
71
- CONSTRAINT "DatasetReference_datasetId_bookId_chapterNumber_verseNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber", "verseNumber") REFERENCES "DatasetChapterVerse" ("datasetId", "bookId", "chapterNumber", "number") ON DELETE RESTRICT ON UPDATE CASCADE
72
- );
1
+ -- CreateTable
2
+ CREATE TABLE "Dataset" (
3
+ "id" TEXT NOT NULL PRIMARY KEY,
4
+ "name" TEXT NOT NULL,
5
+ "website" TEXT NOT NULL,
6
+ "licenseUrl" TEXT NOT NULL,
7
+ "licenseNotes" TEXT,
8
+ "englishName" TEXT NOT NULL,
9
+ "language" TEXT NOT NULL,
10
+ "textDirection" TEXT NOT NULL,
11
+ "sha256" TEXT
12
+ );
13
+
14
+ -- CreateTable
15
+ CREATE TABLE "DatasetBook" (
16
+ "id" TEXT NOT NULL,
17
+ "datasetId" TEXT NOT NULL,
18
+ "name" TEXT NOT NULL,
19
+ "commonName" TEXT NOT NULL,
20
+ "introduction" TEXT,
21
+ "introductionSummary" TEXT,
22
+ "order" INTEGER NOT NULL,
23
+ "numberOfChapters" INTEGER NOT NULL,
24
+ "sha256" TEXT,
25
+
26
+ PRIMARY KEY ("datasetId", "id"),
27
+ CONSTRAINT "DatasetBook_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
28
+ );
29
+
30
+ -- CreateTable
31
+ CREATE TABLE "DatasetChapter" (
32
+ "number" INTEGER NOT NULL,
33
+ "bookId" TEXT NOT NULL,
34
+ "datasetId" TEXT NOT NULL,
35
+ "json" TEXT NOT NULL,
36
+ "sha256" TEXT,
37
+
38
+ PRIMARY KEY ("datasetId", "bookId", "number"),
39
+ CONSTRAINT "DatasetChapter_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
40
+ CONSTRAINT "DatasetChapter_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
41
+ );
42
+
43
+ -- CreateTable
44
+ CREATE TABLE "DatasetChapterVerse" (
45
+ "number" INTEGER NOT NULL,
46
+ "chapterNumber" INTEGER NOT NULL,
47
+ "bookId" TEXT NOT NULL,
48
+ "datasetId" TEXT NOT NULL,
49
+ "contentJson" TEXT NOT NULL,
50
+ "sha256" TEXT,
51
+
52
+ PRIMARY KEY ("datasetId", "bookId", "chapterNumber", "number"),
53
+ CONSTRAINT "DatasetChapterVerse_datasetId_bookId_chapterNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber") REFERENCES "DatasetChapter" ("datasetId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
54
+ CONSTRAINT "DatasetChapterVerse_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
55
+ CONSTRAINT "DatasetChapterVerse_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
56
+ );
57
+
58
+ -- CreateTable
59
+ CREATE TABLE "DatasetReference" (
60
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
61
+ "datasetId" TEXT NOT NULL,
62
+ "bookId" TEXT NOT NULL,
63
+ "chapterNumber" INTEGER NOT NULL,
64
+ "verseNumber" INTEGER NOT NULL,
65
+ "endVerseNumber" INTEGER,
66
+ "score" INTEGER,
67
+ "sha256" TEXT,
68
+ CONSTRAINT "DatasetReference_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
69
+ CONSTRAINT "DatasetReference_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
70
+ CONSTRAINT "DatasetReference_datasetId_bookId_chapterNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber") REFERENCES "DatasetChapter" ("datasetId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
71
+ CONSTRAINT "DatasetReference_datasetId_bookId_chapterNumber_verseNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber", "verseNumber") REFERENCES "DatasetChapterVerse" ("datasetId", "bookId", "chapterNumber", "number") ON DELETE RESTRICT ON UPDATE CASCADE
72
+ );