@helloao/cli 0.2.0 → 0.3.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 (77) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/cli.cjs +2772 -6200
  3. package/dist/cjs/index.cjs +2694 -6253
  4. package/dist/esm/cli.js +5699 -0
  5. package/dist/esm/cli.js.map +7 -0
  6. package/dist/esm/index.js +839 -6020
  7. package/dist/esm/index.js.map +4 -4
  8. package/dist/types/actions.d.ts +36 -1
  9. package/dist/types/db.d.ts +12 -8
  10. package/dist/types/ebible.d.ts +1 -1
  11. package/dist/types/files.d.ts +6 -1
  12. package/dist/types/prisma-gen/browser.d.ts +110 -0
  13. package/dist/types/prisma-gen/client.d.ts +129 -0
  14. package/dist/types/prisma-gen/commonInputTypes.d.ts +378 -0
  15. package/dist/types/prisma-gen/enums.d.ts +2 -0
  16. package/dist/types/prisma-gen/internal/class.d.ts +353 -0
  17. package/dist/types/prisma-gen/internal/prismaNamespace.d.ts +2273 -0
  18. package/dist/types/prisma-gen/internal/prismaNamespaceBrowser.d.ts +294 -0
  19. package/dist/types/prisma-gen/models/Book.d.ts +2197 -0
  20. package/dist/types/prisma-gen/models/Chapter.d.ts +1934 -0
  21. package/dist/types/prisma-gen/models/ChapterAudioTiming.d.ts +1414 -0
  22. package/dist/types/prisma-gen/models/ChapterAudioUrl.d.ts +1414 -0
  23. package/dist/types/prisma-gen/models/ChapterFootnote.d.ts +1642 -0
  24. package/dist/types/prisma-gen/models/ChapterVerse.d.ts +1653 -0
  25. package/dist/types/prisma-gen/models/ChapterWords.d.ts +1366 -0
  26. package/dist/types/prisma-gen/models/Commentary.d.ts +1711 -0
  27. package/dist/types/prisma-gen/models/CommentaryBook.d.ts +1622 -0
  28. package/dist/types/prisma-gen/models/CommentaryChapter.d.ts +1487 -0
  29. package/dist/types/prisma-gen/models/CommentaryChapterVerse.d.ts +1514 -0
  30. package/dist/types/prisma-gen/models/CommentaryProfile.d.ts +1451 -0
  31. package/dist/types/prisma-gen/models/Dataset.d.ts +1667 -0
  32. package/dist/types/prisma-gen/models/DatasetBook.d.ts +1565 -0
  33. package/dist/types/prisma-gen/models/DatasetChapter.d.ts +1553 -0
  34. package/dist/types/prisma-gen/models/DatasetChapterVerse.d.ts +1600 -0
  35. package/dist/types/prisma-gen/models/DatasetReference.d.ts +1789 -0
  36. package/dist/types/prisma-gen/models/EBibleSource.d.ts +1686 -0
  37. package/dist/types/prisma-gen/models/InputFile.d.ts +1039 -0
  38. package/dist/types/prisma-gen/models/InputFileWarning.d.ts +946 -0
  39. package/dist/types/prisma-gen/models/Translation.d.ts +2238 -0
  40. package/dist/types/prisma-gen/models.d.ts +23 -0
  41. package/dist/types/s3.d.ts +2 -0
  42. package/dist/types/uploads.d.ts +1 -1
  43. package/meta/ARBNAV.json +10 -10
  44. package/meta/BSB.json +10 -10
  45. package/meta/HBOMAS.json +10 -10
  46. package/meta/HINIRV.json +10 -10
  47. package/meta/eng_dra.json +10 -10
  48. package/migrations/20240420231455_initial/migration.sql +66 -66
  49. package/migrations/20240711173108_add_chapter_audio/migration.sql +13 -13
  50. package/migrations/20240724212651_add_hashing/migration.sql +25 -25
  51. package/migrations/20250625201152_add_extra_ebible_metadata/migration.sql +3 -3
  52. package/migrations/20250630200532_add_apocryhpa_flag/migration.sql +2 -2
  53. package/migrations/20250701195337_add_file_warnings/migration.sql +8 -8
  54. package/migrations/20251028135135_add_datasets/migration.sql +72 -72
  55. package/migrations/20251028144932_fix_dataset_types/migration.sql +50 -50
  56. package/migrations/20260217200934_add_license_notice/migration.sql +5 -5
  57. package/migrations/20260703000000_add_chapter_audio_timing/migration.sql +13 -0
  58. package/migrations/20260809000000_add_chapter_words/migration.sql +12 -0
  59. package/package.json +21 -18
  60. package/schema.prisma +41 -2
  61. package/prisma-gen/default.d.ts +0 -1
  62. package/prisma-gen/default.js +0 -1
  63. package/prisma-gen/edge.d.ts +0 -1
  64. package/prisma-gen/edge.js +0 -403
  65. package/prisma-gen/index-browser.js +0 -397
  66. package/prisma-gen/index.d.ts +0 -34011
  67. package/prisma-gen/index.js +0 -426
  68. package/prisma-gen/runtime/edge-esm.js +0 -31
  69. package/prisma-gen/runtime/edge.js +0 -31
  70. package/prisma-gen/runtime/index-browser.d.ts +0 -365
  71. package/prisma-gen/runtime/index-browser.js +0 -13
  72. package/prisma-gen/runtime/library.d.ts +0 -3403
  73. package/prisma-gen/runtime/library.js +0 -143
  74. package/prisma-gen/runtime/react-native.js +0 -80
  75. package/prisma-gen/runtime/wasm.js +0 -32
  76. package/prisma-gen/wasm.d.ts +0 -1
  77. package/prisma-gen/wasm.js +0 -397
