@helloao/tools 0.0.5 → 0.0.6-alpha

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 (107) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +98 -98
  3. package/dist/cjs/generation/api.cjs +240 -0
  4. package/dist/cjs/generation/api.cjs.map +7 -0
  5. package/dist/cjs/generation/audio.cjs +83 -0
  6. package/dist/cjs/generation/audio.cjs.map +7 -0
  7. package/dist/cjs/generation/book-order.cjs +508 -0
  8. package/dist/cjs/generation/book-order.cjs.map +7 -0
  9. package/dist/cjs/generation/common-types.cjs +17 -0
  10. package/dist/cjs/generation/common-types.cjs.map +7 -0
  11. package/dist/cjs/generation/dataset.cjs +158 -0
  12. package/dist/cjs/generation/dataset.cjs.map +7 -0
  13. package/dist/cjs/generation/index.cjs +51 -0
  14. package/dist/cjs/generation/index.cjs.map +7 -0
  15. package/dist/cjs/index.cjs +45 -0
  16. package/dist/cjs/index.cjs.map +7 -0
  17. package/dist/cjs/parser/codex-parser.cjs +176 -0
  18. package/dist/cjs/parser/codex-parser.cjs.map +7 -0
  19. package/dist/cjs/parser/index.cjs +48 -0
  20. package/dist/cjs/parser/index.cjs.map +7 -0
  21. package/dist/cjs/parser/iterators.cjs +204 -0
  22. package/dist/cjs/parser/iterators.cjs.map +7 -0
  23. package/dist/cjs/parser/types.cjs +17 -0
  24. package/dist/cjs/parser/types.cjs.map +7 -0
  25. package/dist/cjs/parser/usfm-parser.cjs +791 -0
  26. package/dist/cjs/parser/usfm-parser.cjs.map +7 -0
  27. package/dist/cjs/parser/usx-parser.cjs +471 -0
  28. package/dist/cjs/parser/usx-parser.cjs.map +7 -0
  29. package/dist/cjs/utils.cjs +85 -0
  30. package/dist/cjs/utils.cjs.map +7 -0
  31. package/dist/esm/generation/api.js +198 -0
  32. package/dist/esm/generation/api.js.map +7 -0
  33. package/dist/esm/generation/audio.js +53 -0
  34. package/dist/esm/generation/audio.js.map +7 -0
  35. package/dist/esm/generation/book-order.js +478 -0
  36. package/dist/esm/generation/book-order.js.map +7 -0
  37. package/dist/esm/generation/common-types.js +2 -0
  38. package/dist/esm/generation/common-types.js.map +7 -0
  39. package/dist/esm/generation/dataset.js +132 -0
  40. package/dist/esm/generation/dataset.js.map +7 -0
  41. package/dist/esm/generation/index.js +8 -0
  42. package/dist/esm/generation/index.js.map +7 -0
  43. package/dist/esm/index.js +6 -0
  44. package/dist/esm/index.js.map +7 -0
  45. package/dist/esm/parser/codex-parser.js +144 -0
  46. package/dist/esm/parser/codex-parser.js.map +7 -0
  47. package/dist/esm/parser/index.js +8 -0
  48. package/dist/esm/parser/index.js.map +7 -0
  49. package/dist/esm/parser/iterators.js +152 -0
  50. package/dist/esm/parser/iterators.js.map +7 -0
  51. package/dist/esm/parser/types.js +2 -0
  52. package/dist/esm/parser/types.js.map +7 -0
  53. package/dist/esm/parser/usfm-parser.js +749 -0
  54. package/dist/esm/parser/usfm-parser.js.map +7 -0
  55. package/dist/esm/parser/usx-parser.js +447 -0
  56. package/dist/esm/parser/usx-parser.js.map +7 -0
  57. package/dist/esm/utils.js +51 -0
  58. package/dist/esm/utils.js.map +7 -0
  59. package/{generation → dist/types/generation}/api.d.ts +14 -2
  60. package/{generation → dist/types/generation}/audio.d.ts +1 -1
  61. package/{generation → dist/types/generation}/dataset.d.ts +1 -1
  62. package/dist/types/generation/index.d.ts +7 -0
  63. package/dist/types/index.d.ts +5 -0
  64. package/{parser → dist/types/parser}/codex-parser.d.ts +1 -1
  65. package/dist/types/parser/index.d.ts +7 -0
  66. package/{parser → dist/types/parser}/usfm-parser.d.ts +1 -1
  67. package/{parser → dist/types/parser}/usx-parser.d.ts +2 -2
  68. package/package.json +25 -4
  69. package/typings/types.d.ts +13 -13
  70. package/generation/api.js +0 -179
  71. package/generation/api.spec.d.ts +0 -2
  72. package/generation/api.spec.js +0 -656
  73. package/generation/audio.js +0 -60
  74. package/generation/audio.spec.d.ts +0 -2
  75. package/generation/audio.spec.js +0 -36
  76. package/generation/book-order.js +0 -494
  77. package/generation/book-order.spec.d.ts +0 -2
  78. package/generation/book-order.spec.js +0 -8
  79. package/generation/common-types.js +0 -2
  80. package/generation/dataset.js +0 -106
  81. package/generation/index.d.ts +0 -7
  82. package/generation/index.js +0 -38
  83. package/index.d.ts +0 -5
  84. package/index.js +0 -32
  85. package/parser/codex-parser.js +0 -160
  86. package/parser/codex-parser.spec.d.ts +0 -2
  87. package/parser/codex-parser.spec.js +0 -645
  88. package/parser/index.d.ts +0 -7
  89. package/parser/index.js +0 -35
  90. package/parser/iterators.js +0 -222
  91. package/parser/iterators.spec.d.ts +0 -2
  92. package/parser/iterators.spec.js +0 -174
  93. package/parser/types.js +0 -2
  94. package/parser/usfm-parser.js +0 -840
  95. package/parser/usfm-parser.spec.d.ts +0 -2
  96. package/parser/usfm-parser.spec.js +0 -1593
  97. package/parser/usx-parser.js +0 -425
  98. package/parser/usx-parser.spec.d.ts +0 -2
  99. package/parser/usx-parser.spec.js +0 -1260
  100. package/utils.js +0 -73
  101. package/utils.spec.d.ts +0 -2
  102. package/utils.spec.js +0 -42
  103. /package/{generation → dist/types/generation}/book-order.d.ts +0 -0
  104. /package/{generation → dist/types/generation}/common-types.d.ts +0 -0
  105. /package/{parser → dist/types/parser}/iterators.d.ts +0 -0
  106. /package/{parser → dist/types/parser}/types.d.ts +0 -0
  107. /package/{utils.d.ts → dist/types/utils.d.ts} +0 -0
