@helloao/cli 0.0.17 → 0.0.19

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 CHANGED
@@ -12330,7 +12330,10 @@ var chapterHeadingSchema = external_exports.object({
12330
12330
  });
12331
12331
  var verseSchema = external_exports.object({
12332
12332
  type: external_exports.literal("text"),
12333
- id: external_exports.string()
12333
+ id: external_exports.string(),
12334
+ bookCode: external_exports.string().optional(),
12335
+ chapter: external_exports.number().optional(),
12336
+ verse: external_exports.number().optional()
12334
12337
  });
12335
12338
  var paratextSchema = external_exports.object({
12336
12339
  type: external_exports.literal("paratext"),
@@ -12389,11 +12392,11 @@ var CodexParser = class {
12389
12392
  }
12390
12393
  chapter.content.push(...content);
12391
12394
  }
12392
- function addReference(ref, content) {
12393
- addChapterContent(ref.chapter, [
12395
+ function addReference(ref2, content) {
12396
+ addChapterContent(ref2.chapter, [
12394
12397
  {
12395
12398
  type: "verse",
12396
- number: ref.verse,
12399
+ number: ref2.verse,
12397
12400
  content
12398
12401
  }
12399
12402
  ]);
@@ -12407,6 +12410,24 @@ var CodexParser = class {
12407
12410
  content: [content]
12408
12411
  };
12409
12412
  }
12413
+ function addLineBreaks(lines2) {
12414
+ return lines2.reduce(
12415
+ (prev, current) => {
12416
+ if (prev.length === 0) return [current];
12417
+ else
12418
+ return [
12419
+ ...prev,
12420
+ {
12421
+ lineBreak: true
12422
+ },
12423
+ current
12424
+ ];
12425
+ },
12426
+ []
12427
+ );
12428
+ }
12429
+ let previousReference = null;
12430
+ let lines = [];
12410
12431
  for (let cell of data.cells) {
12411
12432
  if (cell.languageId === "html" && cell.value) {
12412
12433
  if (!cell.metadata) continue;
@@ -12414,31 +12435,57 @@ var CodexParser = class {
12414
12435
  if (!metadataResult.success) continue;
12415
12436
  const metadata = metadataResult.data;
12416
12437
  if (metadata.type === "text") {
12417
- const reference = parseVerseReference(metadata.id);
12418
- if (!reference)
12419
- throw new Error("Could not find verse reference.");
12438
+ let reference = parseVerseReference(metadata.id);
12439
+ if (!reference) {
12440
+ if (metadata.bookCode && metadata.chapter) {
12441
+ const bookId = getBookId(metadata.bookCode);
12442
+ if (!bookId) {
12443
+ throw new Error(
12444
+ "Could not find book ID for code: " + metadata.bookCode
12445
+ );
12446
+ }
12447
+ if (metadata.verse) {
12448
+ reference = {
12449
+ book: bookId,
12450
+ chapter: metadata.chapter,
12451
+ verse: metadata.verse
12452
+ };
12453
+ } else if (previousReference?.verse) {
12454
+ if (previousReference.chapter !== metadata.chapter || previousReference.book !== bookId) {
12455
+ throw new Error(
12456
+ "Cannot infer verse number for non-consecutive verse reference."
12457
+ );
12458
+ }
12459
+ reference = {
12460
+ book: bookId,
12461
+ chapter: metadata.chapter,
12462
+ verse: previousReference.verse
12463
+ };
12464
+ } else {
12465
+ throw new Error(
12466
+ "Could not find verse reference in metadata."
12467
+ );
12468
+ }
12469
+ } else {
12470
+ throw new Error(
12471
+ "Could not find verse reference in metadata."
12472
+ );
12473
+ }
12474
+ }
12475
+ if (previousReference && (reference.book !== previousReference.book || reference.chapter !== previousReference.chapter || reference.verse !== previousReference.verse)) {
12476
+ addReference(previousReference, addLineBreaks(lines));
12477
+ lines = [];
12478
+ }
12479
+ previousReference = reference;
12420
12480
  if (!root.id) root.id = reference.book;
12421
12481
  const content = stripHTML(cell.value);
12422
- const lines = content.split("\n").reduce(
12423
- (prev, current) => {
12424
- if (prev.length === 0) return [current];
12425
- else
12426
- return [
12427
- ...prev,
12428
- {
12429
- lineBreak: true
12430
- },
12431
- current
12432
- ];
12433
- },
12434
- []
12435
- );
12436
- addReference(reference, lines);
12482
+ const newLines = content.split("\n");
12483
+ lines.push(...newLines);
12437
12484
  } else if (metadata.type === "paratext") {
12438
12485
  const reference = parseVerseReference(`${metadata.id}:1`);
12439
12486
  if (reference) {
12440
12487
  const content = stripHTML(cell.value);
12441
- const lines = content.split("\n").reduce((prev, current) => {
12488
+ const lines2 = content.split("\n").reduce((prev, current) => {
12442
12489
  if (prev.length === 0)
12443
12490
  return [toHeading(current)];
12444
12491
  else
@@ -12450,7 +12497,7 @@ var CodexParser = class {
12450
12497
  toHeading(current)
12451
12498
  ];
12452
12499
  }, []);
12453
- lines.forEach(
12500
+ lines2.forEach(
12454
12501
  (line) => addChapterContent(reference.chapter, [line])
12455
12502
  );
12456
12503
  } else {
@@ -12468,6 +12515,9 @@ var CodexParser = class {
12468
12515
  }
12469
12516
  }
12470
12517
  }
12518
+ if (previousReference) {
12519
+ addReference(previousReference, addLineBreaks(lines));
12520
+ }
12471
12521
  for (let chapter of chapters.values()) {
12472
12522
  root.content.push(chapter);
12473
12523
  }
@@ -11778,7 +11778,10 @@ var chapterHeadingSchema = external_exports.object({
11778
11778
  });
11779
11779
  var verseSchema = external_exports.object({
11780
11780
  type: external_exports.literal("text"),
11781
- id: external_exports.string()
11781
+ id: external_exports.string(),
11782
+ bookCode: external_exports.string().optional(),
11783
+ chapter: external_exports.number().optional(),
11784
+ verse: external_exports.number().optional()
11782
11785
  });
11783
11786
  var paratextSchema = external_exports.object({
11784
11787
  type: external_exports.literal("paratext"),
@@ -11837,11 +11840,11 @@ var CodexParser = class {
11837
11840
  }
11838
11841
  chapter.content.push(...content);
11839
11842
  }
11840
- function addReference(ref, content) {
11841
- addChapterContent(ref.chapter, [
11843
+ function addReference(ref2, content) {
11844
+ addChapterContent(ref2.chapter, [
11842
11845
  {
11843
11846
  type: "verse",
11844
- number: ref.verse,
11847
+ number: ref2.verse,
11845
11848
  content
11846
11849
  }
11847
11850
  ]);
@@ -11855,6 +11858,24 @@ var CodexParser = class {
11855
11858
  content: [content]
11856
11859
  };
11857
11860
  }
11861
+ function addLineBreaks(lines2) {
11862
+ return lines2.reduce(
11863
+ (prev, current) => {
11864
+ if (prev.length === 0) return [current];
11865
+ else
11866
+ return [
11867
+ ...prev,
11868
+ {
11869
+ lineBreak: true
11870
+ },
11871
+ current
11872
+ ];
11873
+ },
11874
+ []
11875
+ );
11876
+ }
11877
+ let previousReference = null;
11878
+ let lines = [];
11858
11879
  for (let cell of data.cells) {
11859
11880
  if (cell.languageId === "html" && cell.value) {
11860
11881
  if (!cell.metadata) continue;
@@ -11862,31 +11883,57 @@ var CodexParser = class {
11862
11883
  if (!metadataResult.success) continue;
11863
11884
  const metadata = metadataResult.data;
11864
11885
  if (metadata.type === "text") {
11865
- const reference = parseVerseReference(metadata.id);
11866
- if (!reference)
11867
- throw new Error("Could not find verse reference.");
11886
+ let reference = parseVerseReference(metadata.id);
11887
+ if (!reference) {
11888
+ if (metadata.bookCode && metadata.chapter) {
11889
+ const bookId = getBookId(metadata.bookCode);
11890
+ if (!bookId) {
11891
+ throw new Error(
11892
+ "Could not find book ID for code: " + metadata.bookCode
11893
+ );
11894
+ }
11895
+ if (metadata.verse) {
11896
+ reference = {
11897
+ book: bookId,
11898
+ chapter: metadata.chapter,
11899
+ verse: metadata.verse
11900
+ };
11901
+ } else if (previousReference?.verse) {
11902
+ if (previousReference.chapter !== metadata.chapter || previousReference.book !== bookId) {
11903
+ throw new Error(
11904
+ "Cannot infer verse number for non-consecutive verse reference."
11905
+ );
11906
+ }
11907
+ reference = {
11908
+ book: bookId,
11909
+ chapter: metadata.chapter,
11910
+ verse: previousReference.verse
11911
+ };
11912
+ } else {
11913
+ throw new Error(
11914
+ "Could not find verse reference in metadata."
11915
+ );
11916
+ }
11917
+ } else {
11918
+ throw new Error(
11919
+ "Could not find verse reference in metadata."
11920
+ );
11921
+ }
11922
+ }
11923
+ if (previousReference && (reference.book !== previousReference.book || reference.chapter !== previousReference.chapter || reference.verse !== previousReference.verse)) {
11924
+ addReference(previousReference, addLineBreaks(lines));
11925
+ lines = [];
11926
+ }
11927
+ previousReference = reference;
11868
11928
  if (!root.id) root.id = reference.book;
11869
11929
  const content = stripHTML(cell.value);
11870
- const lines = content.split("\n").reduce(
11871
- (prev, current) => {
11872
- if (prev.length === 0) return [current];
11873
- else
11874
- return [
11875
- ...prev,
11876
- {
11877
- lineBreak: true
11878
- },
11879
- current
11880
- ];
11881
- },
11882
- []
11883
- );
11884
- addReference(reference, lines);
11930
+ const newLines = content.split("\n");
11931
+ lines.push(...newLines);
11885
11932
  } else if (metadata.type === "paratext") {
11886
11933
  const reference = parseVerseReference(`${metadata.id}:1`);
11887
11934
  if (reference) {
11888
11935
  const content = stripHTML(cell.value);
11889
- const lines = content.split("\n").reduce((prev, current) => {
11936
+ const lines2 = content.split("\n").reduce((prev, current) => {
11890
11937
  if (prev.length === 0)
11891
11938
  return [toHeading(current)];
11892
11939
  else
@@ -11898,7 +11945,7 @@ var CodexParser = class {
11898
11945
  toHeading(current)
11899
11946
  ];
11900
11947
  }, []);
11901
- lines.forEach(
11948
+ lines2.forEach(
11902
11949
  (line) => addChapterContent(reference.chapter, [line])
11903
11950
  );
11904
11951
  } else {
@@ -11916,6 +11963,9 @@ var CodexParser = class {
11916
11963
  }
11917
11964
  }
11918
11965
  }
11966
+ if (previousReference) {
11967
+ addReference(previousReference, addLineBreaks(lines));
11968
+ }
11919
11969
  for (let chapter of chapters.values()) {
11920
11970
  root.content.push(chapter);
11921
11971
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helloao/cli",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "description": "A CLI and related tools for managing HelloAO's Free Bible API",
5
5
  "main": "./dist/cjs/index.cjs",
6
6
  "module": "./dist/esm/index.js",
@@ -43,7 +43,7 @@
43
43
  "all-iso-language-codes": "1.0.17",
44
44
  "papaparse": "5.4.1",
45
45
  "luxon": "3.5.0",
46
- "@helloao/tools": "0.0.17"
46
+ "@helloao/tools": "0.0.19"
47
47
  },
48
48
  "files": [
49
49
  "/README.md",