@hebcal/leyning 6.2.2 → 6.2.3

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.3 */
2
2
  var hebcal__leyning = (function (exports, core) {
3
3
  'use strict';
4
4
 
@@ -95,34 +95,24 @@ var FunctionPrototype$1 = Function.prototype;
95
95
  var call$3 = FunctionPrototype$1.call;
96
96
  var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype$1.bind.bind(call$3, call$3);
97
97
 
98
- var functionUncurryThisRaw = function (fn) {
99
- return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {
98
+ var functionUncurryThis = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
99
+ return function () {
100
100
  return call$3.apply(fn, arguments);
101
101
  };
102
102
  };
103
103
 
104
- var uncurryThisRaw$1 = functionUncurryThisRaw;
104
+ var uncurryThis$8 = functionUncurryThis;
105
105
 
106
- var toString$1 = uncurryThisRaw$1({}.toString);
107
- var stringSlice = uncurryThisRaw$1(''.slice);
106
+ var toString$1 = uncurryThis$8({}.toString);
107
+ var stringSlice = uncurryThis$8(''.slice);
108
108
 
109
- var classofRaw$1 = function (it) {
109
+ var classofRaw = function (it) {
110
110
  return stringSlice(toString$1(it), 8, -1);
111
111
  };
112
112
 
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
113
  var uncurryThis$7 = functionUncurryThis;
124
114
  var fails$6 = fails$9;
125
- var classof$1 = classofRaw$1;
115
+ var classof$1 = classofRaw;
126
116
 
127
117
  var $Object$2 = Object;
128
118
  var split = uncurryThis$7(''.split);
@@ -353,10 +343,10 @@ var store$2 = sharedStore;
353
343
  (shared$3.exports = function (key, value) {
354
344
  return store$2[key] || (store$2[key] = value !== undefined ? value : {});
355
345
  })('versions', []).push({
356
- version: '3.25.5',
346
+ version: '3.26.1',
357
347
  mode: 'global',
358
348
  copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
359
- license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',
349
+ license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',
360
350
  source: 'https://github.com/zloirock/core-js'
361
351
  });
362
352
 
@@ -1081,7 +1071,7 @@ var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
1081
1071
  });
1082
1072
  };
1083
1073
 
1084
- var classof = classofRaw$1;
1074
+ var classof = classofRaw;
1085
1075
  var global$1 = global$b;
1086
1076
 
1087
1077
  var engineIsNode = classof(global$1.process) == 'process';
@@ -1113,23 +1103,21 @@ 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
1113
1103
  * @readonly
1114
1104
  * @const {string[]}
1115
1105
  */
1116
-
1117
1106
  var BOOK = ['', 'Genesis', 'Exodus', 'Leviticus', 'Numbers', 'Deuteronomy'];
1107
+
1118
1108
  /**
1119
1109
  * Formats parsha as a string
1120
1110
  * @param {string[]} parsha
1121
1111
  * @return {string}
1122
1112
  */
1123
-
1124
1113
  function parshaToString(parsha) {
1125
1114
  var s = parsha[0];
1126
-
1127
1115
  if (parsha.length == 2) {
1128
1116
  s += '-' + parsha[1];
1129
1117
  }
1130
-
1131
1118
  return s;
1132
1119
  }
1120
+
1133
1121
  /**
1134
1122
  * Represents an aliyah
1135
1123
  * @typedef {Object} Aliyah
@@ -1145,10 +1133,10 @@ function parshaToString(parsha) {
1145
1133
  * @param {any} src
1146
1134
  * @return {any}
1147
1135
  */
1148
-
1149
1136
  function clone(src) {
1150
1137
  return JSON.parse(JSON.stringify(src));
1151
1138
  }
1139
+
1152
1140
  /**
1153
1141
  * Calculates the number of verses in an aliyah or haftara based on
1154
1142
  * the `b` (begin verse), `e` (end verse) and `k` (book).
@@ -1156,100 +1144,87 @@ function clone(src) {
1156
1144
  * @param {Aliyah} aliyah
1157
1145
  * @return {number}
1158
1146
  */
1159
-
1160
1147
  function calculateNumVerses(aliyah) {
1161
1148
  if (aliyah.v) {
1162
1149
  return aliyah.v;
1163
1150
  }
1164
-
1165
1151
  var chapVerseBegin = aliyah.b.split(':');
1166
1152
  var chapVerseEnd = aliyah.e.split(':');
1167
1153
  var c1 = parseInt(chapVerseBegin[0], 10);
1168
1154
  var c2 = parseInt(chapVerseEnd[0], 10);
1169
1155
  var v1 = parseInt(chapVerseBegin[1], 10);
1170
1156
  var v2 = parseInt(chapVerseEnd[1], 10);
1171
-
1172
1157
  if (c1 === c2) {
1173
1158
  aliyah.v = v2 - v1 + 1;
1174
1159
  } else if (typeof aliyah.k === 'string') {
1175
1160
  var numv = numverses[aliyah.k];
1176
-
1177
1161
  if (_typeof(numv) !== 'object' || !numv.length) {
1178
1162
  throw new ReferenceError("Can't find numverses for ".concat(aliyah.k));
1179
1163
  }
1180
-
1181
1164
  var total = numv[c1] - v1 + 1;
1182
-
1183
1165
  for (var chap = c1 + 1; chap < c2; chap++) {
1184
1166
  total += numv[chap];
1185
1167
  }
1186
-
1187
1168
  total += v2;
1188
1169
  aliyah.v = total;
1189
1170
  }
1190
-
1191
1171
  return aliyah.v;
1192
1172
  }
1173
+
1193
1174
  /**
1194
1175
  * Formats an aliyah object like "Numbers 28:9-28:15"
1195
1176
  * @param {Aliyah} a aliyah
1196
1177
  * @return {string}
1197
1178
  */
1198
-
1199
1179
  function formatAliyahWithBook(a) {
1200
1180
  return "".concat(a.k, " ").concat(a.b, "-").concat(a.e);
1201
1181
  }
1182
+
1202
1183
  /**
1203
1184
  * Formats an aliyah object like "Numbers 28:9-15"
1204
1185
  * @param {Aliyah} aliyah
1205
1186
  * @param {boolean} showBook
1206
1187
  * @return {string}
1207
1188
  */
1208
-
1209
1189
  function formatAliyahShort(aliyah, showBook) {
1210
1190
  var begin = aliyah.b;
1211
1191
  var end0 = aliyah.e;
1212
1192
  var prefix = showBook ? aliyah.k + ' ' : '';
1213
-
1214
1193
  if (begin === end0) {
1215
1194
  return "".concat(prefix).concat(begin);
1216
1195
  }
1217
-
1218
1196
  var cv1 = begin.split(':');
1219
1197
  var cv2 = end0.split(':');
1220
1198
  var end = cv1[0] === cv2[0] ? cv2[1] : end0;
1221
1199
  return "".concat(prefix).concat(begin, "-").concat(end);
1222
1200
  }
1201
+
1223
1202
  /**
1224
1203
  * Returns the total number of verses in an array of Aliyah (or haftarah) objects
1225
1204
  * @param {Aliyah|Aliyah[]} aliyot
1226
1205
  * @return {number}
1227
1206
  */
1228
-
1229
1207
  function sumVerses(aliyot) {
1230
1208
  return Array.isArray(aliyot) ? aliyot.reduce(function (prev, cur) {
1231
1209
  return prev + cur.v;
1232
1210
  }, 0) : aliyot.v;
1233
1211
  }
1212
+
1234
1213
  /**
1235
1214
  * @private
1236
1215
  * @param {Aliyah|Aliyah[]} haft
1237
1216
  * @return {Aliyah|Aliyah[]}
1238
1217
  */
1239
-
1240
1218
  function cloneHaftara(haft) {
1241
1219
  if (!haft) {
1242
1220
  return haft;
1243
1221
  }
1244
-
1245
1222
  var dest = clone(haft);
1246
-
1247
1223
  if (Array.isArray(dest)) {
1248
1224
  dest.map(calculateNumVerses);
1249
1225
  } else {
1250
1226
  calculateNumVerses(dest);
1251
1227
  }
1252
-
1253
1228
  return dest;
1254
1229
  }
1255
1230
 
@@ -1259,7 +1234,6 @@ function cloneHaftara(haft) {
1259
1234
  * @param {string} b
1260
1235
  * @return {boolean}
1261
1236
  */
1262
-
1263
1237
  function isChapVerseBefore(a, b) {
1264
1238
  var cv1 = a.split(':').map(function (x) {
1265
1239
  return +x;
@@ -1269,14 +1243,13 @@ function isChapVerseBefore(a, b) {
1269
1243
  });
1270
1244
  return cv1[0] * 100 + cv1[1] < cv2[0] * 100 + cv2[1];
1271
1245
  }
1246
+
1272
1247
  /**
1273
1248
  * Summarizes an `AliyotMap` by collapsing all adjacent aliyot.
1274
1249
  * Finds any non-overlapping parts (e.g. special 7th aliyah or maftir)
1275
1250
  * @param {Object<string,Aliyah>} aliyot
1276
1251
  * @return {Aliyah[]}
1277
1252
  */
1278
-
1279
-
1280
1253
  function makeLeyningParts(aliyot) {
1281
1254
  var nums = Object.keys(aliyot).filter(function (x) {
1282
1255
  return x.length === 1;
@@ -1284,20 +1257,16 @@ function makeLeyningParts(aliyot) {
1284
1257
  var start = aliyot[nums[0]];
1285
1258
  var end = start;
1286
1259
  var parts = [];
1287
-
1288
1260
  for (var i = 0; i < nums.length; i++) {
1289
1261
  var num = nums[i];
1290
1262
  var aliyah = aliyot[num];
1291
-
1292
1263
  if (i === nums.length - 1 && aliyah.k === end.k && aliyah.e === end.e) {
1293
1264
  // short-circuit when final aliyah is within the previous (e.g. M inside of 7)
1294
1265
  continue;
1295
1266
  }
1296
-
1297
1267
  var prevEndChap = +end.e.split(':')[0];
1298
1268
  var curStartChap = +aliyah.b.split(':')[0];
1299
1269
  var sameOrNextChap = curStartChap === prevEndChap || curStartChap === prevEndChap + 1;
1300
-
1301
1270
  if (i !== 0 && (aliyah.k !== start.k || isChapVerseBefore(aliyah.b, start.e) || !sameOrNextChap)) {
1302
1271
  parts.push({
1303
1272
  k: start.k,
@@ -1306,10 +1275,8 @@ function makeLeyningParts(aliyot) {
1306
1275
  });
1307
1276
  start = aliyah;
1308
1277
  }
1309
-
1310
1278
  end = aliyah;
1311
1279
  }
1312
-
1313
1280
  parts.push({
1314
1281
  k: start.k,
1315
1282
  b: start.b,
@@ -1317,6 +1284,7 @@ function makeLeyningParts(aliyot) {
1317
1284
  });
1318
1285
  return parts;
1319
1286
  }
1287
+
1320
1288
  /**
1321
1289
  * Returns a string representation of the leyning parts.
1322
1290
  * Separate verse ranges read from the same book are separated
@@ -1326,36 +1294,30 @@ function makeLeyningParts(aliyot) {
1326
1294
  * @param {Aliyah|Aliyah[]} parts
1327
1295
  * @return {string}
1328
1296
  */
1329
-
1330
1297
  function makeSummaryFromParts(parts) {
1331
1298
  if (!Array.isArray(parts)) {
1332
1299
  parts = [parts];
1333
1300
  }
1334
-
1335
1301
  var prev = parts[0];
1336
1302
  var summary = formatAliyahShort(prev, true);
1337
-
1338
1303
  for (var i = 1; i < parts.length; i++) {
1339
1304
  var part = parts[i];
1340
-
1341
1305
  if (part.k === prev.k) {
1342
1306
  summary += ', ';
1343
1307
  } else {
1344
1308
  summary += "; ".concat(part.k, " ");
1345
1309
  }
1346
-
1347
1310
  summary += formatAliyahShort(part, false);
1348
1311
  prev = part;
1349
1312
  }
1350
-
1351
1313
  return summary;
1352
1314
  }
1315
+
1353
1316
  /**
1354
1317
  * Makes a summary of the leyning, like "Genesis 6:9-11:32"
1355
1318
  * @param {Object<string,Aliyah>} aliyot
1356
1319
  * @return {string}
1357
1320
  */
1358
-
1359
1321
  function makeLeyningSummary(aliyot) {
1360
1322
  var parts = makeLeyningParts(aliyot);
1361
1323
  return makeSummaryFromParts(parts);
@@ -1426,35 +1388,28 @@ var Purim={fullkriyah:{"1":{p:16,k:2,b:"17:8",e:"17:10"},"2":{p:16,k:2,b:"17:11"
1426
1388
  * @param {string} holiday
1427
1389
  * @return {boolean}
1428
1390
  */
1429
-
1430
1391
  function hasFestival(holiday) {
1431
1392
  return _typeof(festivals[holiday]) === 'object';
1432
1393
  }
1394
+
1433
1395
  /**
1434
1396
  * Returns the raw metadata for festival reading for `holiday`
1435
1397
  * @param {string} holiday
1436
1398
  * @return {any}
1437
1399
  */
1438
-
1439
1400
  function lookupFestival(holiday) {
1440
1401
  var src = festivals[holiday];
1441
-
1442
1402
  if (typeof src === 'undefined') {
1443
1403
  return undefined;
1444
1404
  }
1445
-
1446
1405
  if (src.alias) {
1447
1406
  var tmp = festivals[src.key];
1448
-
1449
1407
  if (typeof tmp === 'undefined') {
1450
1408
  throw new Error("Leyning alias ".concat(holiday, " => ").concat(src.key, " not found"));
1451
1409
  }
1452
-
1453
1410
  src = tmp;
1454
1411
  }
1455
-
1456
1412
  var result = src.fullkriyah ? clone(src) : src;
1457
-
1458
1413
  if (result.fullkriyah) {
1459
1414
  Object.values(result.fullkriyah).forEach(function (aliyah) {
1460
1415
  if (typeof aliyah.k === 'number') {
@@ -1462,33 +1417,28 @@ function lookupFestival(holiday) {
1462
1417
  }
1463
1418
  });
1464
1419
  }
1465
-
1466
1420
  return result;
1467
1421
  }
1468
1422
 
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;
1423
+ 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;
1424
+
1470
1425
  /**
1471
1426
  * Based on the event date, type and title, finds the relevant leyning key
1472
1427
  * @param {Event} ev event
1473
1428
  * @param {boolean} [il] true if Israel holiday scheme
1474
1429
  * @return {string} key to look up in holiday-reading.json
1475
1430
  */
1476
-
1477
1431
  function getLeyningKeyForEvent(ev) {
1478
1432
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1479
1433
  var mask = ev.getFlags();
1480
-
1481
1434
  if (mask & HOLIDAY_IGNORE_MASK) {
1482
1435
  return undefined;
1483
- } // Skip all Erevs except for Simchat Torah
1484
-
1485
-
1436
+ }
1437
+ // Skip all Erevs except for Simchat Torah
1486
1438
  var desc = ev.getDesc();
1487
-
1488
1439
  if (mask & core.flags.EREV && desc !== 'Erev Simchat Torah') {
1489
1440
  return undefined;
1490
1441
  }
1491
-
1492
1442
  var hd = ev.getDate();
1493
1443
  var day = hd.getDate();
1494
1444
  var dow = hd.abs() % 7;
@@ -1497,15 +1447,12 @@ function getLeyningKeyForEvent(ev) {
1497
1447
  var isRoshChodesh = day == 1 || day == 30;
1498
1448
  var holiday = ev.basename();
1499
1449
  var isPesach = holiday === 'Pesach';
1500
-
1501
1450
  if (il && isPesach) {
1502
1451
  if (isShabbat) {
1503
1452
  return day === 15 || day === 21 ? desc + ' (on Shabbat)' : 'Pesach Shabbat Chol ha-Moed';
1504
1453
  }
1505
-
1506
1454
  return desc;
1507
1455
  }
1508
-
1509
1456
  if (day == 1 && month === core.months.TISHREI) {
1510
1457
  return isShabbat ? 'Rosh Hashana I (on Shabbat)' : 'Rosh Hashana I';
1511
1458
  } else if (ev.cholHaMoedDay) {
@@ -1514,12 +1461,10 @@ function getLeyningKeyForEvent(ev) {
1514
1461
  return holiday + ' Shabbat Chol ha-Moed';
1515
1462
  } else if (desc == 'Sukkot VII (Hoshana Raba)') {
1516
1463
  return 'Sukkot Final Day (Hoshana Raba)';
1517
- } // If Shabbat falls on the third day of Chol ha-Moed Pesach,
1464
+ }
1465
+ // If Shabbat falls on the third day of Chol ha-Moed Pesach,
1518
1466
  // the readings for the third, fourth, and fifth days are moved ahead
1519
-
1520
-
1521
1467
  var cholHaMoedDay = ev.cholHaMoedDay;
1522
-
1523
1468
  if (isPesach && cholHaMoedDay >= 3) {
1524
1469
  if (dow == 0 && cholHaMoedDay == 4) {
1525
1470
  cholHaMoedDay = 3;
@@ -1527,7 +1472,6 @@ function getLeyningKeyForEvent(ev) {
1527
1472
  cholHaMoedDay = 4;
1528
1473
  }
1529
1474
  }
1530
-
1531
1475
  return "".concat(holiday, " Chol ha-Moed Day ").concat(cholHaMoedDay);
1532
1476
  } else if (ev.chanukahDay) {
1533
1477
  if (isShabbat && isRoshChodesh) {
@@ -1540,54 +1484,42 @@ function getLeyningKeyForEvent(ev) {
1540
1484
  return "Chanukah Day ".concat(ev.chanukahDay);
1541
1485
  }
1542
1486
  }
1543
-
1544
1487
  if (isRoshChodesh && (desc == 'Shabbat HaChodesh' || desc == 'Shabbat Shekalim')) {
1545
1488
  return desc + ' (on Rosh Chodesh)';
1546
1489
  }
1547
-
1548
1490
  if (desc == 'Shavuot') {
1549
1491
  return 'Shavuot I';
1550
1492
  } else if (il && desc == 'Shmini Atzeret') {
1551
1493
  return 'Simchat Torah';
1552
1494
  }
1553
-
1554
1495
  if (isShabbat && 'Shabbat' != desc.substring(0, 7)) {
1555
1496
  if (isRoshChodesh) {
1556
1497
  if (desc === 'Rosh Chodesh Tevet') {
1557
1498
  return 'Shabbat Rosh Chodesh Chanukah';
1558
1499
  }
1559
-
1560
1500
  return 'Shabbat Rosh Chodesh';
1561
1501
  }
1562
-
1563
1502
  var desc2 = desc + ' (on Shabbat)';
1564
-
1565
1503
  if (hasFestival(desc2)) {
1566
1504
  return desc2;
1567
1505
  }
1568
1506
  }
1569
-
1570
1507
  if (hasFestival(desc)) {
1571
1508
  return desc;
1572
1509
  }
1573
-
1574
1510
  if (isShabbat) {
1575
1511
  var tommorow = hd.next().getDate();
1576
-
1577
1512
  if (tommorow === 30 || tommorow === 1) {
1578
1513
  return 'Shabbat Machar Chodesh';
1579
1514
  }
1580
1515
  }
1581
-
1582
1516
  if (desc === 'Rosh Hashana LaBehemot') {
1583
1517
  return undefined;
1584
1518
  }
1585
-
1586
1519
  if (desc === 'Rosh Chodesh Tevet') {
1587
1520
  if (isShabbat) {
1588
1521
  return 'Shabbat Rosh Chodesh Chanukah';
1589
1522
  }
1590
-
1591
1523
  if (day === 30 || core.HDate.shortKislev(hd.getFullYear())) {
1592
1524
  return 'Chanukah Day 6'; // 30th of Kislev or 1st of Tevet
1593
1525
  } else {
@@ -1598,11 +1530,9 @@ function getLeyningKeyForEvent(ev) {
1598
1530
  if (isRoshChodesh) {
1599
1531
  return desc;
1600
1532
  }
1601
-
1602
1533
  if (desc === 'Tish\'a B\'Av (observed)') {
1603
1534
  return 'Tish\'a B\'Av';
1604
1535
  }
1605
-
1606
1536
  return undefined;
1607
1537
  }
1608
1538
 
@@ -1610,45 +1540,40 @@ function getLeyningKeyForEvent(ev) {
1610
1540
  * @private
1611
1541
  * @param {Object<string,Aliyah>} aliyot
1612
1542
  */
1613
-
1614
1543
  function aliyotCombine67(aliyot) {
1615
1544
  var a6 = clone(aliyot['6']);
1616
1545
  var a7 = aliyot['7'];
1617
-
1618
1546
  if (a6.k !== a7.k) {
1619
1547
  throw new Error('Impossible to combine aliyot 6 & 7: ' + JSON.stringify(aliyot));
1620
1548
  }
1621
-
1622
1549
  delete aliyot['7'];
1623
1550
  aliyot['6'] = {
1624
1551
  k: a6.k,
1625
1552
  b: a6.b,
1626
1553
  e: a7.e
1627
1554
  };
1628
-
1629
1555
  if (a6.v && a7.v) {
1630
1556
  aliyot['6'].v = a6.v + a7.v;
1631
1557
  }
1632
1558
  }
1559
+
1633
1560
  /**
1634
1561
  * @private
1635
1562
  * @param {Object<string,Aliyah>} aliyot
1636
1563
  * @param {Object<string,Aliyah>} special
1637
1564
  */
1638
-
1639
-
1640
1565
  function mergeAliyotWithSpecial(aliyot, special) {
1641
1566
  if (special['7']) {
1642
1567
  aliyotCombine67(aliyot);
1643
1568
  aliyot['7'] = clone(special['7']);
1644
1569
  calculateNumVerses(aliyot['7']);
1645
1570
  }
1646
-
1647
1571
  if (special['M']) {
1648
1572
  aliyot['M'] = clone(special['M']);
1649
1573
  calculateNumVerses(aliyot['M']);
1650
1574
  }
1651
1575
  }
1576
+
1652
1577
  /**
1653
1578
  * Determines if the regular parashat haShavua coincides with an event that requires
1654
1579
  * a special maftir or Haftara (for example Shabbat HaGadol, Shabbat Chanukah, Rosh
@@ -1667,33 +1592,28 @@ function mergeAliyotWithSpecial(aliyot, special) {
1667
1592
  * @param {boolean} [wantSeph]
1668
1593
  * @return {Aliyah | Aliyah[]}
1669
1594
  */
1670
-
1671
-
1672
1595
  function specialReadings(hd, il, aliyot, reason, parsha) {
1673
1596
  var wantSeph = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
1674
1597
  var haft;
1675
1598
  var seph;
1676
1599
  var specialHaft = false;
1677
- var parshaName = parsha ? parshaToString(parsha) : null; // eslint-disable-next-line require-jsdoc
1600
+ var parshaName = parsha ? parshaToString(parsha) : null;
1678
1601
 
1602
+ // eslint-disable-next-line require-jsdoc
1679
1603
  function handleSpecial(key) {
1680
1604
  var special = lookupFestival(key);
1681
-
1682
1605
  if (!special) {
1683
1606
  return;
1684
1607
  }
1685
-
1686
1608
  if (special.haft && !specialHaft) {
1687
1609
  haft = cloneHaftara(special.haft);
1688
1610
  reason.haftara = key;
1689
1611
  specialHaft = true;
1690
-
1691
1612
  if (special.seph) {
1692
1613
  seph = cloneHaftara(special.seph);
1693
1614
  reason.sephardic = key;
1694
1615
  }
1695
1616
  }
1696
-
1697
1617
  if (special.fullkriyah) {
1698
1618
  mergeAliyotWithSpecial(aliyot, special.fullkriyah);
1699
1619
  Object.keys(special.fullkriyah).map(function (k) {
@@ -1701,7 +1621,6 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1701
1621
  });
1702
1622
  }
1703
1623
  }
1704
-
1705
1624
  var events0 = core.HebrewCalendar.getHolidaysOnDate(hd, il) || [];
1706
1625
  var events = events0.filter(function (ev) {
1707
1626
  return !(ev.getFlags() & core.flags.ROSH_CHODESH);
@@ -1711,16 +1630,13 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1711
1630
  handleSpecial("Shabbat Shuva (with ".concat(parshaName, ")"));
1712
1631
  } else {
1713
1632
  var key = getLeyningKeyForEvent(ev, il);
1714
-
1715
1633
  if (key) {
1716
1634
  handleSpecial(key);
1717
1635
  }
1718
1636
  }
1719
1637
  });
1720
-
1721
1638
  if (!haft) {
1722
1639
  var day = hd.getDate();
1723
-
1724
1640
  if (parshaName === 'Pinchas' && day > 17) {
1725
1641
  // Pinchas is always read in Tamuz (never another month)
1726
1642
  // either on the 14, 16, 17 (in Israel), 19, 21, 23, 24
@@ -1730,13 +1646,11 @@ function specialReadings(hd, il, aliyot, reason, parsha) {
1730
1646
  handleSpecial(key);
1731
1647
  } else {
1732
1648
  var tommorow = hd.next().getDate();
1733
-
1734
1649
  if (tommorow === 30 || tommorow === 1) {
1735
1650
  handleSpecial('Shabbat Machar Chodesh');
1736
1651
  }
1737
1652
  }
1738
1653
  }
1739
-
1740
1654
  if (wantSeph && haft) {
1741
1655
  return {
1742
1656
  haft: haft,
@@ -1795,10 +1709,8 @@ var Bereshit={num:1,hebrew:"בְּרֵאשִׁית",book:1,haft:{k:"Isaiah",b:"4
1795
1709
  * @param {boolean} [il] true if Israel holiday scheme
1796
1710
  * @return {Leyning} map of aliyot
1797
1711
  */
1798
-
1799
1712
  function getLeyningForHoliday(ev) {
1800
1713
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1801
-
1802
1714
  if (_typeof(ev) !== 'object' || !(ev instanceof core.Event)) {
1803
1715
  throw new TypeError("Bad event argument: ".concat(ev));
1804
1716
  } else if (ev.getFlags() & core.flags.PARSHA_HASHAVUA) {
@@ -1806,11 +1718,11 @@ function getLeyningForHoliday(ev) {
1806
1718
  } else if (ev.getFlags() & HOLIDAY_IGNORE_MASK) {
1807
1719
  return undefined;
1808
1720
  }
1809
-
1810
1721
  var key = getLeyningKeyForEvent(ev, il);
1811
1722
  var leyning = getLeyningForHolidayKey(key, ev.cholHaMoedDay);
1812
1723
  return leyning;
1813
1724
  }
1725
+
1814
1726
  /**
1815
1727
  * Looks up leyning for a given holiday key. Key should be an
1816
1728
  * (untranslated) string used in holiday-readings.json. Returns some
@@ -1819,64 +1731,52 @@ function getLeyningForHoliday(ev) {
1819
1731
  * @param {number} [cholHaMoedDay]
1820
1732
  * @return {Leyning} map of aliyot
1821
1733
  */
1822
-
1823
1734
  function getLeyningForHolidayKey(key, cholHaMoedDay) {
1824
1735
  if (typeof key !== 'string') {
1825
1736
  return undefined;
1826
1737
  }
1827
-
1828
1738
  var src = lookupFestival(key);
1829
-
1830
1739
  if (typeof src === 'undefined') {
1831
1740
  return undefined;
1832
1741
  }
1833
-
1834
1742
  var leyning = {
1835
1743
  name: {
1836
1744
  en: key,
1837
1745
  he: core.Locale.lookupTranslation(key, 'he')
1838
1746
  }
1839
1747
  };
1840
-
1841
1748
  if (src.fullkriyah) {
1842
1749
  leyning.fullkriyah = clone(src.fullkriyah);
1843
-
1844
1750
  if (key === 'Sukkot Shabbat Chol ha-Moed' && cholHaMoedDay) {
1845
1751
  leyning.fullkriyah['M'] = leyning.fullkriyah["M-day".concat(cholHaMoedDay)];
1846
-
1847
1752
  for (var day = 1; day <= 5; day++) {
1848
1753
  delete leyning.fullkriyah["M-day".concat(day)];
1849
1754
  }
1850
1755
  }
1851
-
1852
1756
  if (_typeof(leyning.fullkriyah['1']) === 'object') {
1853
1757
  var parts = makeLeyningParts(leyning.fullkriyah);
1854
1758
  leyning.summary = makeSummaryFromParts(parts);
1855
-
1856
1759
  if (parts.length > 1) {
1857
1760
  leyning.summaryParts = parts;
1858
1761
  }
1859
1762
  }
1860
-
1861
1763
  Object.values(leyning.fullkriyah).map(function (aliyah) {
1862
1764
  return calculateNumVerses(aliyah);
1863
1765
  });
1864
1766
  }
1865
-
1866
1767
  if (src.haft) {
1867
1768
  var haft = leyning.haft = cloneHaftara(src.haft);
1868
1769
  leyning.haftara = makeSummaryFromParts(haft);
1869
1770
  leyning.haftaraNumV = sumVerses(haft);
1870
1771
  }
1871
-
1872
1772
  if (src.seph) {
1873
1773
  var seph = leyning.seph = cloneHaftara(src.seph);
1874
1774
  leyning.sephardic = makeSummaryFromParts(seph);
1875
1775
  leyning.sephardicNumV = sumVerses(seph);
1876
1776
  }
1877
-
1878
1777
  return leyning;
1879
1778
  }
1779
+
1880
1780
  /**
1881
1781
  * on doubled parshiot, read only the second Haftarah
1882
1782
  * except for Nitzavim-Vayelech
@@ -1884,7 +1784,6 @@ function getLeyningForHolidayKey(key, cholHaMoedDay) {
1884
1784
  * @param {string[]} parsha
1885
1785
  * @return {string}
1886
1786
  */
1887
-
1888
1787
  function getHaftaraKey(parsha) {
1889
1788
  if (parsha.length == 1 || parsha[0] == 'Nitzavim') {
1890
1789
  return parsha[0];
@@ -1892,20 +1791,17 @@ function getHaftaraKey(parsha) {
1892
1791
  return parsha[1];
1893
1792
  }
1894
1793
  }
1794
+
1895
1795
  /**
1896
1796
  * Looks up regular leyning for a weekly parsha with no special readings
1897
1797
  * @param {string|string[]} parsha untranslated name like 'Pinchas' or ['Pinchas'] or ['Matot','Masei']
1898
1798
  * @return {Leyning} map of aliyot
1899
1799
  */
1900
-
1901
-
1902
1800
  function getLeyningForParsha(parsha) {
1903
1801
  var isParshaString = typeof parsha === 'string';
1904
-
1905
1802
  if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
1906
1803
  throw new TypeError("Bad parsha argument: ".concat(parsha));
1907
1804
  }
1908
-
1909
1805
  var name = isParshaString ? parsha : parshaToString(parsha);
1910
1806
  var raw = parshiyotObj[name];
1911
1807
  var fullkriyah = {};
@@ -1926,7 +1822,6 @@ function getLeyningForParsha(parsha) {
1926
1822
  var parts = makeLeyningParts(fullkriyah);
1927
1823
  var summary = makeSummaryFromParts(parts);
1928
1824
  /** @type {Leyning} */
1929
-
1930
1825
  var result = {
1931
1826
  name: {
1932
1827
  en: name,
@@ -1939,28 +1834,22 @@ function getLeyningForParsha(parsha) {
1939
1834
  summary: summary,
1940
1835
  fullkriyah: fullkriyah
1941
1836
  };
1942
-
1943
1837
  if (parts.length > 1) {
1944
1838
  result.summaryParts = parts;
1945
1839
  }
1946
-
1947
1840
  var hkey = getHaftaraKey(parshaNameArray);
1948
1841
  var haft0 = parshiyotObj[hkey].haft;
1949
-
1950
1842
  if (haft0) {
1951
1843
  var haft = result.haft = cloneHaftara(haft0);
1952
1844
  result.haftara = makeSummaryFromParts(haft);
1953
1845
  result.haftaraNumV = sumVerses(haft);
1954
1846
  }
1955
-
1956
1847
  if (raw.seph) {
1957
1848
  var seph = result.seph = cloneHaftara(raw.seph);
1958
1849
  result.sephardic = makeSummaryFromParts(seph);
1959
1850
  result.sephardicNumV = sumVerses(seph);
1960
1851
  }
1961
-
1962
1852
  var weekdaySrc = raw.weekday || parshiyotObj[parshaNameArray[0]].weekday;
1963
-
1964
1853
  if (weekdaySrc) {
1965
1854
  var weekday = result.weekday = {};
1966
1855
  ['1', '2', '3'].forEach(function (num) {
@@ -1974,9 +1863,9 @@ function getLeyningForParsha(parsha) {
1974
1863
  weekday[num] = aliyah;
1975
1864
  });
1976
1865
  }
1977
-
1978
1866
  return result;
1979
1867
  }
1868
+
1980
1869
  /**
1981
1870
  * Looks up leyning for a regular Shabbat parsha, including any special
1982
1871
  * maftir or Haftara.
@@ -1984,44 +1873,36 @@ function getLeyningForParsha(parsha) {
1984
1873
  * @param {boolean} [il] in Israel
1985
1874
  * @return {Leyning} map of aliyot
1986
1875
  */
1987
-
1988
1876
  function getLeyningForParshaHaShavua(ev) {
1989
1877
  var il = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1990
-
1991
1878
  if (!ev instanceof core.Event) {
1992
1879
  throw new TypeError("Bad event argument: ".concat(ev));
1993
1880
  } else if (ev.getFlags() != core.flags.PARSHA_HASHAVUA) {
1994
1881
  throw new TypeError("Event must be parsha hashavua: ".concat(ev.getDesc()));
1995
- } // first, collect the default aliyot and haftara
1996
-
1997
-
1882
+ }
1883
+ // first, collect the default aliyot and haftara
1998
1884
  var parsha = ev.parsha;
1999
1885
  var result = getLeyningForParsha(parsha);
2000
1886
  var reason = {};
2001
- var hd = ev.getDate(); // Now, check for special maftir or haftara on same date
2002
-
1887
+ var hd = ev.getDate();
1888
+ // Now, check for special maftir or haftara on same date
2003
1889
  var specialHaftara = specialReadings(hd, il, result.fullkriyah, reason, parsha, true);
2004
-
2005
1890
  if (specialHaftara) {
2006
1891
  var haft = result.haft = cloneHaftara(specialHaftara.haft);
2007
1892
  result.haftara = makeSummaryFromParts(haft);
2008
1893
  result.haftaraNumV = sumVerses(haft);
2009
-
2010
1894
  if (specialHaftara.seph) {
2011
1895
  var seph = result.seph = cloneHaftara(specialHaftara.seph);
2012
1896
  result.sephardic = makeSummaryFromParts(seph);
2013
1897
  result.sephardicNumV = sumVerses(seph);
2014
1898
  }
2015
1899
  }
2016
-
2017
1900
  if (reason['7'] || reason['M']) {
2018
1901
  var parts = makeLeyningParts(result.fullkriyah);
2019
1902
  result.summary = makeSummaryFromParts(parts);
2020
1903
  result.summaryParts = parts;
2021
1904
  }
2022
-
2023
1905
  var reasons = Object.keys(reason);
2024
-
2025
1906
  if (reasons.length !== 0) {
2026
1907
  result.reason = reason;
2027
1908
  reasons.forEach(function (num) {
@@ -2033,18 +1914,17 @@ function getLeyningForParshaHaShavua(ev) {
2033
1914
  });
2034
1915
  } else {
2035
1916
  var aliyah = result.fullkriyah[num];
2036
-
2037
1917
  if (_typeof(aliyah) === 'object') {
2038
1918
  aliyah.reason = reason[num];
2039
1919
  }
2040
1920
  }
2041
1921
  });
2042
- } // to avoid confusion, don't include Saturday mincha reading here
2043
-
2044
-
1922
+ }
1923
+ // to avoid confusion, don't include Saturday mincha reading here
2045
1924
  delete result.weekday;
2046
1925
  return result;
2047
1926
  }
1927
+
2048
1928
  /**
2049
1929
  * Looks up leyning for a regular Shabbat, Monday/Thursday weekday or holiday.
2050
1930
  *
@@ -2062,34 +1942,26 @@ function getLeyningForParshaHaShavua(ev) {
2062
1942
  * @param {boolean} il in Israel
2063
1943
  * @return {Leyning} map of aliyot
2064
1944
  */
2065
-
2066
1945
  function getLeyningOnDate(hdate, il) {
2067
1946
  var dow = hdate.getDay();
2068
1947
  var hyear = hdate.getFullYear();
2069
1948
  var sedra = core.HebrewCalendar.getSedra(hyear, il);
2070
1949
  var parsha = sedra.lookup(hdate);
2071
-
2072
1950
  if (dow === 6 && !parsha.chag) {
2073
1951
  var parshaEvent = new core.ParshaEvent(hdate, parsha.parsha, il);
2074
1952
  return getLeyningForParshaHaShavua(parshaEvent, il);
2075
1953
  }
2076
-
2077
1954
  var events = core.HebrewCalendar.getHolidaysOnDate(hdate, il) || [];
2078
-
2079
1955
  for (var i = 0; i < events.length; i++) {
2080
1956
  var reading = getLeyningForHoliday(events[i], il);
2081
-
2082
1957
  if (reading) {
2083
1958
  return reading;
2084
1959
  }
2085
1960
  }
2086
-
2087
1961
  if (dow === 1 || dow === 4) {
2088
1962
  var saturday = hdate.onOrAfter(6);
2089
1963
  var parsha2 = findParshaHaShavua(saturday);
2090
-
2091
1964
  var _reading = getLeyningForParsha(parsha2.parsha);
2092
-
2093
1965
  var result = {
2094
1966
  name: _reading.name,
2095
1967
  parsha: _reading.parsha,
@@ -2097,44 +1969,38 @@ function getLeyningOnDate(hdate, il) {
2097
1969
  weekday: _reading.weekday
2098
1970
  };
2099
1971
  return result;
2100
- } // no reading today: it's not Shabbat, Mon/Thu, or a Torah-reading holiday
2101
-
2102
-
1972
+ }
1973
+ // no reading today: it's not Shabbat, Mon/Thu, or a Torah-reading holiday
2103
1974
  return undefined;
2104
1975
  }
1976
+
2105
1977
  /**
2106
1978
  * @private
2107
1979
  * @param {HDate} saturday
2108
1980
  * @param {boolean} il
2109
1981
  * @return {Leyning}
2110
1982
  */
2111
-
2112
1983
  function findParshaHaShavua(saturday, il) {
2113
1984
  var hyear = saturday.getFullYear();
2114
1985
  var sedra = core.HebrewCalendar.getSedra(hyear, il);
2115
1986
  var parsha = sedra.lookup(saturday);
2116
-
2117
1987
  if (!parsha.chag) {
2118
1988
  return parsha;
2119
- } // Search for next regular parsha, which could even spill into next year
2120
-
2121
-
1989
+ }
1990
+ // Search for next regular parsha, which could even spill into next year
2122
1991
  var endOfYear = new core.HDate(1, core.months.TISHREI, hyear + 1).abs() - 1;
2123
1992
  var endAbs = endOfYear + 30;
2124
-
2125
1993
  for (var sat2 = saturday.abs() + 7; sat2 <= endAbs; sat2 += 7) {
2126
1994
  var sedra2 = sat2 > endOfYear ? core.HebrewCalendar.getSedra(hyear + 1, il) : sedra;
2127
1995
  var parsha2 = sedra2.lookup(sat2);
2128
-
2129
1996
  if (!parsha2.chag) {
2130
1997
  return parsha2;
2131
1998
  }
2132
1999
  }
2133
2000
  /* NOTREACHED */
2134
-
2135
-
2136
2001
  return null;
2137
2002
  }
2003
+
2138
2004
  /**
2139
2005
  * Parsha metadata
2140
2006
  * @typedef {Object} ParshaMeta
@@ -2153,22 +2019,16 @@ function findParshaHaShavua(saturday, il) {
2153
2019
  * @param {string|string[]} parsha
2154
2020
  * @return {ParshaMeta}
2155
2021
  */
2156
-
2157
-
2158
2022
  function lookupParsha(parsha) {
2159
2023
  var isParshaString = typeof parsha === 'string';
2160
-
2161
2024
  if (!isParshaString && (!Array.isArray(parsha) || parsha.length !== 1 && parsha.length !== 2)) {
2162
2025
  throw new TypeError("Bad parsha argument: ".concat(parsha));
2163
2026
  }
2164
-
2165
2027
  var name = isParshaString ? parsha : parshaToString(parsha);
2166
2028
  var raw = parshiyotObj[name];
2167
-
2168
2029
  if (_typeof(raw) !== 'object') {
2169
2030
  throw new TypeError("Bad parsha argument: ".concat(parsha));
2170
2031
  }
2171
-
2172
2032
  return raw;
2173
2033
  }
2174
2034
 
@@ -2177,23 +2037,22 @@ var fmt = new Intl.DateTimeFormat('en-US', {
2177
2037
  month: 'short',
2178
2038
  day: '2-digit'
2179
2039
  });
2040
+
2180
2041
  /**
2181
2042
  * @private
2182
2043
  * @param {Date} dt
2183
2044
  * @return {string}
2184
2045
  */
2185
-
2186
2046
  function fmtDate(dt) {
2187
2047
  var s = fmt.format(dt).split(' ');
2188
2048
  return s[1].substring(0, 2) + '-' + s[0] + '-' + s[2];
2189
2049
  }
2050
+
2190
2051
  /**
2191
2052
  * @private
2192
2053
  * @param {Event[]} events
2193
2054
  * @return {Object<string,boolean>}
2194
2055
  */
2195
-
2196
-
2197
2056
  function getParshaDates(events) {
2198
2057
  var parshaEvents = events.filter(function (ev) {
2199
2058
  return ev.getFlags() === core.flags.PARSHA_HASHAVUA;
@@ -2204,13 +2063,13 @@ function getParshaDates(events) {
2204
2063
  }, {});
2205
2064
  return parshaDates;
2206
2065
  }
2066
+
2207
2067
  /**
2208
2068
  * @private
2209
2069
  * @param {fs.WriteStream} stream
2210
2070
  * @param {number} hyear
2211
2071
  * @param {boolean} il
2212
2072
  */
2213
-
2214
2073
  function writeFullKriyahCsv(stream, hyear, il) {
2215
2074
  var events0 = core.HebrewCalendar.calendar({
2216
2075
  year: hyear,
@@ -2229,68 +2088,61 @@ function writeFullKriyahCsv(stream, hyear, il) {
2229
2088
  }
2230
2089
  });
2231
2090
  }
2091
+
2232
2092
  /**
2233
2093
  * @private
2234
2094
  * @param {Event} ev
2235
2095
  * @return {boolean}
2236
2096
  */
2237
-
2238
2097
  function ignore(ev) {
2239
2098
  var mask = ev.getFlags();
2240
-
2241
2099
  if (mask === core.flags.SPECIAL_SHABBAT) {
2242
2100
  return true;
2243
2101
  }
2244
-
2245
2102
  if (mask !== core.flags.ROSH_CHODESH) {
2246
2103
  return false;
2247
2104
  }
2248
-
2249
2105
  return ev.getDate().getDay() === 6;
2250
2106
  }
2107
+
2251
2108
  /**
2252
2109
  * @private
2253
2110
  * @param {fs.WriteStream} stream
2254
2111
  * @param {Event} ev
2255
2112
  * @param {boolean} il
2256
2113
  */
2257
-
2258
-
2259
2114
  function writeFullKriyahEvent(stream, ev, il) {
2260
2115
  if (ignore(ev)) {
2261
2116
  return;
2262
2117
  }
2263
-
2264
2118
  var mask = ev.getFlags();
2265
2119
  var isParsha = mask === core.flags.PARSHA_HASHAVUA;
2266
2120
  var reading = isParsha ? getLeyningForParshaHaShavua(ev, il) : getLeyningForHoliday(ev, il);
2267
-
2268
2121
  if (reading) {
2269
2122
  writeCsvLines(stream, ev, reading, il, isParsha);
2270
-
2271
2123
  if (!isParsha) {
2272
2124
  writeHolidayMincha(stream, ev, il);
2273
2125
  }
2274
2126
  }
2275
2127
  }
2128
+
2276
2129
  /**
2277
2130
  * @private
2278
2131
  * @param {fs.WriteStream} stream
2279
2132
  * @param {Event} ev
2280
2133
  * @param {boolean} il
2281
2134
  */
2282
-
2283
2135
  function writeHolidayMincha(stream, ev, il) {
2284
2136
  var desc = ev.getDesc();
2285
2137
  var minchaDesc1 = desc + ' (Mincha)';
2286
2138
  var readingMincha1 = getLeyningForHolidayKey(minchaDesc1);
2287
2139
  var readingMincha = readingMincha1 || getLeyningForHolidayKey(getLeyningKeyForEvent(ev, il) + ' (Mincha)');
2288
-
2289
2140
  if (readingMincha) {
2290
2141
  var minchaEv = new core.Event(ev.getDate(), minchaDesc1, core.flags.USER_EVENT);
2291
2142
  writeCsvLines(stream, minchaEv, readingMincha, il, false);
2292
2143
  }
2293
2144
  }
2145
+
2294
2146
  /**
2295
2147
  * Formats reading for CSV
2296
2148
  * @param {fs.WriteStream} stream
@@ -2299,76 +2151,59 @@ function writeHolidayMincha(stream, ev, il) {
2299
2151
  * @param {boolean} il
2300
2152
  * @param {boolean} isParsha
2301
2153
  */
2302
-
2303
2154
  function writeCsvLines(stream, ev, reading, il, isParsha) {
2304
2155
  var parsha = isParsha ? ev.basename() : getLeyningKeyForEvent(ev, il) || ev.render();
2305
2156
  var date = fmtDate(ev.getDate().greg());
2306
2157
  var lines = getFullKriyahLines(reading);
2307
2158
  lines.forEach(function (s) {
2308
2159
  var code = s[0].charCodeAt(0);
2309
-
2310
2160
  if (code < 48 || code > 57) {
2311
2161
  s[0] = "\"".concat(s[0], "\"");
2312
2162
  }
2313
-
2314
2163
  stream.write("".concat(date, ",\"").concat(parsha, "\",").concat(s[0], ",\"").concat(s[1], "\",").concat(s[2], "\r\n"));
2315
2164
  });
2316
2165
  stream.write('\r\n');
2317
2166
  }
2167
+
2318
2168
  /**
2319
2169
  * @private
2320
2170
  * @param {any} reading
2321
2171
  * @return {any[]}
2322
2172
  */
2323
-
2324
2173
  function getFullKriyahLines(reading) {
2325
2174
  var lines = [];
2326
-
2327
2175
  if (reading.fullkriyah) {
2328
2176
  Object.keys(reading.fullkriyah).forEach(function (num) {
2329
2177
  var a = reading.fullkriyah[num];
2330
-
2331
2178
  if (typeof a !== 'undefined') {
2332
2179
  var _reading$reason;
2333
-
2334
2180
  var k = num == 'M' ? 'maf' : num;
2335
2181
  var aliyah = formatAliyahWithBook(a);
2336
-
2337
2182
  if ((_reading$reason = reading.reason) !== null && _reading$reason !== void 0 && _reading$reason[num]) {
2338
2183
  aliyah += ' | ' + reading.reason[num];
2339
2184
  }
2340
-
2341
2185
  lines.push([k, aliyah, a.v || '']);
2342
2186
  }
2343
2187
  });
2344
2188
  }
2345
-
2346
2189
  var specialHaftara = false;
2347
-
2348
2190
  if (reading.haftara) {
2349
2191
  var _reading$reason2;
2350
-
2351
2192
  var haftara = reading.haftara.replace(/,/g, ';');
2352
-
2353
2193
  if ((_reading$reason2 = reading.reason) !== null && _reading$reason2 !== void 0 && _reading$reason2.haftara) {
2354
2194
  specialHaftara = true;
2355
2195
  haftara += ' | ' + reading.reason.haftara;
2356
2196
  }
2357
-
2358
2197
  lines.push(['Haftara', haftara, reading.haftaraNumV || '']);
2359
2198
  }
2360
-
2361
2199
  if (reading.sephardic && !specialHaftara) {
2362
2200
  var sephardic = reading.sephardic.replace(/,/g, ';');
2363
2201
  lines.push(['Haftara for Sephardim', sephardic, reading.sephardicNumV || '']);
2364
2202
  }
2365
-
2366
2203
  if (reading.triHaftara) {
2367
2204
  var _haftara = reading.triHaftara.replace(/,/g, ';');
2368
-
2369
2205
  lines.push(['Alternate Haftara', _haftara, reading.triHaftaraNumV || '']);
2370
2206
  }
2371
-
2372
2207
  return lines;
2373
2208
  }
2374
2209
 
@@ -2398,8 +2233,6 @@ exports.writeCsvLines = writeCsvLines;
2398
2233
  exports.writeFullKriyahCsv = writeFullKriyahCsv;
2399
2234
  exports.writeHolidayMincha = writeHolidayMincha;
2400
2235
 
2401
- Object.defineProperty(exports, '__esModule', { value: true });
2402
-
2403
2236
  return exports;
2404
2237
 
2405
2238
  })({}, hebcal);