@@ -1,656 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const api_1 = require("./api");
7
- const _01GENBSB_usfm_1 = __importDefault(require("../../../bible/bsb/01GENBSB.usfm"));
8
- const _02EXOBSB_usfm_1 = __importDefault(require("../../../bible/bsb/02EXOBSB.usfm"));
9
- const _131CHBSB_usfm_1 = __importDefault(require("../../../bible/bsb/131CHBSB.usfm"));
10
- const dataset_1 = require("./dataset");
11
- const linkedom_1 = require("linkedom");
12
- describe('replaceSpacesWithUnderscores()', () => {
13
- const cases = [
14
- ['Hello World', 'Hello_World'],
15
- ['Hello World 2', 'Hello_World_2'],
16
- ];
17
- it.each(cases)('should replace spaces with underscores', (input, expected) => {
18
- expect((0, api_1.replaceSpacesWithUnderscores)(input)).toBe(expected);
19
- });
20
- });
21
- describe('generateApiForDataset()', () => {
22
- it('should output a file tree', () => {
23
- let translation1 = {
24
- id: 'bsb',
25
- name: 'Berean Standard Bible',
26
- englishName: 'Berean Standard Bible',
27
- shortName: 'BSB',
28
- language: 'eng',
29
- direction: 'ltr',
30
- licenseUrl: 'https://berean.bible/terms.htm',
31
- website: 'https://berean.bible'
32
- };
33
- let inputFiles = [
34
- {
35
- fileType: 'usfm',
36
- metadata: {
37
- translation: translation1
38
- },
39
- content: firstXLines(_01GENBSB_usfm_1.default, 13)
40
- },
41
- {
42
- fileType: 'usfm',
43
- metadata: {
44
- translation: translation1
45
- },
46
- content: firstXLines(_02EXOBSB_usfm_1.default, 14)
47
- }
48
- ];
49
- const dataset = (0, dataset_1.generateDataset)(inputFiles, new linkedom_1.DOMParser());
50
- const generated = (0, api_1.generateApiForDataset)(dataset);
51
- const files = (0, api_1.generateFilesForApi)(generated);
52
- const tree = fileTree(files);
53
- const expectedTranslation = {
54
- id: 'bsb',
55
- name: 'Berean Standard Bible',
56
- englishName: 'Berean Standard Bible',
57
- shortName: 'BSB',
58
- language: 'eng',
59
- textDirection: 'ltr',
60
- licenseUrl: 'https://berean.bible/terms.htm',
61
- website: 'https://berean.bible',
62
- availableFormats: [
63
- 'json'
64
- ],
65
- listOfBooksApiLink: '/api/bsb/books.json',
66
- numberOfBooks: 2,
67
- totalNumberOfChapters: 2,
68
- totalNumberOfVerses: 4,
69
- languageName: 'English',
70
- languageEnglishName: 'English',
71
- };
72
- expect(tree).toEqual({
73
- '/api/available_translations.json': {
74
- translations: [
75
- expectedTranslation
76
- ]
77
- },
78
- '/api/bsb/books.json': {
79
- translation: expectedTranslation,
80
- books: [
81
- {
82
- id: 'GEN',
83
- name: 'Genesis',
84
- commonName: 'Genesis',
85
- title: 'Genesis',
86
- order: 1,
87
- numberOfChapters: 1,
88
- totalNumberOfVerses: 2,
89
- firstChapterApiLink: '/api/bsb/GEN/1.json',
90
- lastChapterApiLink: '/api/bsb/GEN/1.json',
91
- },
92
- {
93
- id: 'EXO',
94
- name: 'Exodus',
95
- commonName: 'Exodus',
96
- title: 'Exodus',
97
- order: 2,
98
- numberOfChapters: 1,
99
- totalNumberOfVerses: 2,
100
- firstChapterApiLink: '/api/bsb/EXO/1.json',
101
- lastChapterApiLink: '/api/bsb/EXO/1.json',
102
- }
103
- ]
104
- },
105
- '/api/bsb/GEN/1.json': {
106
- translation: expectedTranslation,
107
- book: {
108
- id: 'GEN',
109
- name: 'Genesis',
110
- commonName: 'Genesis',
111
- title: 'Genesis',
112
- order: 1,
113
- numberOfChapters: 1,
114
- totalNumberOfVerses: 2,
115
- firstChapterApiLink: '/api/bsb/GEN/1.json',
116
- lastChapterApiLink: '/api/bsb/GEN/1.json'
117
- },
118
- thisChapterLink: '/api/bsb/GEN/1.json',
119
- thisChapterAudioLinks: {},
120
- nextChapterApiLink: '/api/bsb/EXO/1.json',
121
- nextChapterAudioLinks: {},
122
- previousChapterApiLink: null,
123
- previousChapterAudioLinks: null,
124
- numberOfVerses: 2,
125
- chapter: {
126
- number: 1,
127
- content: [
128
- {
129
- type: 'heading',
130
- content: [
131
- 'The Creation'
132
- ]
133
- },
134
- {
135
- type: 'line_break'
136
- },
137
- {
138
- type: 'verse',
139
- number: 1,
140
- content: [
141
- 'In the beginning God created the heavens and the earth.'
142
- ],
143
- },
144
- {
145
- type: 'line_break'
146
- },
147
- {
148
- type: 'verse',
149
- number: 2,
150
- content: [
151
- 'Now the earth was formless and void, and darkness was over the surface of the deep. And the Spirit of God was hovering over the surface of the waters.'
152
- ],
153
- },
154
- ],
155
- footnotes: []
156
- }
157
- },
158
- '/api/bsb/EXO/1.json': {
159
- translation: expectedTranslation,
160
- book: {
161
- id: 'EXO',
162
- name: 'Exodus',
163
- commonName: 'Exodus',
164
- title: 'Exodus',
165
- order: 2,
166
- numberOfChapters: 1,
167
- totalNumberOfVerses: 2,
168
- firstChapterApiLink: '/api/bsb/EXO/1.json',
169
- lastChapterApiLink: '/api/bsb/EXO/1.json'
170
- },
171
- thisChapterLink: '/api/bsb/EXO/1.json',
172
- thisChapterAudioLinks: {},
173
- nextChapterApiLink: null,
174
- nextChapterAudioLinks: null,
175
- previousChapterApiLink: '/api/bsb/GEN/1.json',
176
- previousChapterAudioLinks: {},
177
- numberOfVerses: 2,
178
- chapter: {
179
- number: 1,
180
- content: [
181
- {
182
- type: 'heading',
183
- content: [
184
- 'The Israelites Multiply in Egypt'
185
- ]
186
- },
187
- {
188
- type: 'line_break'
189
- },
190
- {
191
- type: 'verse',
192
- number: 1,
193
- content: [
194
- 'These are the names of the sons of Israel who went to Egypt with Jacob, each with his family:'
195
- ],
196
- },
197
- {
198
- type: 'line_break'
199
- },
200
- {
201
- type: 'verse',
202
- number: 2,
203
- content: [
204
- 'Reuben, Simeon, Levi, and Judah;'
205
- ],
206
- },
207
- ],
208
- footnotes: []
209
- }
210
- }
211
- });
212
- // expect(availableTranslations).toEqual({
213
- // translations: [
214
- // expectedTranslation
215
- // ]
216
- // });
217
- });
218
- it('should use the given path prefix', () => {
219
- let translation1 = {
220
- id: 'bsb',
221
- name: 'Berean Standard Bible',
222
- englishName: 'Berean Standard Bible',
223
- shortName: 'BSB',
224
- language: 'eng',
225
- direction: 'ltr',
226
- licenseUrl: 'https://berean.bible/terms.htm',
227
- website: 'https://berean.bible'
228
- };
229
- let inputFiles = [
230
- {
231
- fileType: 'usfm',
232
- metadata: {
233
- translation: translation1
234
- },
235
- content: firstXLines(_01GENBSB_usfm_1.default, 13)
236
- },
237
- {
238
- fileType: 'usfm',
239
- metadata: {
240
- translation: translation1
241
- },
242
- content: firstXLines(_02EXOBSB_usfm_1.default, 14)
243
- }
244
- ];
245
- const dataset = (0, dataset_1.generateDataset)(inputFiles, new linkedom_1.DOMParser());
246
- const generated = (0, api_1.generateApiForDataset)(dataset, {
247
- pathPrefix: '/hello'
248
- });
249
- const files = (0, api_1.generateFilesForApi)(generated);
250
- const tree = fileTree(files);
251
- const expectedTranslation = {
252
- id: 'bsb',
253
- name: 'Berean Standard Bible',
254
- englishName: 'Berean Standard Bible',
255
- shortName: 'BSB',
256
- language: 'eng',
257
- textDirection: 'ltr',
258
- licenseUrl: 'https://berean.bible/terms.htm',
259
- website: 'https://berean.bible',
260
- availableFormats: [
261
- 'json'
262
- ],
263
- listOfBooksApiLink: '/hello/api/bsb/books.json',
264
- numberOfBooks: 2,
265
- totalNumberOfChapters: 2,
266
- totalNumberOfVerses: 4,
267
- languageName: 'English',
268
- languageEnglishName: 'English',
269
- };
270
- expect(tree).toEqual({
271
- '/hello/api/available_translations.json': {
272
- translations: [
273
- expectedTranslation
274
- ]
275
- },
276
- '/hello/api/bsb/books.json': {
277
- translation: expectedTranslation,
278
- books: [
279
- {
280
- id: 'GEN',
281
- name: 'Genesis',
282
- commonName: 'Genesis',
283
- title: 'Genesis',
284
- order: 1,
285
- numberOfChapters: 1,
286
- totalNumberOfVerses: 2,
287
- firstChapterApiLink: '/hello/api/bsb/GEN/1.json',
288
- lastChapterApiLink: '/hello/api/bsb/GEN/1.json',
289
- },
290
- {
291
- id: 'EXO',
292
- name: 'Exodus',
293
- commonName: 'Exodus',
294
- title: 'Exodus',
295
- order: 2,
296
- numberOfChapters: 1,
297
- totalNumberOfVerses: 2,
298
- firstChapterApiLink: '/hello/api/bsb/EXO/1.json',
299
- lastChapterApiLink: '/hello/api/bsb/EXO/1.json',
300
- }
301
- ]
302
- },
303
- '/hello/api/bsb/GEN/1.json': {
304
- translation: expectedTranslation,
305
- book: {
306
- id: 'GEN',
307
- name: 'Genesis',
308
- commonName: 'Genesis',
309
- title: 'Genesis',
310
- order: 1,
311
- numberOfChapters: 1,
312
- totalNumberOfVerses: 2,
313
- firstChapterApiLink: '/hello/api/bsb/GEN/1.json',
314
- lastChapterApiLink: '/hello/api/bsb/GEN/1.json'
315
- },
316
- thisChapterLink: '/hello/api/bsb/GEN/1.json',
317
- thisChapterAudioLinks: {},
318
- nextChapterApiLink: '/hello/api/bsb/EXO/1.json',
319
- nextChapterAudioLinks: {},
320
- previousChapterApiLink: null,
321
- previousChapterAudioLinks: null,
322
- numberOfVerses: 2,
323
- chapter: {
324
- number: 1,
325
- content: [
326
- {
327
- type: 'heading',
328
- content: [
329
- 'The Creation'
330
- ]
331
- },
332
- {
333
- type: 'line_break'
334
- },
335
- {
336
- type: 'verse',
337
- number: 1,
338
- content: [
339
- 'In the beginning God created the heavens and the earth.'
340
- ],
341
- },
342
- {
343
- type: 'line_break'
344
- },
345
- {
346
- type: 'verse',
347
- number: 2,
348
- content: [
349
- 'Now the earth was formless and void, and darkness was over the surface of the deep. And the Spirit of God was hovering over the surface of the waters.'
350
- ],
351
- },
352
- ],
353
- footnotes: []
354
- }
355
- },
356
- '/hello/api/bsb/EXO/1.json': {
357
- translation: expectedTranslation,
358
- book: {
359
- id: 'EXO',
360
- name: 'Exodus',
361
- commonName: 'Exodus',
362
- title: 'Exodus',
363
- order: 2,
364
- numberOfChapters: 1,
365
- totalNumberOfVerses: 2,
366
- firstChapterApiLink: '/hello/api/bsb/EXO/1.json',
367
- lastChapterApiLink: '/hello/api/bsb/EXO/1.json'
368
- },
369
- thisChapterLink: '/hello/api/bsb/EXO/1.json',
370
- thisChapterAudioLinks: {},
371
- nextChapterApiLink: null,
372
- nextChapterAudioLinks: null,
373
- previousChapterApiLink: '/hello/api/bsb/GEN/1.json',
374
- previousChapterAudioLinks: {},
375
- numberOfVerses: 2,
376
- chapter: {
377
- number: 1,
378
- content: [
379
- {
380
- type: 'heading',
381
- content: [
382
- 'The Israelites Multiply in Egypt'
383
- ]
384
- },
385
- {
386
- type: 'line_break'
387
- },
388
- {
389
- type: 'verse',
390
- number: 1,
391
- content: [
392
- 'These are the names of the sons of Israel who went to Egypt with Jacob, each with his family:'
393
- ],
394
- },
395
- {
396
- type: 'line_break'
397
- },
398
- {
399
- type: 'verse',
400
- number: 2,
401
- content: [
402
- 'Reuben, Simeon, Levi, and Judah;'
403
- ],
404
- },
405
- ],
406
- footnotes: []
407
- }
408
- }
409
- });
410
- });
411
- it('should use underscores for spaces in the book name', () => {
412
- let translation1 = {
413
- id: 'bsb',
414
- name: 'Berean Standard Bible',
415
- englishName: 'Berean Standard Bible',
416
- shortName: 'BSB',
417
- language: 'eng',
418
- direction: 'ltr',
419
- licenseUrl: 'https://berean.bible/terms.htm',
420
- website: 'https://berean.bible'
421
- };
422
- let inputFiles = [
423
- {
424
- fileType: 'usfm',
425
- metadata: {
426
- translation: translation1
427
- },
428
- content: firstXLines(_131CHBSB_usfm_1.default, 11)
429
- },
430
- ];
431
- const dataset = (0, dataset_1.generateDataset)(inputFiles, new linkedom_1.DOMParser());
432
- const generated = (0, api_1.generateApiForDataset)(dataset, {
433
- useCommonName: true,
434
- });
435
- const files = (0, api_1.generateFilesForApi)(generated);
436
- const tree = fileTree(files);
437
- const expectedTranslation = {
438
- id: 'bsb',
439
- name: 'Berean Standard Bible',
440
- englishName: 'Berean Standard Bible',
441
- shortName: 'BSB',
442
- language: 'eng',
443
- textDirection: 'ltr',
444
- licenseUrl: 'https://berean.bible/terms.htm',
445
- website: 'https://berean.bible',
446
- availableFormats: [
447
- 'json'
448
- ],
449
- listOfBooksApiLink: '/api/bsb/books.json',
450
- numberOfBooks: 1,
451
- totalNumberOfChapters: 1,
452
- totalNumberOfVerses: 1,
453
- languageName: 'English',
454
- languageEnglishName: 'English',
455
- };
456
- expect(tree).toEqual({
457
- '/api/available_translations.json': {
458
- translations: [
459
- expectedTranslation
460
- ]
461
- },
462
- '/api/bsb/books.json': {
463
- translation: expectedTranslation,
464
- books: [
465
- {
466
- id: '1CH',
467
- name: '1 Chronicles',
468
- commonName: '1 Chronicles',
469
- title: '1 Chronicles',
470
- numberOfChapters: 1,
471
- totalNumberOfVerses: 1,
472
- order: 13,
473
- firstChapterApiLink: '/api/bsb/1_Chronicles/1.json',
474
- lastChapterApiLink: '/api/bsb/1_Chronicles/1.json',
475
- },
476
- ]
477
- },
478
- '/api/bsb/1_Chronicles/1.json': {
479
- translation: expectedTranslation,
480
- book: {
481
- id: '1CH',
482
- name: '1 Chronicles',
483
- commonName: '1 Chronicles',
484
- title: '1 Chronicles',
485
- numberOfChapters: 1,
486
- totalNumberOfVerses: 1,
487
- order: 13,
488
- firstChapterApiLink: '/api/bsb/1_Chronicles/1.json',
489
- lastChapterApiLink: '/api/bsb/1_Chronicles/1.json'
490
- },
491
- thisChapterLink: "/api/bsb/1_Chronicles/1.json",
492
- thisChapterAudioLinks: {},
493
- nextChapterApiLink: null,
494
- nextChapterAudioLinks: null,
495
- previousChapterApiLink: null,
496
- previousChapterAudioLinks: null,
497
- numberOfVerses: 1,
498
- chapter: {
499
- number: 1,
500
- content: [
501
- {
502
- type: 'heading',
503
- content: [
504
- 'From Adam to Abraham'
505
- ]
506
- },
507
- {
508
- type: 'line_break'
509
- },
510
- {
511
- type: 'verse',
512
- number: 1,
513
- content: [
514
- 'Adam, Seth, Enosh,'
515
- ],
516
- },
517
- ],
518
- footnotes: []
519
- }
520
- },
521
- });
522
- // expect(availableTranslations).toEqual({
523
- // translations: [
524
- // expectedTranslation
525
- // ]
526
- // });
527
- });
528
- it('produce the correct names for languages', () => {
529
- let translation1 = {
530
- id: 'bsb',
531
- name: 'Berean Standard Bible',
532
- englishName: 'Berean Standard Bible',
533
- shortName: 'BSB',
534
- language: 'spa',
535
- direction: 'ltr',
536
- licenseUrl: 'https://berean.bible/terms.htm',
537
- website: 'https://berean.bible'
538
- };
539
- let inputFiles = [
540
- {
541
- fileType: 'usfm',
542
- metadata: {
543
- translation: translation1
544
- },
545
- content: firstXLines(_131CHBSB_usfm_1.default, 11)
546
- },
547
- ];
548
- const dataset = (0, dataset_1.generateDataset)(inputFiles, new linkedom_1.DOMParser());
549
- const generated = (0, api_1.generateApiForDataset)(dataset, {
550
- useCommonName: true,
551
- });
552
- const files = (0, api_1.generateFilesForApi)(generated);
553
- const tree = fileTree(files);
554
- const expectedTranslation = {
555
- id: 'bsb',
556
- name: 'Berean Standard Bible',
557
- englishName: 'Berean Standard Bible',
558
- shortName: 'BSB',
559
- language: 'spa',
560
- textDirection: 'ltr',
561
- licenseUrl: 'https://berean.bible/terms.htm',
562
- website: 'https://berean.bible',
563
- availableFormats: [
564
- 'json'
565
- ],
566
- listOfBooksApiLink: '/api/bsb/books.json',
567
- numberOfBooks: 1,
568
- totalNumberOfChapters: 1,
569
- totalNumberOfVerses: 1,
570
- languageName: 'español',
571
- languageEnglishName: 'Spanish',
572
- };
573
- expect(tree).toEqual({
574
- '/api/available_translations.json': {
575
- translations: [
576
- expectedTranslation
577
- ]
578
- },
579
- '/api/bsb/books.json': {
580
- translation: expectedTranslation,
581
- books: [
582
- {
583
- id: '1CH',
584
- name: '1 Chronicles',
585
- commonName: '1 Chronicles',
586
- title: '1 Chronicles',
587
- numberOfChapters: 1,
588
- totalNumberOfVerses: 1,
589
- order: 13,
590
- firstChapterApiLink: '/api/bsb/1_Chronicles/1.json',
591
- lastChapterApiLink: '/api/bsb/1_Chronicles/1.json',
592
- },
593
- ]
594
- },
595
- '/api/bsb/1_Chronicles/1.json': {
596
- translation: expectedTranslation,
597
- book: {
598
- id: '1CH',
599
- name: '1 Chronicles',
600
- commonName: '1 Chronicles',
601
- title: '1 Chronicles',
602
- numberOfChapters: 1,
603
- totalNumberOfVerses: 1,
604
- order: 13,
605
- firstChapterApiLink: '/api/bsb/1_Chronicles/1.json',
606
- lastChapterApiLink: '/api/bsb/1_Chronicles/1.json'
607
- },
608
- thisChapterLink: "/api/bsb/1_Chronicles/1.json",
609
- thisChapterAudioLinks: {},
610
- nextChapterApiLink: null,
611
- nextChapterAudioLinks: null,
612
- previousChapterApiLink: null,
613
- previousChapterAudioLinks: null,
614
- numberOfVerses: 1,
615
- chapter: {
616
- number: 1,
617
- content: [
618
- {
619
- type: 'heading',
620
- content: [
621
- 'From Adam to Abraham'
622
- ]
623
- },
624
- {
625
- type: 'line_break'
626
- },
627
- {
628
- type: 'verse',
629
- number: 1,
630
- content: [
631
- 'Adam, Seth, Enosh,'
632
- ],
633
- },
634
- ],
635
- footnotes: []
636
- }
637
- },
638
- });
639
- // expect(availableTranslations).toEqual({
640
- // translations: [
641
- // expectedTranslation
642
- // ]
643
- // });
644
- });
645
- });
646
- function firstXLines(content, x) {
647
- const lines = content.split('\n');
648
- return lines.slice(0, x).join('\n');
649
- }
650
- function fileTree(outputFiles) {
651
- let result = {};
652
- for (let file of outputFiles) {
653
- result[file.path] = file.content;
654
- }
655
- return result;
656
- }