@hebcal/leyning 6.2.2 → 6.2.4

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/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/leyning v6.2.2 */
1
+ /*! @hebcal/leyning v6.2.4 */
2
2
  var hebcal__leyning = (function (exports, core) {
3
3
  'use strict';
4
4
 
@@ -12,6 +12,233 @@ function _typeof(obj) {
12
12
  }, _typeof(obj);
13
13
  }
14
14
 
15
+ var Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,24,20,67,34,35,46,22,35,43,54,33,20,31,29,43,36,30,23,23,57,38,34,34,28,34,31,22,33,26];var Exodus=[0,22,25,22,31,23,30,29,28,35,29,10,51,22,31,27,36,16,27,25,26,37,30,33,18,40,37,21,43,46,38,18,35,23,35,35,38,29,31,43,38];var Leviticus=[0,17,16,17,35,26,23,38,36,24,20,47,8,59,57,33,34,16,30,37,27,24,33,44,23,55,46,34];var Numbers=[0,54,34,51,49,31,27,89,26,23,36,35,16,33,45,41,35,28,32,22,29,35,41,30,25,19,65,23,31,39,17,54,42,56,29,34,13];var Deuteronomy=[0,46,37,29,49,30,25,26,20,29,22,32,31,19,29,23,22,20,22,21,20,23,29,26,22,19,19,26,69,28,20,30,52,29,12];var Joshua=[0,18,24,17,24,15,27,26,35,27,43,23,24,33,15,63,10,18,28,51,9,45,34,16,33];var Judges=[0,36,23,31,24,31,40,25,35,57,18,40,15,25,20,20,31,13,31,30,48,25];var Ruth=[0,22,23,18,22];var Isaiah=[0,31,22,26,6,30,13,25,23,20,34,16,6,22,32,9,14,14,7,25,6,17,25,18,23,12,21,13,29,24,33,9,20,24,17,10,22,38,22,8,31,29,25,28,28,25,13,15,22,26,11,23,15,12,17,13,12,21,14,21,22,11,12,19,11,25,24];var Jeremiah=[0,19,37,25,31,31,30,34,23,25,25,23,17,27,22,21,21,27,23,15,18,14,30,40,10,38,24,22,17,32,24,40,44,26,22,19,32,21,28,18,16,18,22,13,30,5,28,7,47,39,46,64,34];var Lamentations=[0,22,22,66,22,22];var Baruch=[0,22,35,38,37,9,72];var Ezekiel=[0,28,10,27,17,17,14,27,18,11,22,25,28,23,23,8,63,24,32,14,44,37,31,49,27,17,21,36,26,21,26,18,32,33,31,15,38,28,23,29,49,26,20,27,31,25,24,23,35];var Daniel=[0,21,49,100,34,30,29,28,27,27,21,45,13,64,42];var Hosea=[0,9,25,5,19,15,11,16,14,17,15,11,15,15,10];var Joel=[0,20,27,5,21];var Amos=[0,15,16,15,13,27,14,17,14,15];var Obadiah=[0,21];var Jonah=[0,16,11,10,11];var Micah=[0,16,13,12,14,14,16,20];var Nachum=[0,14,14,19];var Habakkuk=[0,17,20,19];var Zephaniah=[0,18,15,20];var Haggai=[0,15,23];var Zechariah=[0,17,17,10,14,11,15,14,23,17,12,17,14,9,21];var Malachi=[0,14,17,24];var numverses = {Genesis:Genesis,Exodus:Exodus,Leviticus:Leviticus,Numbers:Numbers,Deuteronomy:Deuteronomy,Joshua:Joshua,Judges:Judges,Ruth:Ruth,"I Samuel":[0,28,36,21,22,12,21,17,22,27,27,15,25,23,52,35,23,58,30,24,42,16,23,28,23,43,25,12,25,11,31,13],"II Samuel":[0,27,32,39,12,25,23,29,18,13,19,27,31,39,33,37,23,29,32,44,26,22,51,39,25],"I Kings":[0,53,46,28,20,32,38,51,66,28,29,43,33,34,31,34,34,24,46,21,43,29,54],"II Kings":[0,18,25,27,44,27,33,20,29,37,36,20,22,25,29,38,20,41,37,37,21,26,20,37,20,30],Isaiah:Isaiah,Jeremiah:Jeremiah,Lamentations:Lamentations,Baruch:Baruch,Ezekiel:Ezekiel,Daniel:Daniel,Hosea:Hosea,Joel:Joel,Amos:Amos,Obadiah:Obadiah,Jonah:Jonah,Micah:Micah,Nachum:Nachum,Habakkuk:Habakkuk,Zephaniah:Zephaniah,Haggai:Haggai,Zechariah:Zechariah,Malachi:Malachi};
16
+
17
+ /**
18
+ * Names of the books of the Torah. BOOK[1] === 'Genesis'
19
+ * @readonly
20
+ * @const {string[]}
21
+ */
22
+ var BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
23
+
24
+ /**
25
+ * Formats parsha as a string
26
+ * @param {string[]} parsha
27
+ * @return {string}
28
+ */
29
+ function parshaToString(parsha) {
30
+ var s = parsha[0];
31
+ if (parsha.length == 2) {
32
+ s += '-' + parsha[1];
33
+ }
34
+ return s;
35
+ }
36
+
37
+ /**
38
+ * Represents an aliyah
39
+ * @typedef {Object} Aliyah
40
+ * @property {string} k - Book (e.g. "Numbers")
41
+ * @property {string} b - beginning verse (e.g. "28:9")
42
+ * @property {string} e - ending verse (e.g. "28:15")
43
+ * @property {number} [v] - number of verses
44
+ * @property {number} [p] - parsha number (1=Bereshit, 54=Vezot HaBracha)
45
+ */
46
+
47
+ /**
48
+ * Makes a deep copy of the src object using JSON stringify and parse
49
+ * @param {any} src
50
+ * @return {any}
51
+ */
52
+ function clone(src) {
53
+ return JSON.parse(JSON.stringify(src));
54
+ }
55
+
56
+ /**
57
+ * Calculates the number of verses in an aliyah or haftara based on
58
+ * the `b` (begin verse), `e` (end verse) and `k` (book).
59
+ * Modifies `aliyah` by setting the `v` field.
60
+ * @param {Aliyah} aliyah
61
+ * @return {number}
62
+ */
63
+ function calculateNumVerses(aliyah) {
64
+ if (aliyah.v) {
65
+ return aliyah.v;
66
+ }
67
+ var chapVerseBegin = aliyah.b.split(':');
68
+ var chapVerseEnd = aliyah.e.split(':');
69
+ var c1 = parseInt(chapVerseBegin[0], 10);
70
+ var c2 = parseInt(chapVerseEnd[0], 10);
71
+ var v1 = parseInt(chapVerseBegin[1], 10);
72
+ var v2 = parseInt(chapVerseEnd[1], 10);
73
+ if (c1 === c2) {
74
+ aliyah.v = v2 - v1 + 1;
75
+ } else if (typeof aliyah.k === 'string') {
76
+ var numv = numverses[aliyah.k];
77
+ if (_typeof(numv) !== 'object' || !numv.length) {
78
+ throw new ReferenceError("Can't find numverses for ".concat(aliyah.k));
79
+ }
80
+ var total = numv[c1] - v1 + 1;
81
+ for (var chap = c1 + 1; chap < c2; chap++) {
82
+ total += numv[chap];
83
+ }
84
+ total += v2;
85
+ aliyah.v = total;
86
+ }
87
+ return aliyah.v;
88
+ }
89
+
90
+ /**
91
+ * Formats an aliyah object like "Numbers 28:9-28:15"
92
+ * @param {Aliyah} a aliyah
93
+ * @return {string}
94
+ */
95
+ function formatAliyahWithBook(a) {
96
+ return "".concat(a.k, " ").concat(a.b, "-").concat(a.e);
97
+ }
98
+
99
+ /**
100
+ * Formats an aliyah object like "Numbers 28:9-15"
101
+ * @param {Aliyah} aliyah
102
+ * @param {boolean} showBook
103
+ * @return {string}
104
+ */
105
+ function formatAliyahShort(aliyah, showBook) {
106
+ var begin = aliyah.b;
107
+ var end0 = aliyah.e;
108
+ var prefix = showBook ? aliyah.k + ' ' : '';
109
+ if (begin === end0) {
110
+ return "".concat(prefix).concat(begin);
111
+ }
112
+ var cv1 = begin.split(':');
113
+ var cv2 = end0.split(':');
114
+ var end = cv1[0] === cv2[0] ? cv2[1] : end0;
115
+ return "".concat(prefix).concat(begin, "-").concat(end);
116
+ }
117
+
118
+ /**
119
+ * Returns the total number of verses in an array of Aliyah (or haftarah) objects
120
+ * @param {Aliyah|Aliyah[]} aliyot
121
+ * @return {number}
122
+ */
123
+ function sumVerses(aliyot) {
124
+ return Array.isArray(aliyot) ? aliyot.reduce(function (prev, cur) {
125
+ return prev + cur.v;
126
+ }, 0) : aliyot.v;
127
+ }
128
+
129
+ /**
130
+ * @private
131
+ * @param {Aliyah|Aliyah[]} haft
132
+ * @return {Aliyah|Aliyah[]}
133
+ */
134
+ function cloneHaftara(haft) {
135
+ if (!haft) {
136
+ return haft;
137
+ }
138
+ var dest = clone(haft);
139
+ if (Array.isArray(dest)) {
140
+ dest.map(calculateNumVerses);
141
+ } else {
142
+ calculateNumVerses(dest);
143
+ }
144
+ return dest;
145
+ }
146
+
147
+ /**
148
+ * @private
149
+ * @param {string} a
150
+ * @param {string} b
151
+ * @return {boolean}
152
+ */
153
+ function isChapVerseBefore(a, b) {
154
+ var cv1 = a.split(':').map(function (x) {
155
+ return +x;
156
+ });
157
+ var cv2 = b.split(':').map(function (x) {
158
+ return +x;
159
+ });
160
+ return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
161
+ }
162
+
163
+ /**
164
+ * Summarizes an `AliyotMap` by collapsing all adjacent aliyot.
165
+ * Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)
166
+ * @param {Object<string,Aliyah>} aliyot
167
+ * @return {Aliyah[]}
168
+ */
169
+ function makeLeyningParts(aliyot) {
170
+ var nums = Object.keys(aliyot).filter(function (x) {
171
+ return x.length === 1;
172
+ });
173
+ var start = aliyot[nums[0]];
174
+ var end = start;
175
+ var parts = [];
176
+ for (var i = 0; i < nums.length; i++) {
177
+ var num = nums[i];
178
+ var aliyah = aliyot[num];
179
+ if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
180
+ // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
181
+ continue;
182
+ }
183
+ var prevEndChap = +end.e.split(':')[0];
184
+ var curStartChap = +aliyah.b.split(':')[0];
185
+ var sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
186
+ if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
187
+ parts.push({
188
+ k: start.k,
189
+ b: start.b,
190
+ e: end.e
191
+ });
192
+ start = aliyah;
193
+ }
194
+ end = aliyah;
195
+ }
196
+ parts.push({
197
+ k: start.k,
198
+ b: start.b,
199
+ e: end.e
200
+ });
201
+ return parts;
202
+ }
203
+
204
+ /**
205
+ * Returns a string representation of the leyning parts.
206
+ * Separate verse ranges read from the same book are separated
207
+ * by commas, e.g. `Isaiah 6:1-7:6, 9:5-6`.
208
+ * Verse ranges from different books are separated by semicolons,
209
+ * e.g. `Genesis 21:1-34; Numbers 29:1-6`.
210
+ * @param {Aliyah|Aliyah[]} parts
211
+ * @return {string}
212
+ */
213
+ function makeSummaryFromParts(parts) {
214
+ if (!Array.isArray(parts)) {
215
+ parts = [parts];
216
+ }
217
+ var prev = parts[0];
218
+ var summary = formatAliyahShort(prev, true);
219
+ for (var i = 1; i < parts.length; i++) {
220
+ var part = parts[i];
221
+ if (part.k === prev.k) {
222
+ summary += ', ';
223
+ } else {
224
+ summary += "; ".concat(part.k, " ");
225
+ }
226
+ summary += formatAliyahShort(part, false);
227
+ prev = part;
228
+ }
229
+ return summary;
230
+ }
231
+
232
+ /**
233
+ * Makes a summary of the leyning, like "Genesis 6:9-11:32"
234
+ * @param {Object<string,Aliyah>} aliyot
235
+ * @return {string}
236
+ */
237
+ function makeLeyningSummary(aliyot) {
238
+ var parts = makeLeyningParts(aliyot);
239
+ return makeSummaryFromParts(parts);
240
+ }
241
+
15
242
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
16
243
 