@@ -1,50 +1,50 @@
1
- /*
2
- Warnings:
3
-
4
- - You are about to drop the column `commonName` on the `DatasetBook` table. All the data in the column will be lost.
5
- - You are about to drop the column `introduction` on the `DatasetBook` table. All the data in the column will be lost.
6
- - You are about to drop the column `introductionSummary` on the `DatasetBook` table. All the data in the column will be lost.
7
- - You are about to drop the column `name` on the `DatasetBook` table. All the data in the column will be lost.
8
- - You are about to drop the column `sha256` on the `DatasetReference` table. All the data in the column will be lost.
9
- - Added the required column `referenceBookId` to the `DatasetReference` table without a default value. This is not possible if the table is not empty.
10
- - Added the required column `referenceChapter` to the `DatasetReference` table without a default value. This is not possible if the table is not empty.
11
- - Added the required column `referenceVerse` to the `DatasetReference` table without a default value. This is not possible if the table is not empty.
12
-
13
- */
14
- -- RedefineTables
15
- PRAGMA defer_foreign_keys=ON;
16
- PRAGMA foreign_keys=OFF;
17
- CREATE TABLE "new_DatasetBook" (
18
- "id" TEXT NOT NULL,
19
- "datasetId" TEXT NOT NULL,
20
- "order" INTEGER NOT NULL,
21
- "numberOfChapters" INTEGER NOT NULL,
22
- "sha256" TEXT,
23
-
24
- PRIMARY KEY ("datasetId", "id"),
25
- CONSTRAINT "DatasetBook_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
26
- );
27
- INSERT INTO "new_DatasetBook" ("datasetId", "id", "numberOfChapters", "order", "sha256") SELECT "datasetId", "id", "numberOfChapters", "order", "sha256" FROM "DatasetBook";
28
- DROP TABLE "DatasetBook";
29
- ALTER TABLE "new_DatasetBook" RENAME TO "DatasetBook";
30
- CREATE TABLE "new_DatasetReference" (
31
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
32
- "datasetId" TEXT NOT NULL,
33
- "bookId" TEXT NOT NULL,
34
- "chapterNumber" INTEGER NOT NULL,
35
- "verseNumber" INTEGER NOT NULL,
36
- "referenceBookId" TEXT NOT NULL,
37
- "referenceChapter" INTEGER NOT NULL,
38
- "referenceVerse" INTEGER NOT NULL,
39
- "endVerseNumber" INTEGER,
40
- "score" INTEGER,
41
- CONSTRAINT "DatasetReference_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
42
- CONSTRAINT "DatasetReference_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
43
- CONSTRAINT "DatasetReference_datasetId_bookId_chapterNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber") REFERENCES "DatasetChapter" ("datasetId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
44
- 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
45
- );
46
- INSERT INTO "new_DatasetReference" ("bookId", "chapterNumber", "datasetId", "endVerseNumber", "id", "score", "verseNumber") SELECT "bookId", "chapterNumber", "datasetId", "endVerseNumber", "id", "score", "verseNumber" FROM "DatasetReference";
47
- DROP TABLE "DatasetReference";
48
- ALTER TABLE "new_DatasetReference" RENAME TO "DatasetReference";
49
- PRAGMA foreign_keys=ON;
50
- PRAGMA defer_foreign_keys=OFF;
1
+ /*
2
+ Warnings:
3
+
4
+ - You are about to drop the column `commonName` on the `DatasetBook` table. All the data in the column will be lost.
5
+ - You are about to drop the column `introduction` on the `DatasetBook` table. All the data in the column will be lost.
6
+ - You are about to drop the column `introductionSummary` on the `DatasetBook` table. All the data in the column will be lost.
7
+ - You are about to drop the column `name` on the `DatasetBook` table. All the data in the column will be lost.
8
+ - You are about to drop the column `sha256` on the `DatasetReference` table. All the data in the column will be lost.
9
+ - Added the required column `referenceBookId` to the `DatasetReference` table without a default value. This is not possible if the table is not empty.
10
+ - Added the required column `referenceChapter` to the `DatasetReference` table without a default value. This is not possible if the table is not empty.
11
+ - Added the required column `referenceVerse` to the `DatasetReference` table without a default value. This is not possible if the table is not empty.
12
+
13
+ */
14
+ -- RedefineTables
15
+ PRAGMA defer_foreign_keys=ON;
16
+ PRAGMA foreign_keys=OFF;
17
+ CREATE TABLE "new_DatasetBook" (
18
+ "id" TEXT NOT NULL,
19
+ "datasetId" TEXT NOT NULL,
20
+ "order" INTEGER NOT NULL,
21
+ "numberOfChapters" INTEGER NOT NULL,
22
+ "sha256" TEXT,
23
+
24
+ PRIMARY KEY ("datasetId", "id"),
25
+ CONSTRAINT "DatasetBook_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
26
+ );
27
+ INSERT INTO "new_DatasetBook" ("datasetId", "id", "numberOfChapters", "order", "sha256") SELECT "datasetId", "id", "numberOfChapters", "order", "sha256" FROM "DatasetBook";
28
+ DROP TABLE "DatasetBook";
29
+ ALTER TABLE "new_DatasetBook" RENAME TO "DatasetBook";
30
+ CREATE TABLE "new_DatasetReference" (
31
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
32
+ "datasetId" TEXT NOT NULL,
33
+ "bookId" TEXT NOT NULL,
34
+ "chapterNumber" INTEGER NOT NULL,
35
+ "verseNumber" INTEGER NOT NULL,
36
+ "referenceBookId" TEXT NOT NULL,
37
+ "referenceChapter" INTEGER NOT NULL,
38
+ "referenceVerse" INTEGER NOT NULL,
39
+ "endVerseNumber" INTEGER,
40
+ "score" INTEGER,
41
+ CONSTRAINT "DatasetReference_datasetId_fkey" FOREIGN KEY ("datasetId") REFERENCES "Dataset" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
42
+ CONSTRAINT "DatasetReference_datasetId_bookId_fkey" FOREIGN KEY ("datasetId", "bookId") REFERENCES "DatasetBook" ("datasetId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
43
+ CONSTRAINT "DatasetReference_datasetId_bookId_chapterNumber_fkey" FOREIGN KEY ("datasetId", "bookId", "chapterNumber") REFERENCES "DatasetChapter" ("datasetId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE,
44
+ 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
45
+ );
46
+ INSERT INTO "new_DatasetReference" ("bookId", "chapterNumber", "datasetId", "endVerseNumber", "id", "score", "verseNumber") SELECT "bookId", "chapterNumber", "datasetId", "endVerseNumber", "id", "score", "verseNumber" FROM "DatasetReference";
47
+ DROP TABLE "DatasetReference";
48
+ ALTER TABLE "new_DatasetReference" RENAME TO "DatasetReference";
49
+ PRAGMA foreign_keys=ON;
50
+ PRAGMA defer_foreign_keys=OFF;
@@ -1,5 +1,5 @@
1
- -- AlterTable
2
- ALTER TABLE "Commentary" ADD COLUMN "licenseNotice" TEXT;
3
-
4
- -- AlterTable
5
- ALTER TABLE "Translation" ADD COLUMN "licenseNotice" TEXT;
1
+ -- AlterTable
2
+ ALTER TABLE "Commentary" ADD COLUMN "licenseNotice" TEXT;
3
+
4
+ -- AlterTable
5
+ ALTER TABLE "Translation" ADD COLUMN "licenseNotice" TEXT;
@@ -0,0 +1,13 @@
1
+ -- CreateTable
2
+ CREATE TABLE "ChapterAudioTiming" (
3
+ "number" INTEGER NOT NULL,
4
+ "bookId" TEXT NOT NULL,
5
+ "translationId" TEXT NOT NULL,
6
+ "reader" TEXT NOT NULL,
7
+ "timingsJson" TEXT NOT NULL,
8
+
9
+ PRIMARY KEY ("translationId", "bookId", "number", "reader"),
10
+ CONSTRAINT "ChapterAudioTiming_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
11
+ CONSTRAINT "ChapterAudioTiming_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
12
+ CONSTRAINT "ChapterAudioTiming_translationId_bookId_number_fkey" FOREIGN KEY ("translationId", "bookId", "number") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE
13
+ );
@@ -0,0 +1,12 @@
1
+ -- CreateTable
2
+ CREATE TABLE "ChapterWords" (
3
+ "number" INTEGER NOT NULL,
4
+ "bookId" TEXT NOT NULL,
5
+ "translationId" TEXT NOT NULL,
6
+ "wordsJson" TEXT NOT NULL,
7
+
8
+ PRIMARY KEY ("translationId", "bookId", "number"),
9
+ CONSTRAINT "ChapterWords_translationId_bookId_fkey" FOREIGN KEY ("translationId", "bookId") REFERENCES "Book" ("translationId", "id") ON DELETE RESTRICT ON UPDATE CASCADE,
10
+ CONSTRAINT "ChapterWords_translationId_fkey" FOREIGN KEY ("translationId") REFERENCES "Translation" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
11
+ CONSTRAINT "ChapterWords_translationId_bookId_number_fkey" FOREIGN KEY ("translationId", "bookId", "number") REFERENCES "Chapter" ("translationId", "bookId", "number") ON DELETE RESTRICT ON UPDATE CASCADE
12
+ );
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@helloao/cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "A CLI and related tools for managing HelloAO's Free Bible API",
5
+ "type": "module",
5
6
  "main": "./dist/cjs/index.cjs",
6
7
  "module": "./dist/esm/index.js",
7
8
  "types": "./dist/types/index.d.ts",
@@ -23,30 +24,32 @@
23
24
  "author": "Kallyn Gowdy <kal@helloao.org>",
24
25
  "license": "MIT",
25
26
  "dependencies": {
26
- "commander": "12.1.0",
27
- "@gracious.tech/fetch-client": "^0.7.0",
28
- "prisma": "^5.12.1",
29
- "@prisma/client": "^5.12.1",
30
- "better-sqlite3": "^9.5.0",
31
- "fs-extra": "^11.2.0",
32
- "lodash": "4.17.21",
33
- "linkedom": "0.18.4",
34
- "base64-js": "1.5.1",
35
- "hash.js": "1.1.7",
36
- "@zip.js/zip.js": "^2.6.40",
37
27
  "@aws-sdk/client-s3": "^3.609.0",
38
28
  "@aws-sdk/credential-providers": "^3.609.0",
39
- "@smithy/types": "^3.3.0",
40
- "@smithy/node-config-provider": "^3.1.9",
41
- "@smithy/config-resolver": "^3.0.10",
29
+ "@gracious.tech/fetch-client": "^0.7.0",
30
+ "@hey-api/openapi-ts": "^0.97.1",
42
31
  "@inquirer/prompts": "5.3.8",
32
+ "@prisma/client": "^7.8.0",
33
+ "@prisma/adapter-better-sqlite3": "^7.8.0",
34
+ "@smithy/config-resolver": "^3.0.10",
35
+ "@smithy/node-config-provider": "^3.1.9",
36
+ "@smithy/types": "^3.3.0",
37
+ "@zip.js/zip.js": "^2.6.40",
43
38
  "all-iso-language-codes": "1.0.17",
44
- "papaparse": "5.4.1",
39
+ "base64-js": "1.5.1",
40
+ "better-sqlite3": "^13.0.3",
41
+ "commander": "12.1.0",
42
+ "fs-extra": "^11.2.0",
43
+ "hash.js": "1.1.7",
44
+ "linkedom": "0.18.4",
45
+ "es-toolkit": "1.46.1",
45
46
  "luxon": "3.5.0",
47
+ "papaparse": "5.4.1",
48
+ "prisma": "^7.8.0",
46
49
  "typesense": "3.0.5",
47
- "zod-openapi": "5.4.6",
48
50
  "zod": "^4.4.3",
49
- "@helloao/tools": "0.2.0"
51
+ "zod-openapi": "5.4.6",
52
+ "@helloao/tools": "0.3.0"
50
53
  },
51
54
  "files": [
52
55
  "/README.md",
package/schema.prisma CHANGED
@@ -1,10 +1,9 @@
1
1
  datasource db {
2
2
  provider = "sqlite"
3
- url = "file:../../bible-api.dev.db"
4
3
  }
5
4
 
6
5
  generator client {
7
- provider = "prisma-client-js"
6
+ provider = "prisma-client"
8
7
  output = "./prisma-gen"
9
8
  }
10
9
 
@@ -29,6 +28,8 @@ model Translation {
29
28
  verses ChapterVerse[]
30
29
  footnotes ChapterFootnote[]
31
30
  audioUrls ChapterAudioUrl[]
31
+ audioTimings ChapterAudioTiming[]
32
+ words ChapterWords[]
32
33
  }
33
34
 
34
35
  model Commentary {
@@ -150,6 +151,8 @@ model Book {
150
151
  verses ChapterVerse[]
151
152
  footnotes ChapterFootnote[]
152
153
  audioUrls ChapterAudioUrl[]
154
+ audioTimings ChapterAudioTiming[]
155
+ words ChapterWords[]
153
156
 
154
157
  @@id([translationId, id])
155
158
  }
@@ -217,6 +220,8 @@ model Chapter {
217
220
  verses ChapterVerse[]
218
221
  footnotes ChapterFootnote[]
219
222
  audioUrls ChapterAudioUrl[]
223
+ audioTimings ChapterAudioTiming[]
224
+ words ChapterWords[]
220
225
 
221
226
  @@id([translationId, bookId, number])
222
227
  }
@@ -257,6 +262,40 @@ model ChapterAudioUrl {
257
262
  @@id([translationId, bookId, number, reader])
258
263
  }
259
264
 
265
+ model ChapterAudioTiming {
266
+ number Int
267
+ bookId String
268
+ book Book @relation(fields: [translationId, bookId], references: [translationId, id])
269
+
270
+ translationId String
271
+ translation Translation @relation(fields: [translationId], references: [id])
272
+
273
+ chapter Chapter @relation(fields: [translationId, bookId, number], references: [translationId, bookId, number])
274
+
275
+ reader String
276
+
277
+ // JSON array of numbers: the time (in seconds) that each verse starts, in verse order.
278
+ timingsJson String
279
+
280
+ @@id([translationId, bookId, number, reader])
281
+ }
282
+
283
+ model ChapterWords {
284
+ number Int
285
+ bookId String
286
+ book Book @relation(fields: [translationId, bookId], references: [translationId, id])
287
+
288
+ translationId String
289
+ translation Translation @relation(fields: [translationId], references: [id])
290
+
291
+ chapter Chapter @relation(fields: [translationId, bookId, number], references: [translationId, bookId, number])
292
+
293
+ // JSON object that maps a verse number to the list of annotated words in the verse.
294
+ wordsJson String
295
+
296
+ @@id([translationId, bookId, number])
297
+ }
298
+
260
299
  model ChapterVerse {
261
300
  number Int
262
301
 
@@ -1 +0,0 @@
1
- export * from "./index"
@@ -1 +0,0 @@
1
- module.exports = { ...require('.') }
@@ -1 +0,0 @@
1
- export * from "./default"