17
244
  var check = function (it) {
@@ -19,7 +246,7 @@ var check = function (it) {
19
246
  };
20
247
 
21
248
  // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
22
- var global$b =
249
+ var global$a =
23
250
  // eslint-disable-next-line es/no-global-this -- safe
24
251
  check(typeof globalThis == 'object' && globalThis) ||
25
252
  check(typeof window == 'object' && window) ||
@@ -31,7 +258,7 @@ var global$b =
31
258
 
32
259
  var objectGetOwnPropertyDescriptor = {};
33
260
 
34
- var fails$9 = function (exec) {
261
+ var fails$8 = function (exec) {
35
262
  try {
36
263
  return !!exec();
37
264
  } catch (error) {
@@ -39,17 +266,17 @@ var fails$9 = function (exec) {
39
266
  }
40
267
  };
41
268
 
42
- var fails$8 = fails$9;
269
+ var fails$7 = fails$8;
43
270
 
44
271
  // Detect IE8's incomplete defineProperty implementation
45
- var descriptors = !fails$8(function () {
272
+ var descriptors = !fails$7(function () {
46
273
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
47
274
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
48
275
  });
49
276
 
50
- var fails$7 = fails$9;
277
+ var fails$6 = fails$8;
51
278
 
52
- var functionBindNative = !fails$7(function () {
279
+ var functionBindNative = !fails$6(function () {
53
280
  // eslint-disable-next-line es/no-function-prototype-bind -- safe
54
281
  var test = (function () { /* empty */ }).bind();
55
282
  // eslint-disable-next-line no-prototype-builtins -- safe
@@ -95,45 +322,35 @@ var FunctionPrototype$1 = Function.prototype;
95
322
  var call$3 = FunctionPrototype$1.call;
96
323
  var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype$1.bind.bind(call$3, call$3);
97
324
 
98
- var functionUncurryThisRaw = function (fn) {
99
- return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {
325
+ var functionUncurryThis = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
326
+ return function () {
100
327
  return call$3.apply(fn, arguments);
101
328
  };
102
329
  };
103
330
 
104
- var uncurryThisRaw$1 = functionUncurryThisRaw;
331
+ var uncurryThis$8 = functionUncurryThis;
105
332
 
106
- var toString$1 = uncurryThisRaw$1({}.toString);
107
- var stringSlice = uncurryThisRaw$1(''.slice);
333
+ var toString$1 = uncurryThis$8({}.toString);
334
+ var stringSlice = uncurryThis$8(''.slice);
108
335
 
109
- var classofRaw$1 = function (it) {
336
+ var classofRaw = function (it) {
110
337
  return stringSlice(toString$1(it), 8, -1);
111
338
  };
112
339
 
113
- var classofRaw = classofRaw$1;
114
- var uncurryThisRaw = functionUncurryThisRaw;
115
-
116
- var functionUncurryThis = function (fn) {
117
- // Nashorn bug:
118
- // https://github.com/zloirock/core-js/issues/1128
119
- // https://github.com/zloirock/core-js/issues/1130
120
- if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);
121
- };
122
-
123
340
  var uncurryThis$7 = functionUncurryThis;
124
- var fails$6 = fails$9;
125
- var classof$1 = classofRaw$1;
341
+ var fails$5 = fails$8;
342
+ var classof = classofRaw;
126
343
 
127
344
  var $Object$2 = Object;
128
345
  var split = uncurryThis$7(''.split);
129
346
 
130
347
  // fallback for non-array-like ES3 and non-enumerable old V8 strings
131
- var indexedObject = fails$6(function () {
348
+ var indexedObject = fails$5(function () {
132
349
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
133
350
  // eslint-disable-next-line no-prototype-builtins -- safe
134
351
  return !$Object$2('z').propertyIsEnumerable(0);
135
352
  }) ? function (it) {
136
- return classof$1(it) == 'String' ? split(it, '') : $Object$2(it);
353
+ return classof(it) == 'String' ? split(it, '') : $Object$2(it);
137
354
  } : $Object$2;
138
355
 
139
356
  // we can't use just `it == null` since of `document.all` special case
@@ -144,21 +361,21 @@ var isNullOrUndefined$2 = function (it) {
144
361
 
145
362
  var isNullOrUndefined$1 = isNullOrUndefined$2;
146
363
 
147
- var $TypeError$6 = TypeError;
364
+ var $TypeError$5 = TypeError;
148
365
 
149
366
  // `RequireObjectCoercible` abstract operation
150
367
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
151
368
  var requireObjectCoercible$2 = function (it) {
152
- if (isNullOrUndefined$1(it)) throw $TypeError$6("Can't call method on " + it);
369
+ if (isNullOrUndefined$1(it)) throw $TypeError$5("Can't call method on " + it);
153
370
  return it;
154
371
  };
155
372
 
156
373
  // toObject with fallback for non-array-like ES3 strings
157
- var IndexedObject$1 = indexedObject;
374
+ var IndexedObject = indexedObject;
158
375
  var requireObjectCoercible$1 = requireObjectCoercible$2;
159
376
 
160
377
  var toIndexedObject$4 = function (it) {
161
- return IndexedObject$1(requireObjectCoercible$1(it));
378
+ return IndexedObject(requireObjectCoercible$1(it));
162
379
  };
163
380
 
164
381
  var documentAll$2 = typeof document == 'object' && document.all;
@@ -194,7 +411,7 @@ var isObject$5 = $documentAll.IS_HTMLDDA ? function (it) {
194
411
  return typeof it == 'object' ? it !== null : isCallable$9(it);
195
412
  };
196
413
 
197
- var global$a = global$b;
414
+ var global$9 = global$a;
198
415
  var isCallable$8 = isCallable$a;
199
416
 
200
417
  var aFunction = function (argument) {
@@ -202,7 +419,7 @@ var aFunction = function (argument) {
202
419
  };
203
420
 
204
421
  var getBuiltIn$3 = function (namespace, method) {
205
- return arguments.length < 2 ? aFunction(global$a[namespace]) : global$a[namespace] && global$a[namespace][method];
422
+ return arguments.length < 2 ? aFunction(global$9[namespace]) : global$9[namespace] && global$9[namespace][method];
206
423
  };
207
424
 
208
425
  var uncurryThis$6 = functionUncurryThis;
@@ -213,11 +430,11 @@ var getBuiltIn$2 = getBuiltIn$3;
213
430
 
214
431
  var engineUserAgent = getBuiltIn$2('navigator', 'userAgent') || '';
215
432
 
216
- var global$9 = global$b;
433
+ var global$8 = global$a;
217
434
  var userAgent = engineUserAgent;
218
435
 
219
- var process = global$9.process;
220
- var Deno = global$9.Deno;
436
+ var process = global$8.process;
437
+ var Deno = global$8.Deno;
221
438
  var versions = process && process.versions || Deno && Deno.version;
222
439
  var v8 = versions && versions.v8;
223
440
  var match, version;
@@ -244,10 +461,10 @@ var engineV8Version = version;
244
461
  /* eslint-disable es/no-symbol -- required for testing */
245
462
 
246
463
  var V8_VERSION = engineV8Version;
247
- var fails$5 = fails$9;
464
+ var fails$4 = fails$8;
248
465
 
249
466
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
250
- var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$5(function () {
467
+ var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$4(function () {
251
468
  var symbol = Symbol();
252
469
  // Chrome 38 Symbol has incorrect toString conversion
253
470
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
@@ -291,29 +508,29 @@ var tryToString$1 = function (argument) {
291
508
  var isCallable$6 = isCallable$a;
292
509
  var tryToString = tryToString$1;
293
510
 
294
- var $TypeError$5 = TypeError;
511
+ var $TypeError$4 = TypeError;
295
512
 
296
513
  // `Assert: IsCallable(argument) is true`
297
- var aCallable$2 = function (argument) {
514
+ var aCallable$1 = function (argument) {
298
515
  if (isCallable$6(argument)) return argument;
299
- throw $TypeError$5(tryToString(argument) + ' is not a function');
516
+ throw $TypeError$4(tryToString(argument) + ' is not a function');
300
517
  };
301
518
 
302
- var aCallable$1 = aCallable$2;
519
+ var aCallable = aCallable$1;
303
520
  var isNullOrUndefined = isNullOrUndefined$2;
304
521
 
305
522
  // `GetMethod` abstract operation
306
523
  // https://tc39.es/ecma262/#sec-getmethod
307
524
  var getMethod$1 = function (V, P) {
308
525
  var func = V[P];
309
- return isNullOrUndefined(func) ? undefined : aCallable$1(func);
526
+ return isNullOrUndefined(func) ? undefined : aCallable(func);
310
527
  };
311
528
 
312
529
  var call$2 = functionCall;
313
530
  var isCallable$5 = isCallable$a;
314
531
  var isObject$4 = isObject$5;
315
532
 
316
- var $TypeError$4 = TypeError;
533
+ var $TypeError$3 = TypeError;
317
534
 
318
535
  // `OrdinaryToPrimitive` abstract operation
319
536
  // https://tc39.es/ecma262/#sec-ordinarytoprimitive
@@ -322,29 +539,33 @@ var ordinaryToPrimitive$1 = function (input, pref) {
322
539
  if (pref === 'string' && isCallable$5(fn = input.toString) && !isObject$4(val = call$2(fn, input))) return val;
323
540
  if (isCallable$5(fn = input.valueOf) && !isObject$4(val = call$2(fn, input))) return val;
324
541
  if (pref !== 'string' && isCallable$5(fn = input.toString) && !isObject$4(val = call$2(fn, input))) return val;
325
- throw $TypeError$4("Can't convert object to primitive value");
542
+ throw $TypeError$3("Can't convert object to primitive value");
326
543
  };
327
544
 
328
- var shared$3 = {exports: {}};
545
+ var sharedExports = {};
546
+ var shared$3 = {
547
+ get exports(){ return sharedExports; },
548
+ set exports(v){ sharedExports = v; },
549
+ };
329
550
 
330
- var global$8 = global$b;
551
+ var global$7 = global$a;
331
552
 
332
553
  // eslint-disable-next-line es/no-object-defineproperty -- safe
333
554
  var defineProperty$1 = Object.defineProperty;
334
555
 
335
556
  var defineGlobalProperty$3 = function (key, value) {
336
557
  try {
337
- defineProperty$1(global$8, key, { value: value, configurable: true, writable: true });
558
+ defineProperty$1(global$7, key, { value: value, configurable: true, writable: true });
338
559
  } catch (error) {
339
- global$8[key] = value;
560
+ global$7[key] = value;
340
561
  } return value;
341
562
  };
342
563
 
343
- var global$7 = global$b;
564
+ var global$6 = global$a;
344
565
  var defineGlobalProperty$2 = defineGlobalProperty$3;
345
566
 
346
567
  var SHARED = '__core-js_shared__';
347
- var store$3 = global$7[SHARED] || defineGlobalProperty$2(SHARED, {});
568
+ var store$3 = global$6[SHARED] || defineGlobalProperty$2(SHARED, {});
348
569
 
349
570
  var sharedStore = store$3;
350
571
 
@@ -353,10 +574,10 @@ var store$2 = sharedStore;
353
574
  (shared$3.exports = function (key, value) {
354
575
  return store$2[key] || (store$2[key] = value !== undefined ? value : {});
355
576
  })('versions', []).push({
356
- version: '3.25.5',
577
+ version: '3.26.1',
357
578
  mode: 'global',
358
579
  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
359
- license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',
580
+ license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',
360
581
  source: 'https://github.com/zloirock/core-js'
361
582
  });
362
583
 
@@ -366,12 +587,12 @@ var $Object = Object;
366
587
 
367
588
  // `ToObject` abstract operation
368
589
  // https://tc39.es/ecma262/#sec-toobject
369
- var toObject$2 = function (argument) {
590
+ var toObject$1 = function (argument) {
370
591
  return $Object(requireObjectCoercible(argument));
371
592
  };
372
593
 
373
594
  var uncurryThis$5 = functionUncurryThis;
374
- var toObject$1 = toObject$2;
595
+ var toObject = toObject$1;
375
596
 
376
597
  var hasOwnProperty = uncurryThis$5({}.hasOwnProperty);
377
598
 
@@ -379,7 +600,7 @@ var hasOwnProperty = uncurryThis$5({}.hasOwnProperty);
379
600
  // https://tc39.es/ecma262/#sec-hasownproperty
380
601
  // eslint-disable-next-line es/no-object-hasown -- safe
381
602
  var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
382
- return hasOwnProperty(toObject$1(it), key);
603
+ return hasOwnProperty(toObject(it), key);
383
604
  };
384
605
 
385
606
  var uncurryThis$4 = functionUncurryThis;
@@ -392,15 +613,15 @@ var uid$2 = function (key) {
392
613
  return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
393
614
  };
394
615
 
395
- var global$6 = global$b;
396
- var shared$2 = shared$3.exports;
616
+ var global$5 = global$a;
617
+ var shared$2 = sharedExports;
397
618
  var hasOwn$6 = hasOwnProperty_1;
398
619
  var uid$1 = uid$2;
399
620
  var NATIVE_SYMBOL = symbolConstructorDetection;
400
621
  var USE_SYMBOL_AS_UID = useSymbolAsUid;
401
622
 
402
623
  var WellKnownSymbolsStore = shared$2('wks');
403
- var Symbol$1 = global$6.Symbol;
624
+ var Symbol$1 = global$5.Symbol;
404
625
  var symbolFor = Symbol$1 && Symbol$1['for'];
405
626
  var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid$1;
406
627
 
@@ -424,7 +645,7 @@ var getMethod = getMethod$1;
424
645
  var ordinaryToPrimitive = ordinaryToPrimitive$1;
425
646
  var wellKnownSymbol = wellKnownSymbol$1;
426
647
 
427
- var $TypeError$3 = TypeError;
648
+ var $TypeError$2 = TypeError;
428
649
  var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
429
650
 
430
651
  // `ToPrimitive` abstract operation
@@ -437,7 +658,7 @@ var toPrimitive$1 = function (input, pref) {
437
658
  if (pref === undefined) pref = 'default';
438
659
  result = call$1(exoticToPrim, input, pref);
439
660
  if (!isObject$3(result) || isSymbol$1(result)) return result;
440
- throw $TypeError$3("Can't convert object to primitive value");
661
+ throw $TypeError$2("Can't convert object to primitive value");
441
662
  }
442
663
  if (pref === undefined) pref = 'number';
443
664
  return ordinaryToPrimitive(input, pref);
@@ -453,10 +674,10 @@ var toPropertyKey$2 = function (argument) {
453
674
  return isSymbol(key) ? key : key + '';
454
675
  };
455
676
 
456
- var global$5 = global$b;
677
+ var global$4 = global$a;
457
678
  var isObject$2 = isObject$5;
458
679
 
459
- var document$1 = global$5.document;
680
+ var document$1 = global$4.document;
460
681
  // typeof document.createElement is 'object' in old IE
461
682
  var EXISTS$1 = isObject$2(document$1) && isObject$2(document$1.createElement);
462
683
 
@@ -465,11 +686,11 @@ var documentCreateElement = function (it) {
465
686
  };
466
687
 
467
688
  var DESCRIPTORS$7 = descriptors;
468
- var fails$4 = fails$9;
689
+ var fails$3 = fails$8;
469
690
  var createElement = documentCreateElement;
470
691
 
471
692
  // Thanks to IE8 for its funny defineProperty
472
- var ie8DomDefine = !DESCRIPTORS$7 && !fails$4(function () {
693
+ var ie8DomDefine = !DESCRIPTORS$7 && !fails$3(function () {
473
694
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
474
695
  return Object.defineProperty(createElement('div'), 'a', {
475
696
  get: function () { return 7; }
@@ -502,11 +723,11 @@ objectGetOwnPropertyDescriptor.f = DESCRIPTORS$6 ? $getOwnPropertyDescriptor$1 :
502
723
  var objectDefineProperty = {};
503
724
 
504
725
  var DESCRIPTORS$5 = descriptors;
505
- var fails$3 = fails$9;
726
+ var fails$2 = fails$8;
506
727
 
507
728
  // V8 ~ Chrome 36-
508
729
  // https://bugs.chromium.org/p/v8/issues/detail?id=3334
509
- var v8PrototypeDefineBug = DESCRIPTORS$5 && fails$3(function () {
730
+ var v8PrototypeDefineBug = DESCRIPTORS$5 && fails$2(function () {
510
731
  // eslint-disable-next-line es/no-object-defineproperty -- required for testing
511
732
  return Object.defineProperty(function () { /* empty */ }, 'prototype', {
512
733
  value: 42,
@@ -517,12 +738,12 @@ var v8PrototypeDefineBug = DESCRIPTORS$5 && fails$3(function () {
517
738
  var isObject$1 = isObject$5;
518
739
 
519
740
  var $String = String;
520
- var $TypeError$2 = TypeError;
741
+ var $TypeError$1 = TypeError;
521
742
 
522
743
  // `Assert: Type(argument) is Object`
523
744
  var anObject$2 = function (argument) {
524
745
  if (isObject$1(argument)) return argument;
525
- throw $TypeError$2($String(argument) + ' is not an object');
746
+ throw $TypeError$1($String(argument) + ' is not an object');
526
747
  };
527
748
 
528
749
  var DESCRIPTORS$4 = descriptors;
@@ -531,7 +752,7 @@ var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
531
752
  var anObject$1 = anObject$2;
532
753
  var toPropertyKey = toPropertyKey$2;
533
754
 
534
- var $TypeError$1 = TypeError;
755
+ var $TypeError = TypeError;
535
756
  // eslint-disable-next-line es/no-object-defineproperty -- safe
536
757
  var $defineProperty = Object.defineProperty;
537
758
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
@@ -564,7 +785,7 @@ objectDefineProperty.f = DESCRIPTORS$4 ? V8_PROTOTYPE_DEFINE_BUG ? function defi
564
785
  if (IE8_DOM_DEFINE) try {
565
786
  return $defineProperty(O, P, Attributes);
566
787
  } catch (error) { /* empty */ }
567
- if ('get' in Attributes || 'set' in Attributes) throw $TypeError$1('Accessors not supported');
788
+ if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');
568
789
  if ('value' in Attributes) O[P] = Attributes.value;
569
790
  return O;
570
791
  };
@@ -580,7 +801,11 @@ var createNonEnumerableProperty$2 = DESCRIPTORS$3 ? function (object, key, value
580
801
  return object;
581
802
  };
582
803
 
583
- var makeBuiltIn$2 = {exports: {}};
804
+ var makeBuiltInExports = {};
805
+ var makeBuiltIn$2 = {
806
+ get exports(){ return makeBuiltInExports; },
807
+ set exports(v){ makeBuiltInExports = v; },
808
+ };
584
809
 
585
810
  var DESCRIPTORS$2 = descriptors;
586
811
  var hasOwn$4 = hasOwnProperty_1;
@@ -615,14 +840,14 @@ if (!isCallable$4(store$1.inspectSource)) {
615
840
 
616
841
  var inspectSource$1 = store$1.inspectSource;
617
842
 
618
- var global$4 = global$b;
843
+ var global$3 = global$a;
619
844
  var isCallable$3 = isCallable$a;
620
845
 
621
- var WeakMap$1 = global$4.WeakMap;
846
+ var WeakMap$1 = global$3.WeakMap;
622
847
 
623
848
  var weakMapBasicDetection = isCallable$3(WeakMap$1) && /native code/.test(String(WeakMap$1));
624
849
 
625
- var shared$1 = shared$3.exports;
850
+ var shared$1 = sharedExports;
626
851
  var uid = uid$2;
627
852
 
628
853
  var keys = shared$1('keys');
@@ -634,7 +859,7 @@ var sharedKey$1 = function (key) {
634
859
  var hiddenKeys$3 = {};
635
860
 
636
861
  var NATIVE_WEAK_MAP = weakMapBasicDetection;
637
- var global$3 = global$b;
862
+ var global$2 = global$a;
638
863
  var isObject = isObject$5;
639
864
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$2;
640
865
  var hasOwn$3 = hasOwnProperty_1;
@@ -643,8 +868,8 @@ var sharedKey = sharedKey$1;
643
868
  var hiddenKeys$2 = hiddenKeys$3;
644
869
 
645
870
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
646
- var TypeError$1 = global$3.TypeError;
647
- var WeakMap = global$3.WeakMap;
871
+ var TypeError$1 = global$2.TypeError;
872
+ var WeakMap = global$2.WeakMap;
648
873
  var set, get, has;
649
874
 
650
875
  var enforce = function (it) {
@@ -704,7 +929,7 @@ var internalState = {
704
929
  getterFor: getterFor
705
930
  };
706
931
 
707
- var fails$2 = fails$9;
932
+ var fails$1 = fails$8;
708
933
  var isCallable$2 = isCallable$a;
709
934
  var hasOwn$2 = hasOwnProperty_1;
710
935
  var DESCRIPTORS$1 = descriptors;
@@ -717,7 +942,7 @@ var getInternalState = InternalStateModule.get;
717
942
  // eslint-disable-next-line es/no-object-defineproperty -- safe
718
943
  var defineProperty = Object.defineProperty;
719
944
 
720
- var CONFIGURABLE_LENGTH = DESCRIPTORS$1 && !fails$2(function () {
945
+ var CONFIGURABLE_LENGTH = DESCRIPTORS$1 && !fails$1(function () {
721
946
  return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
722
947
  });
723
948
 
@@ -756,7 +981,7 @@ Function.prototype.toString = makeBuiltIn$1(function toString() {
756
981
 
757
982
  var isCallable$1 = isCallable$a;
758
983
  var definePropertyModule$1 = objectDefineProperty;
759
- var makeBuiltIn = makeBuiltIn$2.exports;
984
+ var makeBuiltIn = makeBuiltInExports;
760
985
  var defineGlobalProperty$1 = defineGlobalProperty$3;
761
986
 
762
987
  var defineBuiltIn$1 = function (O, key, value, options) {
@@ -832,19 +1057,19 @@ var toLength = toLength$1;
832
1057
 
833
1058
  // `LengthOfArrayLike` abstract operation
834
1059
  // https://tc39.es/ecma262/#sec-lengthofarraylike
835
- var lengthOfArrayLike$2 = function (obj) {
1060
+ var lengthOfArrayLike$1 = function (obj) {
836
1061
  return toLength(obj.length);
837
1062
  };
838
1063
 
839
1064
  var toIndexedObject$2 = toIndexedObject$4;
840
1065
  var toAbsoluteIndex = toAbsoluteIndex$1;
841
- var lengthOfArrayLike$1 = lengthOfArrayLike$2;
1066
+ var lengthOfArrayLike = lengthOfArrayLike$1;
842
1067
 
843
1068
  // `Array.prototype.{ indexOf, includes }` methods implementation
844
- var createMethod$2 = function (IS_INCLUDES) {
1069
+ var createMethod$1 = function (IS_INCLUDES) {
845
1070
  return function ($this, el, fromIndex) {
846
1071
  var O = toIndexedObject$2($this);
847
- var length = lengthOfArrayLike$1(O);
1072
+ var length = lengthOfArrayLike(O);
848
1073
  var index = toAbsoluteIndex(fromIndex, length);
849
1074
  var value;
850
1075
  // Array#includes uses SameValueZero equality algorithm
@@ -863,10 +1088,10 @@ var createMethod$2 = function (IS_INCLUDES) {
863
1088
  var arrayIncludes = {
864
1089
  // `Array.prototype.includes` method
865
1090
  // https://tc39.es/ecma262/#sec-array.prototype.includes
866
- includes: createMethod$2(true),
1091
+ includes: createMethod$1(true),
867
1092
  // `Array.prototype.indexOf` method
868
1093
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
869
- indexOf: createMethod$2(false)
1094
+ indexOf: createMethod$1(false)
870
1095
  };
871
1096
 
872
1097
  var uncurryThis$2 = functionUncurryThis;
@@ -950,7 +1175,7 @@ var copyConstructorProperties$1 = function (target, source, exceptions) {
950
1175
  }
951
1176
  };
952
1177
 
953
- var fails$1 = fails$9;
1178
+ var fails = fails$8;
954
1179
  var isCallable = isCallable$a;
955
1180
 
956
1181
  var replacement = /#|\.prototype\./;
@@ -959,7 +1184,7 @@ var isForced$1 = function (feature, detection) {
959
1184
  var value = data[normalize(feature)];
960
1185
  return value == POLYFILL ? true
961
1186
  : value == NATIVE ? false
962
- : isCallable(detection) ? fails$1(detection)
1187
+ : isCallable(detection) ? fails(detection)
963
1188
  : !!detection;
964
1189
  };
965
1190
 
@@ -973,7 +1198,7 @@ var POLYFILL = isForced$1.POLYFILL = 'P';
973
1198
 
974
1199
  var isForced_1 = isForced$1;
975
1200
 
976
- var global$2 = global$b;
1201
+ var global$1 = global$a;
977
1202
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
978
1203
  var createNonEnumerableProperty = createNonEnumerableProperty$2;
979
1204
  var defineBuiltIn = defineBuiltIn$1;
@@ -1002,11 +1227,11 @@ var _export = function (options, source) {
1002
1227
  var STATIC = options.stat;
1003
1228
  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
1004
1229
  if (GLOBAL) {
1005
- target = global$2;
1230
+ target = global$1;
1006
1231
  } else if (STATIC) {
1007
- target = global$2[TARGET] || defineGlobalProperty(TARGET, {});
1232
+ target = global$1[TARGET] || defineGlobalProperty(TARGET, {});
1008
1233
  } else {
1009
- target = (global$2[TARGET] || {}).prototype;
1234
+ target = (global$1[TARGET] || {}).prototype;
1010
1235
  }
1011
1236
  if (target) for (key in source) {
1012
1237
  sourceProperty = source[key];
@@ -1028,348 +1253,15 @@ var _export = function (options, source) {
1028
1253
  }
1029
1254
  };
1030
1255
 
1031
- var aCallable = aCallable$2;
1032
- var toObject = toObject$2;
1033
- var IndexedObject = indexedObject;
1034
- var lengthOfArrayLike = lengthOfArrayLike$2;
1256
+ var internalObjectKeys = objectKeysInternal;
1257
+ var enumBugKeys = enumBugKeys$2;
1035
1258
 
1036
- var $TypeError = TypeError;
1037
-
1038
- // `Array.prototype.{ reduce, reduceRight }` methods implementation
1039
- var createMethod$1 = function (IS_RIGHT) {
1040
- return function (that, callbackfn, argumentsLength, memo) {
1041
- aCallable(callbackfn);
1042
- var O = toObject(that);
1043
- var self = IndexedObject(O);
1044
- var length = lengthOfArrayLike(O);
1045
- var index = IS_RIGHT ? length - 1 : 0;
1046
- var i = IS_RIGHT ? -1 : 1;
1047
- if (argumentsLength < 2) while (true) {
1048
- if (index in self) {
1049
- memo = self[index];
1050
- index += i;
1051
- break;
1052
- }
1053
- index += i;
1054
- if (IS_RIGHT ? index < 0 : length <= index) {
1055
- throw $TypeError('Reduce of empty array with no initial value');
1056
- }
1057
- }
1058
- for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
1059
- memo = callbackfn(memo, self[index], index, O);
1060
- }
1061
- return memo;
1062
- };
1063
- };
1064
-
1065
- var arrayReduce = {
1066
- // `Array.prototype.reduce` method
1067
- // https://tc39.es/ecma262/#sec-array.prototype.reduce
1068
- left: createMethod$1(false),
1069
- // `Array.prototype.reduceRight` method
1070
- // https://tc39.es/ecma262/#sec-array.prototype.reduceright
1071
- right: createMethod$1(true)
1072
- };
1073
-
1074
- var fails = fails$9;
1075
-
1076
- var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
1077
- var method = [][METHOD_NAME];
1078
- return !!method && fails(function () {
1079
- // eslint-disable-next-line no-useless-call -- required for testing
1080
- method.call(null, argument || function () { return 1; }, 1);
1081
- });
1082
- };
1083
-
1084
- var classof = classofRaw$1;
1085
- var global$1 = global$b;
1086
-
1087
- var engineIsNode = classof(global$1.process) == 'process';
1088
-
1089
- var $$1 = _export;
1090
- var $reduce = arrayReduce.left;
1091
- var arrayMethodIsStrict = arrayMethodIsStrict$1;
1092
- var CHROME_VERSION = engineV8Version;
1093
- var IS_NODE = engineIsNode;
1094
-
1095
- var STRICT_METHOD = arrayMethodIsStrict('reduce');
1096
- // Chrome 80-82 has a critical bug
1097
- // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
1098
- var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;
1099
-
1100
- // `Array.prototype.reduce` method
1101
- // https://tc39.es/ecma262/#sec-array.prototype.reduce
1102
- $$1({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {
1103
- reduce: function reduce(callbackfn /* , initialValue */) {
1104
- var length = arguments.length;
1105
- return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);
1106
- }
1107
- });
1108
-
1109
- var Genesis=[0,31,25,24,26,32,22,24,22,29,32,32,20,18,24,21,16,27,33,38,18,34,24,20,67,34,35,46,22,35,43,54,33,20,31,29,43,36,30,23,23,57,38,34,34,28,34,31,22,33,26];var Exodus=[0,22,25,22,31,23,30,29,28,35,29,10,51,22,31,27,36,16,27,25,26,37,30,33,18,40,37,21,43,46,38,18,35,23,35,35,38,29,31,43,38];var Leviticus=[0,17,16,17,35,26,23,38,36,24,20,47,8,59,57,33,34,16,30,37,27,24,33,44,23,55,46,34];var Numbers=[0,54,34,51,49,31,27,89,26,23,36,35,16,33,45,41,35,28,32,22,29,35,41,30,25,19,65,23,31,39,17,54,42,56,29,34,13];var Deuteronomy=[0,46,37,29,49,30,25,26,20,29,22,32,31,19,29,23,22,20,22,21,20,23,29,26,22,19,19,26,69,28,20,30,52,29,12];var Joshua=[0,18,24,17,24,15,27,26,35,27,43,23,24,33,15,63,10,18,28,51,9,45,34,16,33];var Judges=[0,36,23,31,24,31,40,25,35,57,18,40,15,25,20,20,31,13,31,30,48,25];var Ruth=[0,22,23,18,22];var Isaiah=[0,31,22,26,6,30,13,25,23,20,34,16,6,22,32,9,14,14,7,25,6,17,25,18,23,12,21,13,29,24,33,9,20,24,17,10,22,38,22,8,31,29,25,28,28,25,13,15,22,26,11,23,15,12,17,13,12,21,14,21,22,11,12,19,11,25,24];var Jeremiah=[0,19,37,25,31,31,30,34,23,25,25,23,17,27,22,21,21,27,23,15,18,14,30,40,10,38,24,22,17,32,24,40,44,26,22,19,32,21,28,18,16,18,22,13,30,5,28,7,47,39,46,64,34];var Lamentations=[0,22,22,66,22,22];var Baruch=[0,22,35,38,37,9,72];var Ezekiel=[0,28,10,27,17,17,14,27,18,11,22,25,28,23,23,8,63,24,32,14,44,37,31,49,27,17,21,36,26,21,26,18,32,33,31,15,38,28,23,29,49,26,20,27,31,25,24,23,35];var Daniel=[0,21,49,100,34,30,29,28,27,27,21,45,13,64,42];var Hosea=[0,9,25,5,19,15,11,16,14,17,15,11,15,15,10];var Joel=[0,20,27,5,21];var Amos=[0,15,16,15,13,27,14,17,14,15];var Obadiah=[0,21];var Jonah=[0,16,11,10,11];var Micah=[0,16,13,12,14,14,16,20];var Nachum=[0,14,14,19];var Habakkuk=[0,17,20,19];var Zephaniah=[0,18,15,20];var Haggai=[0,15,23];var Zechariah=[0,17,17,10,14,11,15,14,23,17,12,17,14,9,21];var Malachi=[0,14,17,24];var numverses = {Genesis:Genesis,Exodus:Exodus,Leviticus:Leviticus,Numbers:Numbers,Deuteronomy:Deuteronomy,Joshua:Joshua,Judges:Judges,Ruth:Ruth,"I Samuel":[0,28,36,21,22,12,21,17,22,27,27,15,25,23,52,35,23,58,30,24,42,16,23,28,23,43,25,12,25,11,31,13],"II Samuel":[0,27,32,39,12,25,23,29,18,13,19,27,31,39,33,37,23,29,32,44,26,22,51,39,25],"I Kings":[0,53,46,28,20,32,38,51,66,28,29,43,33,34,31,34,34,24,46,21,43,29,54],"II Kings":[0,18,25,27,44,27,33,20,29,37,36,20,22,25,29,38,20,41,37,37,21,26,20,37,20,30],Isaiah:Isaiah,Jeremiah:Jeremiah,Lamentations:Lamentations,Baruch:Baruch,Ezekiel:Ezekiel,Daniel:Daniel,Hosea:Hosea,Joel:Joel,Amos:Amos,Obadiah:Obadiah,Jonah:Jonah,Micah:Micah,Nachum:Nachum,Habakkuk:Habakkuk,Zephaniah:Zephaniah,Haggai:Haggai,Zechariah:Zechariah,Malachi:Malachi};
1110
-
1111
- /**
1112
- * Names of the books of the Torah. BOOK[1] === 'Genesis'
1113
- * @readonly
1114
- * @const {string[]}
1115
- */
1116
-
1117
- var BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
1118
- /**
1119
- * Formats parsha as a string
1120
- * @param {string[]} parsha
1121
- * @return {string}
1122
- */
1123
-
1124
- function parshaToString(parsha) {
1125
- var s = parsha[0];
1126
-
1127
- if (parsha.length == 2) {
1128
- s += '-' + parsha[1];
1129
- }
1130
-
1131
- return s;
1132
- }
1133
- /**
1134
- * Represents an aliyah
1135
- * @typedef {Object} Aliyah
1136
- * @property {string} k - Book (e.g. "Numbers")
1137
- * @property {string} b - beginning verse (e.g. "28:9")
1138
- * @property {string} e - ending verse (e.g. "28:15")
1139
- * @property {number} [v] - number of verses
1140
- * @property {number} [p] - parsha number (1=Bereshit, 54=Vezot HaBracha)
1141
- */
1142
-
1143
- /**
1144
- * Makes a deep copy of the src object using JSON stringify and parse
1145
- * @param {any} src
1146
- * @return {any}
1147
- */
1148
-
1149
- function clone(src) {
1150
- return JSON.parse(JSON.stringify(src));
1151
- }
1152
- /**
1153
- * Calculates the number of verses in an aliyah or haftara based on
1154
- * the `b` (begin verse), `e` (end verse) and `k` (book).
1155
- * Modifies `aliyah` by setting the `v` field.
1156
- * @param {Aliyah} aliyah
1157
- * @return {number}
1158
- */
1159
-
1160
- function calculateNumVerses(aliyah) {
1161
- if (aliyah.v) {
1162
- return aliyah.v;
1163
- }
1164
-
1165
- var chapVerseBegin = aliyah.b.split(':');
1166
- var chapVerseEnd = aliyah.e.split(':');
1167
- var c1 = parseInt(chapVerseBegin[0], 10);
1168
- var c2 = parseInt(chapVerseEnd[0], 10);
1169
- var v1 = parseInt(chapVerseBegin[1], 10);
1170
- var v2 = parseInt(chapVerseEnd[1], 10);
1171
-
1172
- if (c1 === c2) {
1173
- aliyah.v = v2 - v1 + 1;
1174
- } else if (typeof aliyah.k === 'string') {
1175
- var numv = numverses[aliyah.k];
1176
-
1177
- if (_typeof(numv) !== 'object' || !numv.length) {
1178
- throw new ReferenceError("Can't find numverses for ".concat(aliyah.k));
1179
- }
1180
-
1181
- var total = numv[c1] - v1 + 1;
1182
-
1183
- for (var chap = c1 + 1; chap < c2; chap++) {
1184
- total += numv[chap];
1185
- }
1186
-
1187
- total += v2;
1188
- aliyah.v = total;
1189
- }
1190
-
1191
- return aliyah.v;
1192
- }
1193
- /**
1194
- * Formats an aliyah object like "Numbers 28:9-28:15"
1195
- * @param {Aliyah} a aliyah
1196
- * @return {string}
1197
- */
1198
-
1199
- function formatAliyahWithBook(a) {
1200
- return "".concat(a.k, " ").concat(a.b, "-").concat(a.e);
1201
- }
1202
- /**
1203
- * Formats an aliyah object like "Numbers 28:9-15"
1204
- * @param {Aliyah} aliyah
1205
- * @param {boolean} showBook
1206
- * @return {string}
1207
- */
1208
-
1209
- function formatAliyahShort(aliyah, showBook) {
1210
- var begin = aliyah.b;
1211
- var end0 = aliyah.e;
1212
- var prefix = showBook ? aliyah.k + ' ' : '';
1213
-
1214
- if (begin === end0) {
1215
- return "".concat(prefix).concat(begin);
1216
- }
1217
-
1218
- var cv1 = begin.split(':');
1219
- var cv2 = end0.split(':');
1220
- var end = cv1[0] === cv2[0] ? cv2[1] : end0;
1221
- return "".concat(prefix).concat(begin, "-").concat(end);
1222
- }
1223
- /**
1224
- * Returns the total number of verses in an array of Aliyah (or haftarah) objects
1225
- * @param {Aliyah|Aliyah[]} aliyot
1226
- * @return {number}
1227
- */
1228
-
1229
- function sumVerses(aliyot) {
1230
- return Array.isArray(aliyot) ? aliyot.reduce(function (prev, cur) {
1231
- return prev + cur.v;
1232
- }, 0) : aliyot.v;
1233
- }
1234
- /**
1235
- * @private
1236
- * @param {Aliyah|Aliyah[]} haft
1237
- * @return {Aliyah|Aliyah[]}
1238
- */
1239
-
1240
- function cloneHaftara(haft) {
1241
- if (!haft) {
1242
- return haft;
1243
- }
1244
-
1245
- var dest = clone(haft);
1246
-
1247
- if (Array.isArray(dest)) {
1248
- dest.map(calculateNumVerses);
1249
- } else {
1250
- calculateNumVerses(dest);
1251
- }
1252
-
1253
- return dest;
1254
- }
1255
-
1256
- /**
1257
- * @private
1258
- * @param {string} a
1259
- * @param {string} b
1260
- * @return {boolean}
1261
- */
1262
-
1263
- function isChapVerseBefore(a, b) {
1264
- var cv1 = a.split(':').map(function (x) {
1265
- return +x;
1266
- });
1267
- var cv2 = b.split(':').map(function (x) {
1268
- return +x;
1269
- });
1270
- return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
1271
- }
1272
- /**
1273
- * Summarizes an `AliyotMap` by collapsing all adjacent aliyot.
1274
- * Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)
1275
- * @param {Object<string,Aliyah>} aliyot
1276
- * @return {Aliyah[]}
1277
- */
1278
-
1279
-
1280
- function makeLeyningParts(aliyot) {
1281
- var nums = Object.keys(aliyot).filter(function (x) {
1282
- return x.length === 1;
1283
- });
1284
- var start = aliyot[nums[0]];
1285
- var end = start;
1286
- var parts = [];
1287
-
1288
- for (var i = 0; i < nums.length; i++) {
1289
- var num = nums[i];
1290
- var aliyah = aliyot[num];
1291
-
1292
- if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
1293
- // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
1294
- continue;
1295
- }
1296
-
1297
- var prevEndChap = +end.e.split(':')[0];
1298
- var curStartChap = +aliyah.b.split(':')[0];
1299
- var sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
1300
-
1301
- if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
1302
- parts.push({
1303
- k: start.k,
1304
- b: start.b,
1305
- e: end.e
1306
- });
1307
- start = aliyah;
1308
- }
1309
-
1310
- end = aliyah;
1311
- }
1312
-
1313
- parts.push({
1314
- k: start.k,
1315
- b: start.b,
1316
- e: end.e
1317
- });
1318
- return parts;
1319
- }
1320
- /**
1321
- * Returns a string representation of the leyning parts.
1322
- * Separate verse ranges read from the same book are separated
1323
- * by commas, e.g. `Isaiah 6:1-7:6, 9:5-6`.
1324
- * Verse ranges from different books are separated by semicolons,
1325
- * e.g. `Genesis 21:1-34; Numbers 29:1-6`.
1326
- * @param {Aliyah|Aliyah[]} parts
1327
- * @return {string}
1328
- */
1329
-
1330
- function makeSummaryFromParts(parts) {
1331
- if (!Array.isArray(parts)) {
1332
- parts = [parts];
1333
- }
1334
-
1335
- var prev = parts[0];
1336
- var summary = formatAliyahShort(prev, true);
1337
-
1338
- for (var i = 1; i < parts.length; i++) {
1339
- var part = parts[i];
1340
-
1341
- if (part.k === prev.k) {
1342
- summary += ', ';
1343
- } else {
1344
- summary += "; ".concat(part.k, " ");
1345
- }
1346
-
1347
- summary += formatAliyahShort(part, false);
1348
- prev = part;
1349
- }
1350
-
1351
- return summary;
1352
- }
1353
- /**
1354
- * Makes a summary of the leyning, like "Genesis 6:9-11:32"
1355
- * @param {Object<string,Aliyah>} aliyot
1356
- * @return {string}
1357
- */
1358
-
1359
- function makeLeyningSummary(aliyot) {
1360
- var parts = makeLeyningParts(aliyot);
1361
- return makeSummaryFromParts(parts);
1362
- }
1363
-
1364
- var internalObjectKeys = objectKeysInternal;
1365
- var enumBugKeys = enumBugKeys$2;
1366
-
1367
- // `Object.keys` method
1368
- // https://tc39.es/ecma262/#sec-object.keys
1369
- // eslint-disable-next-line es/no-object-keys -- safe
1370
- var objectKeys$1 = Object.keys || function keys(O) {
1371
- return internalObjectKeys(O, enumBugKeys);
1372
- };
1259
+ // `Object.keys` method
1260
+ // https://tc39.es/ecma262/#sec-object.keys
1261
+ // eslint-disable-next-line es/no-object-keys -- safe
1262
+ var objectKeys$1 = Object.keys || function keys(O) {
1263
+ return internalObjectKeys(O, enumBugKeys);
1264
+ };
1373
1265
 
1374
1266
  var DESCRIPTORS = descriptors;
1375
1267
  var uncurryThis = functionUncurryThis;
@@ -1426,35 +1318,28 @@ var Purim={fullkriyah:{"1":{p:16,k:2,b:"17:8",e:"17:10"},"2":{p:16,k:2,b:"17:11"
1426
1318
  * @param {string} holiday
1427
1319
  * @return {boolean}
1428
1320
  */
1429
-
1430
1321
  function hasFestival(holiday) {
1431
1322
  return _typeof(festivals[holiday]) === 'object';
1432
1323
  }
1324
+
1433
1325
  /**
1434
1326
  * Returns the raw metadata for festival reading for `holiday`
1435
1327
  * @param {string} holiday
1436
1328
  * @return {any}
1437
1329
  */
1438
-
1439
1330
  function lookupFestival(holiday) {
1440
1331
  var src = festivals[holiday];
1441
-
1442
1332
  if (typeof src === 'undefined') {
1443
1333
  return undefined;
1444
1334
  }
1445
-
1446
1335
  if (src.alias) {
1447
1336
  var tmp = festivals[src.key];
1448
-
1449
1337
  if (typeof tmp === 'undefined') {
1450
1338
  throw new Error("Leyning alias ".concat(holiday, " => ").concat(src.key, " not found"));
1451
1339
  }
1452
-
1453
1340
  src = tmp;
1454
1341
  }
1455
-
1456
1342
  var result = src.fullkriyah ? clone(src) : src;
1457
-
1458
1343
  if (result.fullkriyah) {
1459
1344
  Object.values(result.fullkriyah).forEach(function (aliyah) {
1460
1345
  if (typeof aliyah.k === 'number') {
@@ -1462,33 +1347,28 @@ function lookupFestival(holiday) {
1462
1347
  }
1463
1348
  });
1464
1349
  }
1465
-
1466
1350
  return result;
1467
1351
  }
1468
1352
 
1469
- var HOLIDAY_IGNORE_MASK = core.flags.DAF_YOMI | core.flags.OMER_COUNT | core.flags.SHABBAT_MEVARCHIM | core.flags.MOLAD | core.flags.USER_EVENT | core.flags.HEBREW_DATE | core.flags.MISHNA_YOMI | core.flags.MODERN_HOLIDAY;
1353
+ var HOLIDAY_IGNORE_MASK = core.flags.DAF_YOMI | core.flags.OMER_COUNT | core.flags.SHABBAT_MEVARCHIM | core.flags.MOLAD | core.flags.USER_EVENT | core.flags.HEBREW_DATE | core.flags.MISHNA_YOMI | core.flags.MODERN_HOLIDAY | core.flags.YERUSHALMI_YOMI;
1354
+
1470
1355
  /**
1471
1356
  * Based on the event date, type and title, finds the relevant leyning key
1472
1357
  * @param {Event} ev event
1473
1358
  * @param {boolean} [il] true if Israel holiday scheme
1474
1359
  * @return {string} key to look up in holiday-reading.json
1475
1360
  */
1476
-
1477
1361
  function getLeyningKeyForEvent(ev) {
1478
1362
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1479
1363
  var mask = ev.getFlags();
1480
-
1481
1364
  if (mask & HOLIDAY_IGNORE_MASK) {
1482
1365
  return undefined;
1483
- } // Skip all Erevs except for Simchat Torah
1484
-
1485
-
1366
+ }
1367
+ // Skip all Erevs except for Simchat Torah
1486
1368
  var desc = ev.getDesc();
1487
-
1488
1369
  if (mask & core.flags.EREV && desc !== 'Erev Simchat Torah') {
1489
1370
  return undefined;
1490
1371
  }
1491
-
1492
1372
  var hd = ev.getDate();
1493
1373
  var day = hd.getDate();
1494
1374
  var dow = hd.abs() % 7;
@@ -1497,15 +1377,12 @@ function getLeyningKeyForEvent(ev) {
1497
1377
  var isRoshChodesh = day == 1 || day == 30;
1498
1378
  var holiday = ev.basename();
1499
1379
  var isPesach = holiday === 'Pesach';
1500
-
1501
1380
  if (il && isPesach) {
1502
1381
  if (isShabbat) {
1503
1382
  return day === 15 || day === 21 ? desc + ' (on Shabbat)' : 'Pesach Shabbat Chol ha-Moed';
1504
1383
  }
1505
-
1506
1384
  return desc;
1507
1385
  }
1508
-
1509
1386
  if (day == 1 && month === core.months.TISHREI) {
1510
1387
  return isShabbat ? 'Rosh Hashana I (on Shabbat)' : 'Rosh Hashana I';
1511
1388
  } else if (ev.cholHaMoedDay) {
@@ -1514,12 +1391,10 @@ function getLeyningKeyForEvent(ev) {
1514
1391
  return holiday + ' Shabbat Chol ha-Moed';
1515
1392
  } else if (desc == 'Sukkot VII (Hoshana Raba)') {
1516
1393
  return 'Sukkot Final Day (Hoshana Raba)';
1517
- } // If Shabbat falls on the third day of Chol ha-Moed Pesach,
1394
+ }
1395
+ // If Shabbat falls on the third day of Chol ha-Moed Pesach,
1518
1396
  // the readings for the third, fourth, and fifth days are moved ahead
1519
-
1520
-
1521
1397
  var cholHaMoedDay = ev.cholHaMoedDay;
1522
-
1523
1398
  if (isPesach && cholHaMoedDay >= 3) {
1524
1399
  if (dow == 0 && cholHaMoedDay == 4) {
1525
1400
  cholHaMoedDay = 3;
@@ -1527,7 +1402,6 @@ function getLeyningKeyForEvent(ev) {
1527
1402
  cholHaMoedDay = 4;
1528
1403
  }
1529
1404
  }
1530
-
1531
1405
  return "".concat(holiday, " Chol ha-Moed Day ").concat(cholHaMoedDay);
1532
1406
  } else if (ev.chanukahDay) {
1533
1407
  if (isShabbat && isRoshChodesh) {
@@ -1540,54 +1414,45 @@ function getLeyningKeyForEvent(ev) {
1540
1414
  return "Chanukah Day ".concat(ev.chanukahDay);
1541
1415
  }
1542
1416
  }
1543
-
1544
1417
  if (isRoshChodesh && (desc == 'Shabbat HaChodesh' || desc == 'Shabbat Shekalim')) {
1545
1418
  return desc + ' (on Rosh Chodesh)';
1546
1419
  }
1547
-
1548
1420
  if (desc == 'Shavuot') {
1549
1421
  return 'Shavuot I';
1550
1422
  } else if (il && desc == 'Shmini Atzeret') {
1551
1423
  return 'Simchat Torah';
1552
1424
  }
1553
-
1425
+ if (desc === 'Chag HaBanot') {
1426
+ return undefined;
1427
+ }
1554
1428
  if (isShabbat && 'Shabbat' != desc.substring(0, 7)) {
1555
1429
  if (isRoshChodesh) {
1556
1430
  if (desc === 'Rosh Chodesh Tevet') {
1557
1431
  return 'Shabbat Rosh Chodesh Chanukah';
1558
1432
  }
1559
-
1560
1433
  return 'Shabbat Rosh Chodesh';
1561
1434
  }
1562
-
1563
1435
  var desc2 = desc + ' (on Shabbat)';
1564
-
1565
1436
  if (hasFestival(desc2)) {
1566
1437
  return desc2;
1567
1438
  }
1568
1439
  }
1569
-
1570
1440
  if (hasFestival(desc)) {
1571
1441
  return desc;
1572
1442
  }
1573
-
1574
1443
  if (isShabbat) {
1575
1444
  var tommorow = hd.next().getDate();
1576
-
1577
1445
  if (tommorow === 30 || tommorow === 1) {
1578
1446
  return 'Shabbat Machar Chodesh';
1579
1447
  }
1580
1448
  }
1581
-
1582
1449
  if (desc === 'Rosh Hashana LaBehemot') {
1583
1450
  return undefined;
1584
1451
  }
1585
-
1586
1452
  if (desc === 'Rosh Chodesh Tevet') {
1587
1453
  if (isShabbat) {
1588
1454
  return 'Shabbat Rosh Chodesh Chanukah';
1589
1455
  }
1590
-
1591
1456
  if (day === 30 || core.HDate.shortKislev(hd.getFullYear())) {
1592
1457
  return 'Chanukah Day 6'; // 30th of Kislev or 1st of Tevet
1593
1458
  } else {
@@ -1598,11 +1463,9 @@ function getLeyningKeyForEvent(ev) {
1598
1463
  if (isRoshChodesh) {
1599
1464
  return desc;
1600
1465
  }
1601
-
1602
1466
  if (desc === 'Tish\'a B\'Av (observed)') {
1603
1467
  return 'Tish\'a B\'Av';
1604
1468
  }
1605
-
1606
1469
  return undefined;
1607
1470
  }
1608
1471
 
@@ -1610,45 +1473,40 @@ function getLeyningKeyForEvent(ev) {
1610
1473
  * @private
1611
1474
  * @param {Object<string,Aliyah>} aliyot
1612
1475
  */
1613
-
1614
1476
  function aliyotCombine67(aliyot) {
1615
1477
  var a6 = clone(aliyot['6']);
1616
1478
  var a7 = aliyot['7'];
1617
-
1618
1479
  if (a6.k !== a7.k) {
1619
1480
  throw new Error('Impossible to combine aliyot 6 & 7: ' + JSON.stringify(aliyot));
1620
1481
  }
1621
-
1622
1482
  delete aliyot['7'];
1623
1483
  aliyot['6'] = {
1624
1484
  k: a6.k,
1625
1485
  b: a6.b,
1626
1486
  e: a7.e
1627
1487
  };
1628
-
1629
1488
  if (a6.v && a7.v) {
1630
1489
  aliyot['6'].v = a6.v + a7.v;
1631
1490
  }
1632
1491
  }
1492
+
1633
1493
  /**
1634
1494
  * @private
1635
1495
  * @param {Object<string,Aliyah>} aliyot
1636
1496
  * @param {Object<string,Aliyah>} special
1637
1497
  */
1638
-
1639
-
1640
1498
  function mergeAliyotWithSpecial(aliyot, special) {
1641
1499
  if (special['7']) {
1642
1500
  aliyotCombine67(aliyot);
1643
1501
  aliyot['7'] = clone(special['7']);
1644
1502
  calculateNumVerses(aliyot['7']);
1645
1503
  }
1646
-
1647
1504
  if (special['M']) {
1648
1505
  aliyot['M'] = clone(special['M']);
1649
1506
  calculateNumVerses(aliyot['M']);
1650
1507
  }
1651
1508
  }
1509
+
1652
1510
  /**
1653
1511
  * Determines if the regular parashat haShavua coincides with an event that requires
1654
1512
  * a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
@@ -1667,33 +1525,28 @@ function mergeAliyotWithSpecial(aliyot, special) {
1667
1525
  * @param {boolean} [wantSeph]
1668
1526
  * @return {Aliyah | Aliyah[]}
1669
1527
  */
1670
-
1671
-
1672
1528
  function specialReadings(hd, il, aliyot, reason, parsha) {
1673
1529
  var wantSeph = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
1674
1530
  var haft;
1675
1531
  var seph;
1676
1532
  var specialHaft = false;
1677
- var parshaName = parsha ? parshaToString(parsha) : null; // eslint-disable-next-line require-jsdoc
1533
+ var parshaName = parsha ? parshaToString(parsha) : null;
1678
1534
 
1535
+ // eslint-disable-next-line require-jsdoc
1679
1536
  function handleSpecial(key) {
1680
1537
  var special = lookupFestival(key);
1681
-
1682
1538
  if (!special) {
1683
1539
  return;
1684
1540
  }
1685
-
1686
1541
  if (special.haft && !specialHaft) {
1687
1542
  haft = cloneHaftara(special.haft);
1688
1543
  reason.haftara = key;
1689
1544
  specialHaft = true;
1690
-
1691
1545
  if (special.seph) {
1692
1546
  seph = cloneHaftara(special.seph);
1693
1547
  reason.sephardic = key;
1694
1548
  }
1695
1549
  }
1696
-
1697
1550
  if (special.fullkriyah) {
1698
1551
  mergeAliyotWithSpecial(aliyot, special.fullkriyah);
1699
1552
  Object.keys(special.fullkriyah).map(function (k) {
@@ -1701,7 +1554,6 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1701
1554
  });
1702
1555
  }
1703
1556
  }
1704
-
1705
1557
  var events0 = core.HebrewCalendar.getHolidaysOnDate(hd, il) || [];
1706
1558
  var events = events0.filter(function (ev) {
1707
1559
  return !(ev.getFlags() & core.flags.ROSH_CHODESH);
@@ -1711,16 +1563,13 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1711
1563
  handleSpecial("Shabbat Shuva (with ".concat(parshaName, ")"));
1712
1564
  } else {
1713
1565
  var key = getLeyningKeyForEvent(ev, il);
1714
-
1715
1566
  if (key) {
1716
1567
  handleSpecial(key);
1717
1568
  }
1718
1569
  }
1719
1570
  });
1720
-
1721
1571
  if (!haft) {
1722
1572
  var day = hd.getDate();
1723
-
1724
1573
  if (parshaName === 'Pinchas' && day > 17) {
1725
1574
  // Pinchas is always read in Tamuz (never another month)
1726
1575
  // either on the 14, 16, 17 (in Israel), 19, 21, 23, 24
@@ -1730,13 +1579,11 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1730
1579
  handleSpecial(key);
1731
1580
  } else {
1732
1581
  var tommorow = hd.next().getDate();
1733
-
1734
1582
  if (tommorow === 30 || tommorow === 1) {
1735
1583
  handleSpecial('Shabbat Machar Chodesh');
1736
1584
  }
1737
1585
  }
1738
1586
  }
1739
-
1740
1587
  if (wantSeph && haft) {
1741
1588
  return {
1742
1589
  haft: haft,
@@ -1795,10 +1642,8 @@ var Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"4
1795
1642
  * @param {boolean} [il] true if Israel holiday scheme
1796
1643
  * @return {Leyning} map of aliyot
1797
1644
  */
1798
-
1799
1645
  function getLeyningForHoliday(ev) {
1800
1646
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1801
-
1802
1647
  if (_typeof(ev) !== 'object' || !(ev instanceof core.Event)) {
1803
1648
  throw new TypeError("Bad event argument: ".concat(ev));
1804
1649
  } else if (ev.getFlags() & core.flags.PARSHA_HASHAVUA) {
@@ -1806,11 +1651,11 @@ function getLeyningForHoliday(ev) {
1806
1651
  } else if (ev.getFlags() & HOLIDAY_IGNORE_MASK) {
1807
1652
  return undefined;
1808
1653
  }
1809
-
1810
1654
  var key = getLeyningKeyForEvent(ev, il);
1811
1655
  var leyning = getLeyningForHolidayKey(key, ev.cholHaMoedDay);
1812
1656
  return leyning;
1813
1657
  }
1658
+
1814
1659
  /**
1815
1660
  * Looks up leyning for a given holiday key. Key should be an
1816
1661
  * (untranslated) string used in holiday-readings.json. Returns some
@@ -1819,64 +1664,52 @@ function getLeyningForHoliday(ev) {
1819
1664
  * @param {number} [cholHaMoedDay]
1820
1665
  * @return {Leyning} map of aliyot
1821
1666
  */
1822
-
1823
1667
  function getLeyningForHolidayKey(key, cholHaMoedDay) {
1824
1668
  if (typeof key !== 'string') {
1825
1669
  return undefined;
1826
1670
  }
1827
-
1828
1671
  var src = lookupFestival(key);
1829
-
1830
1672
  if (typeof src === 'undefined') {
1831
1673
  return undefined;
1832
1674
  }
1833
-
1834
1675
  var leyning = {
1835
1676
  name: {
1836
1677
  en: key,
1837
1678
  he: core.Locale.lookupTranslation(key, 'he')
1838
1679
  }
1839
1680
  };
1840
-
1841
1681
  if (src.fullkriyah) {
1842
1682
  leyning.fullkriyah = clone(src.fullkriyah);
1843
-
1844
1683
  if (key === 'Sukkot Shabbat Chol ha-Moed' && cholHaMoedDay) {
1845
1684
  leyning.fullkriyah['M'] = leyning.fullkriyah["M-day".concat(cholHaMoedDay)];
1846
-
1847
1685
  for (var day = 1; day <= 5; day++) {
1848
1686
  delete leyning.fullkriyah["M-day".concat(day)];
1849
1687
  }
1850
1688
  }
1851
-
1852
1689
  if (_typeof(leyning.fullkriyah['1']) === 'object') {
1853
1690
  var parts = makeLeyningParts(leyning.fullkriyah);
1854
1691
  leyning.summary = makeSummaryFromParts(parts);
1855
-
1856
1692
  if (parts.length > 1) {
1857
1693
  leyning.summaryParts = parts;
1858
1694
  }
1859
1695
  }
1860
-
1861
1696
  Object.values(leyning.fullkriyah).map(function (aliyah) {
1862
1697
  return calculateNumVerses(aliyah);
1863
1698
  });
1864
1699
  }
1865
-
1866
1700
  if (src.haft) {
1867
1701
  var haft = leyning.haft = cloneHaftara(src.haft);
1868
1702
  leyning.haftara = makeSummaryFromParts(haft);
1869
1703
  leyning.haftaraNumV = sumVerses(haft);
1870
1704
  }
1871
-
1872
1705
  if (src.seph) {
1873
1706
  var seph = leyning.seph = cloneHaftara(src.seph);
1874
1707
  leyning.sephardic = makeSummaryFromParts(seph);
1875
1708
  leyning.sephardicNumV = sumVerses(seph);
1876
1709
  }
1877
-
1878
1710
  return leyning;
1879
1711
  }
1712
+
1880
1713
  /**
1881
1714
  * on doubled parshiot, read only the second Haftarah
1882
1715
  * except for Nitzavim-Vayelech
@@ -1884,7 +1717,6 @@ function getLeyningForHolidayKey(key, cholHaMoedDay) {
1884
1717
  * @param {string[]} parsha
1885
1718
  * @return {string}
1886
1719
  */
1887
-
1888
1720
  function getHaftaraKey(parsha) {
1889
1721
  if (parsha.length == 1 || parsha[0] == 'Nitzavim') {
1890
1722
  return parsha[0];
@@ -1892,20 +1724,17 @@ function getHaftaraKey(parsha) {
1892
1724
  return parsha[1];
1893
1725
  }
1894
1726
  }
1727
+
1895
1728
  /**
1896
1729
  * Looks up regular leyning for a weekly parsha with no special readings
1897
1730
  * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
1898
1731
  * @return {Leyning} map of aliyot
1899
1732
  */
1900
-
1901
-
1902
1733
  function getLeyningForParsha(parsha) {
1903
1734
  var isParshaString = typeof parsha === 'string';
1904
-
1905
1735
  if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
1906
1736
  throw new TypeError("Bad parsha argument: ".concat(parsha));
1907
1737
  }
1908
-
1909
1738
  var name = isParshaString ? parsha : parshaToString(parsha);
1910
1739
  var raw = parshiyotObj[name];
1911
1740
  var fullkriyah = {};
@@ -1926,7 +1755,6 @@ function getLeyningForParsha(parsha) {
1926
1755
  var parts = makeLeyningParts(fullkriyah);
1927
1756
  var summary = makeSummaryFromParts(parts);
1928
1757
  /** @type {Leyning} */
1929
-
1930
1758
  var result = {
1931
1759
  name: {
1932
1760
  en: name,
@@ -1939,28 +1767,22 @@ function getLeyningForParsha(parsha) {
1939
1767
  summary: summary,
1940
1768
  fullkriyah: fullkriyah
1941
1769
  };
1942
-
1943
1770
  if (parts.length > 1) {
1944
1771
  result.summaryParts = parts;
1945
1772
  }
1946
-
1947
1773
  var hkey = getHaftaraKey(parshaNameArray);
1948
1774
  var haft0 = parshiyotObj[hkey].haft;
1949
-
1950
1775
  if (haft0) {
1951
1776
  var haft = result.haft = cloneHaftara(haft0);
1952
1777
  result.haftara = makeSummaryFromParts(haft);
1953
1778
  result.haftaraNumV = sumVerses(haft);
1954
1779
  }
1955
-
1956
1780
  if (raw.seph) {
1957
1781
  var seph = result.seph = cloneHaftara(raw.seph);
1958
1782
  result.sephardic = makeSummaryFromParts(seph);
1959
1783
  result.sephardicNumV = sumVerses(seph);
1960
1784
  }
1961
-
1962
1785
  var weekdaySrc = raw.weekday || parshiyotObj[parshaNameArray[0]].weekday;
1963
-
1964
1786
  if (weekdaySrc) {
1965
1787
  var weekday = result.weekday = {};
1966
1788
  ['1', '2', '3'].forEach(function (num) {
@@ -1974,9 +1796,9 @@ function getLeyningForParsha(parsha) {
1974
1796
  weekday[num] = aliyah;
1975
1797
  });
1976
1798
  }
1977
-
1978
1799
  return result;
1979
1800
  }
1801
+
1980
1802
  /**
1981
1803
  * Looks up leyning for a regular Shabbat parsha, including any special
1982
1804
  * maftir or Haftara.
@@ -1984,44 +1806,36 @@ function getLeyningForParsha(parsha) {
1984
1806
  * @param {boolean} [il] in Israel
1985
1807
  * @return {Leyning} map of aliyot
1986
1808
  */
1987
-
1988
1809
  function getLeyningForParshaHaShavua(ev) {
1989
1810
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1990
-
1991
1811
  if (!ev instanceof core.Event) {
1992
1812
  throw new TypeError("Bad event argument: ".concat(ev));
1993
1813
  } else if (ev.getFlags() != core.flags.PARSHA_HASHAVUA) {
1994
1814
  throw new TypeError("Event must be parsha hashavua: ".concat(ev.getDesc()));
1995
- } // first, collect the default aliyot and haftara
1996
-
1997
-
1815
+ }
1816
+ // first, collect the default aliyot and haftara
1998
1817
  var parsha = ev.parsha;
1999
1818
  var result = getLeyningForParsha(parsha);
2000
1819
  var reason = {};
2001
- var hd = ev.getDate(); // Now, check for special maftir or haftara on same date
2002
-
1820
+ var hd = ev.getDate();
1821
+ // Now, check for special maftir or haftara on same date
2003
1822
  var specialHaftara = specialReadings(hd, il, result.fullkriyah, reason, parsha, true);
2004
-
2005
1823
  if (specialHaftara) {
2006
1824
  var haft = result.haft = cloneHaftara(specialHaftara.haft);
2007
1825
  result.haftara = makeSummaryFromParts(haft);
2008
1826
  result.haftaraNumV = sumVerses(haft);
2009
-
2010
1827
  if (specialHaftara.seph) {
2011
1828
  var seph = result.seph = cloneHaftara(specialHaftara.seph);
2012
1829
  result.sephardic = makeSummaryFromParts(seph);
2013
1830
  result.sephardicNumV = sumVerses(seph);
2014
1831
  }
2015
1832
  }
2016
-
2017
1833
  if (reason['7'] || reason['M']) {
2018
1834
  var parts = makeLeyningParts(result.fullkriyah);
2019
1835
  result.summary = makeSummaryFromParts(parts);
2020
1836
  result.summaryParts = parts;
2021
1837
  }
2022
-
2023
1838
  var reasons = Object.keys(reason);
2024
-
2025
1839
  if (reasons.length !== 0) {
2026
1840
  result.reason = reason;
2027
1841
  reasons.forEach(function (num) {
@@ -2033,18 +1847,17 @@ function getLeyningForParshaHaShavua(ev) {
2033
1847
  });
2034
1848
  } else {
2035
1849
  var aliyah = result.fullkriyah[num];
2036
-
2037
1850
  if (_typeof(aliyah) === 'object') {
2038
1851
  aliyah.reason = reason[num];
2039
1852
  }
2040
1853
  }
2041
1854
  });
2042
- } // to avoid confusion, don't include Saturday mincha reading here
2043
-
2044
-
1855
+ }
1856
+ // to avoid confusion, don't include Saturday mincha reading here
2045
1857
  delete result.weekday;
2046
1858
  return result;
2047
1859
  }
1860
+
2048
1861
  /**
2049
1862
  * Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.
2050
1863
  *
@@ -2062,34 +1875,26 @@ function getLeyningForParshaHaShavua(ev) {
2062
1875
  * @param {boolean} il in Israel
2063
1876
  * @return {Leyning} map of aliyot
2064
1877
  */
2065
-
2066
1878
  function getLeyningOnDate(hdate, il) {
2067
1879
  var dow = hdate.getDay();
2068
1880
  var hyear = hdate.getFullYear();
2069
1881
  var sedra = core.HebrewCalendar.getSedra(hyear, il);
2070
1882
  var parsha = sedra.lookup(hdate);
2071
-
2072
1883
  if (dow === 6 && !parsha.chag) {
2073
1884
  var parshaEvent = new core.ParshaEvent(hdate, parsha.parsha, il);
2074
1885
  return getLeyningForParshaHaShavua(parshaEvent, il);
2075
1886
  }
2076
-
2077
1887
  var events = core.HebrewCalendar.getHolidaysOnDate(hdate, il) || [];
2078
-
2079
1888
  for (var i = 0; i < events.length; i++) {
2080
1889
  var reading = getLeyningForHoliday(events[i], il);
2081
-
2082
1890
  if (reading) {
2083
1891
  return reading;
2084
1892
  }
2085
1893
  }
2086
-
2087
1894
  if (dow === 1 || dow === 4) {
2088
1895
  var saturday = hdate.onOrAfter(6);
2089
1896
  var parsha2 = findParshaHaShavua(saturday);
2090
-
2091
1897
  var _reading = getLeyningForParsha(parsha2.parsha);
2092
-
2093
1898
  var result = {
2094
1899
  name: _reading.name,
2095
1900
  parsha: _reading.parsha,
@@ -2097,44 +1902,38 @@ function getLeyningOnDate(hdate, il) {
2097
1902
  weekday: _reading.weekday
2098
1903
  };
2099
1904
  return result;
2100
- } // no reading today: it's not Shabbat, Mon/Thu, or a Torah-reading holiday
2101
-
2102
-
1905
+ }
1906
+ // no reading today: it's not Shabbat, Mon/Thu, or a Torah-reading holiday
2103
1907
  return undefined;
2104
1908
  }
1909
+
2105
1910
  /**
2106
1911
  * @private
2107
1912
  * @param {HDate} saturday
2108
1913
  * @param {boolean} il
2109
1914
  * @return {Leyning}
2110
1915
  */
2111
-
2112
1916
  function findParshaHaShavua(saturday, il) {
2113
1917
  var hyear = saturday.getFullYear();
2114
1918
  var sedra = core.HebrewCalendar.getSedra(hyear, il);
2115
1919
  var parsha = sedra.lookup(saturday);
2116
-
2117
1920
  if (!parsha.chag) {
2118
1921
  return parsha;
2119
- } // Search for next regular parsha, which could even spill into next year
2120
-
2121
-
1922
+ }
1923
+ // Search for next regular parsha, which could even spill into next year
2122
1924
  var endOfYear = new core.HDate(1, core.months.TISHREI, hyear + 1).abs() - 1;
2123
1925
  var endAbs = endOfYear + 30;
2124
-
2125
1926
  for (var sat2 = saturday.abs() + 7; sat2 <= endAbs; sat2 += 7) {
2126
1927
  var sedra2 = sat2 > endOfYear ? core.HebrewCalendar.getSedra(hyear + 1, il) : sedra;
2127
1928
  var parsha2 = sedra2.lookup(sat2);
2128
-
2129
1929
  if (!parsha2.chag) {
2130
1930
  return parsha2;
2131
1931
  }
2132
1932
  }
2133
1933
  /* NOTREACHED */
2134
-
2135
-
2136
1934
  return null;
2137
1935
  }
1936
+
2138
1937
  /**
2139
1938
  * Parsha metadata
2140
1939
  * @typedef {Object} ParshaMeta
@@ -2153,22 +1952,16 @@ function findParshaHaShavua(saturday, il) {
2153
1952
  * @param {string|string[]} parsha
2154
1953
  * @return {ParshaMeta}
2155
1954
  */
2156
-
2157
-
2158
1955
  function lookupParsha(parsha) {
2159
1956
  var isParshaString = typeof parsha === 'string';
2160
-
2161
1957
  if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
2162
1958
  throw new TypeError("Bad parsha argument: ".concat(parsha));
2163
1959
  }
2164
-
2165
1960
  var name = isParshaString ? parsha : parshaToString(parsha);
2166
1961
  var raw = parshiyotObj[name];
2167
-
2168
1962
  if (_typeof(raw) !== 'object') {
2169
1963
  throw new TypeError("Bad parsha argument: ".concat(parsha));
2170
1964
  }
2171
-
2172
1965
  return raw;
2173
1966
  }
2174
1967
 
@@ -2177,23 +1970,22 @@ var fmt = new Intl.DateTimeFormat('en-US', {
2177
1970
  month: 'short',
2178
1971
  day: '2-digit'
2179
1972
  });
1973
+
2180
1974
  /**
2181
1975
  * @private
2182
1976
  * @param {Date} dt
2183
1977
  * @return {string}
2184
1978
  */
2185
-
2186
1979
  function fmtDate(dt) {
2187
1980
  var s = fmt.format(dt).split(' ');
2188
1981
  return s[1].substring(0, 2) + '-' + s[0] + '-' + s[2];
2189
1982
  }
1983
+
2190
1984
  /**
2191
1985
  * @private
2192
1986
  * @param {Event[]} events
2193
1987
  * @return {Object<string,boolean>}
2194
1988
  */
2195
-
2196
-
2197
1989
  function getParshaDates(events) {
2198
1990
  var parshaEvents = events.filter(function (ev) {
2199
1991
  return ev.getFlags() === core.flags.PARSHA_HASHAVUA;
@@ -2204,13 +1996,13 @@ function getParshaDates(events) {
2204
1996
  }, {});
2205
1997
  return parshaDates;
2206
1998
  }
1999
+
2207
2000
  /**
2208
2001
  * @private
2209
2002
  * @param {fs.WriteStream} stream
2210
2003
  * @param {number} hyear
2211
2004
  * @param {boolean} il
2212
2005
  */
2213
-
2214
2006
  function writeFullKriyahCsv(stream, hyear, il) {
2215
2007
  var events0 = core.HebrewCalendar.calendar({
2216
2008
  year: hyear,
@@ -2229,68 +2021,61 @@ function writeFullKriyahCsv(stream, hyear, il) {
2229
2021
  }
2230
2022
  });
2231
2023
  }
2024
+
2232
2025
  /**
2233
2026
  * @private
2234
2027
  * @param {Event} ev
2235
2028
  * @return {boolean}
2236
2029
  */
2237
-
2238
2030
  function ignore(ev) {
2239
2031
  var mask = ev.getFlags();
2240
-
2241
2032
  if (mask === core.flags.SPECIAL_SHABBAT) {
2242
2033
  return true;
2243
2034
  }
2244
-
2245
2035
  if (mask !== core.flags.ROSH_CHODESH) {
2246
2036
  return false;
2247
2037
  }
2248
-
2249
2038
  return ev.getDate().getDay() === 6;
2250
2039
  }
2040
+
2251
2041
  /**
2252
2042
  * @private
2253
2043
  * @param {fs.WriteStream} stream
2254
2044
  * @param {Event} ev
2255
2045
  * @param {boolean} il
2256
2046
  */
2257
-
2258
-
2259
2047
  function writeFullKriyahEvent(stream, ev, il) {
2260
2048
  if (ignore(ev)) {
2261
2049
  return;
2262
2050
  }
2263
-
2264
2051
  var mask = ev.getFlags();
2265
2052
  var isParsha = mask === core.flags.PARSHA_HASHAVUA;
2266
2053
  var reading = isParsha ? getLeyningForParshaHaShavua(ev, il) : getLeyningForHoliday(ev, il);
2267
-
2268
2054
  if (reading) {
2269
2055
  writeCsvLines(stream, ev, reading, il, isParsha);
2270
-
2271
2056
  if (!isParsha) {
2272
2057
  writeHolidayMincha(stream, ev, il);
2273
2058
  }
2274
2059
  }
2275
2060
  }
2061
+
2276
2062
  /**
2277
2063
  * @private
2278
2064
  * @param {fs.WriteStream} stream
2279
2065
  * @param {Event} ev
2280
2066
  * @param {boolean} il
2281
2067
  */
2282
-
2283
2068
  function writeHolidayMincha(stream, ev, il) {
2284
2069
  var desc = ev.getDesc();
2285
2070
  var minchaDesc1 = desc + ' (Mincha)';
2286
2071
  var readingMincha1 = getLeyningForHolidayKey(minchaDesc1);
2287
2072
  var readingMincha = readingMincha1 || getLeyningForHolidayKey(getLeyningKeyForEvent(ev, il) + ' (Mincha)');
2288
-
2289
2073
  if (readingMincha) {
2290
2074
  var minchaEv = new core.Event(ev.getDate(), minchaDesc1, core.flags.USER_EVENT);
2291
2075
  writeCsvLines(stream, minchaEv, readingMincha, il, false);
2292
2076
  }
2293
2077
  }
2078
+
2294
2079
  /**
2295
2080
  * Formats reading for CSV
2296
2081
  * @param {fs.WriteStream} stream
@@ -2299,76 +2084,59 @@ function writeHolidayMincha(stream, ev, il) {
2299
2084
  * @param {boolean} il
2300
2085
  * @param {boolean} isParsha
2301
2086
  */
2302
-
2303
2087
  function writeCsvLines(stream, ev, reading, il, isParsha) {
2304
2088
  var parsha = isParsha ? ev.basename() : getLeyningKeyForEvent(ev, il) || ev.render();
2305
2089
  var date = fmtDate(ev.getDate().greg());
2306
2090
  var lines = getFullKriyahLines(reading);
2307
2091
  lines.forEach(function (s) {
2308
2092
  var code = s[0].charCodeAt(0);
2309
-
2310
2093
  if (code < 48 || code > 57) {
2311
2094
  s[0] = "\"".concat(s[0], "\"");
2312
2095
  }
2313
-
2314
2096
  stream.write("".concat(date, ",\"").concat(parsha, "\",").concat(s[0], ",\"").concat(s[1], "\",").concat(s[2], "\r\n"));
2315
2097
  });
2316
2098
  stream.write('\r\n');
2317
2099
  }
2100
+
2318
2101
  /**
2319
2102
  * @private
2320
2103
  * @param {any} reading
2321
2104
  * @return {any[]}
2322
2105
  */
2323
-
2324
2106
  function getFullKriyahLines(reading) {
2325
2107
  var lines = [];
2326
-
2327
2108
  if (reading.fullkriyah) {
2328
2109
  Object.keys(reading.fullkriyah).forEach(function (num) {
2329
2110
  var a = reading.fullkriyah[num];
2330
-
2331
2111
  if (typeof a !== 'undefined') {
2332
2112
  var _reading$reason;
2333
-
2334
2113
  var k = num == 'M' ? 'maf' : num;
2335
2114
  var aliyah = formatAliyahWithBook(a);
2336
-
2337
2115
  if ((_reading$reason = reading.reason) !== null && _reading$reason !== void 0 && _reading$reason[num]) {
2338
2116
  aliyah += ' | ' + reading.reason[num];
2339
2117
  }
2340
-
2341
2118
  lines.push([k, aliyah, a.v || '']);
2342
2119
  }
2343
2120
  });
2344
2121
  }
2345
-
2346
2122
  var specialHaftara = false;
2347
-
2348
2123
  if (reading.haftara) {
2349
2124
  var _reading$reason2;
2350
-
2351
2125
  var haftara = reading.haftara.replace(/,/g, ';');
2352
-
2353
2126
  if ((_reading$reason2 = reading.reason) !== null && _reading$reason2 !== void 0 && _reading$reason2.haftara) {
2354
2127
  specialHaftara = true;
2355
2128
  haftara += ' | ' + reading.reason.haftara;
2356
2129
  }
2357
-
2358
2130
  lines.push(['Haftara', haftara, reading.haftaraNumV || '']);
2359
2131
  }
2360
-
2361
2132
  if (reading.sephardic && !specialHaftara) {
2362
2133
  var sephardic = reading.sephardic.replace(/,/g, ';');
2363
2134
  lines.push(['Haftara for Sephardim', sephardic, reading.sephardicNumV || '']);
2364
2135
  }
2365
-
2366
2136
  if (reading.triHaftara) {
2367
2137
  var _haftara = reading.triHaftara.replace(/,/g, ';');
2368
-
2369
2138
  lines.push(['Alternate Haftara', _haftara, reading.triHaftaraNumV || '']);
2370
2139
  }
2371
-
2372
2140
  return lines;
2373
2141
  }
2374
2142
 
@@ -2398,8 +2166,6 @@ exports.writeCsvLines = writeCsvLines;
2398
2166
  exports.writeFullKriyahCsv = writeFullKriyahCsv;
2399
2167
  exports.writeHolidayMincha = writeHolidayMincha;
2400
2168
 
2401
- Object.defineProperty(exports, '__esModule', { value: true });
2402
-
2403
2169
  return exports;
2404
2170
 
2405
2171
  })({}, hebcal);