@hebcal/core 5.4.4 → 5.4.5

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/core v5.4.4 */
1
+ /*! @hebcal/core v5.4.5 */
2
2
  var hebcal = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -10093,12 +10093,6 @@ class OmerEvent extends Event {
10093
10093
  }
10094
10094
 
10095
10095
  class QuickLRU extends Map {
10096
- #size = 0;
10097
- #cache = new Map();
10098
- #oldCache = new Map();
10099
- #maxSize;
10100
- #maxAge;
10101
- #onEviction;
10102
10096
  constructor() {
10103
10097
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10104
10098
  super();
@@ -10108,102 +10102,104 @@ class QuickLRU extends Map {
10108
10102
  if (typeof options.maxAge === 'number' && options.maxAge === 0) {
10109
10103
  throw new TypeError('`maxAge` must be a number greater than 0');
10110
10104
  }
10111
- this.#maxSize = options.maxSize;
10112
- this.#maxAge = options.maxAge || Number.POSITIVE_INFINITY;
10113
- this.#onEviction = options.onEviction;
10114
- }
10115
10105
 
10116
- // For tests.
10117
- get __oldCache() {
10118
- return this.#oldCache;
10106
+ // TODO: Use private class fields when ESLint supports them.
10107
+ this.maxSize = options.maxSize;
10108
+ this.maxAge = options.maxAge || Number.POSITIVE_INFINITY;
10109
+ this.onEviction = options.onEviction;
10110
+ this.cache = new Map();
10111
+ this.oldCache = new Map();
10112
+ this._size = 0;
10119
10113
  }
10120
- #emitEvictions(cache) {
10121
- if (typeof this.#onEviction !== 'function') {
10114
+
10115
+ // TODO: Use private class methods when targeting Node.js 16.
10116
+ _emitEvictions(cache) {
10117
+ if (typeof this.onEviction !== 'function') {
10122
10118
  return;
10123
10119
  }
10124
10120
  for (const [key, item] of cache) {
10125
- this.#onEviction(key, item.value);
10121
+ this.onEviction(key, item.value);
10126
10122
  }
10127
10123
  }
10128
- #deleteIfExpired(key, item) {
10124
+ _deleteIfExpired(key, item) {
10129
10125
  if (typeof item.expiry === 'number' && item.expiry <= Date.now()) {
10130
- if (typeof this.#onEviction === 'function') {
10131
- this.#onEviction(key, item.value);
10126
+ if (typeof this.onEviction === 'function') {
10127
+ this.onEviction(key, item.value);
10132
10128
  }
10133
10129
  return this.delete(key);
10134
10130
  }
10135
10131
  return false;
10136
10132
  }
10137
- #getOrDeleteIfExpired(key, item) {
10138
- const deleted = this.#deleteIfExpired(key, item);
10133
+ _getOrDeleteIfExpired(key, item) {
10134
+ const deleted = this._deleteIfExpired(key, item);
10139
10135
  if (deleted === false) {
10140
10136
  return item.value;
10141
10137
  }
10142
10138
  }
10143
- #getItemValue(key, item) {
10144
- return item.expiry ? this.#getOrDeleteIfExpired(key, item) : item.value;
10139
+ _getItemValue(key, item) {
10140
+ return item.expiry ? this._getOrDeleteIfExpired(key, item) : item.value;
10145
10141
  }
10146
- #peek(key, cache) {
10142
+ _peek(key, cache) {
10147
10143
  const item = cache.get(key);
10148
- return this.#getItemValue(key, item);
10144
+ return this._getItemValue(key, item);
10149
10145
  }
10150
- #set(key, value) {
10151
- this.#cache.set(key, value);
10152
- this.#size++;
10153
- if (this.#size >= this.#maxSize) {
10154
- this.#size = 0;
10155
- this.#emitEvictions(this.#oldCache);
10156
- this.#oldCache = this.#cache;
10157
- this.#cache = new Map();
10146
+ _set(key, value) {
10147
+ this.cache.set(key, value);
10148
+ this._size++;
10149
+ if (this._size >= this.maxSize) {
10150
+ this._size = 0;
10151
+ this._emitEvictions(this.oldCache);
10152
+ this.oldCache = this.cache;
10153
+ this.cache = new Map();
10158
10154
  }
10159
10155
  }
10160
- #moveToRecent(key, item) {
10161
- this.#oldCache.delete(key);
10162
- this.#set(key, item);
10156
+ _moveToRecent(key, item) {
10157
+ this.oldCache.delete(key);
10158
+ this._set(key, item);
10163
10159
  }
10164
- *#entriesAscending() {
10165
- for (const item of this.#oldCache) {
10160
+ *_entriesAscending() {
10161
+ for (const item of this.oldCache) {
10166
10162
  const [key, value] = item;
10167
- if (!this.#cache.has(key)) {
10168
- const deleted = this.#deleteIfExpired(key, value);
10163
+ if (!this.cache.has(key)) {
10164
+ const deleted = this._deleteIfExpired(key, value);
10169
10165
  if (deleted === false) {
10170
10166
  yield item;
10171
10167
  }
10172
10168
  }
10173
10169
  }
10174
- for (const item of this.#cache) {
10170
+ for (const item of this.cache) {
10175
10171
  const [key, value] = item;
10176
- const deleted = this.#deleteIfExpired(key, value);
10172
+ const deleted = this._deleteIfExpired(key, value);
10177
10173
  if (deleted === false) {
10178
10174
  yield item;
10179
10175
  }
10180
10176
  }
10181
10177
  }
10182
10178
  get(key) {
10183
- if (this.#cache.has(key)) {
10184
- const item = this.#cache.get(key);
10185
- return this.#getItemValue(key, item);
10186
- }
10187
- if (this.#oldCache.has(key)) {
10188
- const item = this.#oldCache.get(key);
10189
- if (this.#deleteIfExpired(key, item) === false) {
10190
- this.#moveToRecent(key, item);
10179
+ if (this.cache.has(key)) {
10180
+ const item = this.cache.get(key);
10181
+ return this._getItemValue(key, item);
10182
+ }
10183
+ if (this.oldCache.has(key)) {
10184
+ const item = this.oldCache.get(key);
10185
+ if (this._deleteIfExpired(key, item) === false) {
10186
+ this._moveToRecent(key, item);
10191
10187
  return item.value;
10192
10188
  }
10193
10189
  }
10194
10190
  }
10195
10191
  set(key, value) {
10196
10192
  let {
10197
- maxAge = this.#maxAge
10193
+ maxAge = this.maxAge
10198
10194
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
10199
10195
  const expiry = typeof maxAge === 'number' && maxAge !== Number.POSITIVE_INFINITY ? Date.now() + maxAge : undefined;
10200
- if (this.#cache.has(key)) {
10201
- this.#cache.set(key, {
10196
+ if (this.cache.has(key)) {
10197
+ this.cache.set(key, {
10202
10198
  value,
10203
10199
  expiry
10204
10200
  });
10205
10201
  } else {
10206
- this.#set(key, {
10202
+ this._set(key, {
10207
10203
  value,
10208
10204
  expiry
10209
10205
  });
@@ -10211,53 +10207,53 @@ class QuickLRU extends Map {
10211
10207
  return this;
10212
10208
  }
10213
10209
  has(key) {
10214
- if (this.#cache.has(key)) {
10215
- return !this.#deleteIfExpired(key, this.#cache.get(key));
10210
+ if (this.cache.has(key)) {
10211
+ return !this._deleteIfExpired(key, this.cache.get(key));
10216
10212
  }
10217
- if (this.#oldCache.has(key)) {
10218
- return !this.#deleteIfExpired(key, this.#oldCache.get(key));
10213
+ if (this.oldCache.has(key)) {
10214
+ return !this._deleteIfExpired(key, this.oldCache.get(key));
10219
10215
  }
10220
10216
  return false;
10221
10217
  }
10222
10218
  peek(key) {
10223
- if (this.#cache.has(key)) {
10224
- return this.#peek(key, this.#cache);
10219
+ if (this.cache.has(key)) {
10220
+ return this._peek(key, this.cache);
10225
10221
  }
10226
- if (this.#oldCache.has(key)) {
10227
- return this.#peek(key, this.#oldCache);
10222
+ if (this.oldCache.has(key)) {
10223
+ return this._peek(key, this.oldCache);
10228
10224
  }
10229
10225
  }
10230
10226
  delete(key) {
10231
- const deleted = this.#cache.delete(key);
10227
+ const deleted = this.cache.delete(key);
10232
10228
  if (deleted) {
10233
- this.#size--;
10229
+ this._size--;
10234
10230
  }
10235
- return this.#oldCache.delete(key) || deleted;
10231
+ return this.oldCache.delete(key) || deleted;
10236
10232
  }
10237
10233
  clear() {
10238
- this.#cache.clear();
10239
- this.#oldCache.clear();
10240
- this.#size = 0;
10234
+ this.cache.clear();
10235
+ this.oldCache.clear();
10236
+ this._size = 0;
10241
10237
  }
10242
10238
  resize(newSize) {
10243
10239
  if (!(newSize && newSize > 0)) {
10244
10240
  throw new TypeError('`maxSize` must be a number greater than 0');
10245
10241
  }
10246
- const items = [...this.#entriesAscending()];
10242
+ const items = [...this._entriesAscending()];
10247
10243
  const removeCount = items.length - newSize;
10248
10244
  if (removeCount < 0) {
10249
- this.#cache = new Map(items);
10250
- this.#oldCache = new Map();
10251
- this.#size = items.length;
10245
+ this.cache = new Map(items);
10246
+ this.oldCache = new Map();
10247
+ this._size = items.length;
10252
10248
  } else {
10253
10249
  if (removeCount > 0) {
10254
- this.#emitEvictions(items.slice(0, removeCount));
10250
+ this._emitEvictions(items.slice(0, removeCount));
10255
10251
  }
10256
- this.#oldCache = new Map(items.slice(removeCount));
10257
- this.#cache = new Map();
10258
- this.#size = 0;
10252
+ this.oldCache = new Map(items.slice(removeCount));
10253
+ this.cache = new Map();
10254
+ this._size = 0;
10259
10255
  }
10260
- this.#maxSize = newSize;
10256
+ this.maxSize = newSize;
10261
10257
  }
10262
10258
  *keys() {
10263
10259
  for (const [key] of this) {
@@ -10270,17 +10266,17 @@ class QuickLRU extends Map {
10270
10266
  }
10271
10267
  }
10272
10268
  *[Symbol.iterator]() {
10273
- for (const item of this.#cache) {
10269
+ for (const item of this.cache) {
10274
10270
  const [key, value] = item;
10275
- const deleted = this.#deleteIfExpired(key, value);
10271
+ const deleted = this._deleteIfExpired(key, value);
10276
10272
  if (deleted === false) {
10277
10273
  yield [key, value.value];
10278
10274
  }
10279
10275
  }
10280
- for (const item of this.#oldCache) {
10276
+ for (const item of this.oldCache) {
10281
10277
  const [key, value] = item;
10282
- if (!this.#cache.has(key)) {
10283
- const deleted = this.#deleteIfExpired(key, value);
10278
+ if (!this.cache.has(key)) {
10279
+ const deleted = this._deleteIfExpired(key, value);
10284
10280
  if (deleted === false) {
10285
10281
  yield [key, value.value];
10286
10282
  }
@@ -10288,21 +10284,21 @@ class QuickLRU extends Map {
10288
10284
  }
10289
10285
  }
10290
10286
  *entriesDescending() {
10291
- let items = [...this.#cache];
10287
+ let items = [...this.cache];
10292
10288
  for (let i = items.length - 1; i >= 0; --i) {
10293
10289
  const item = items[i];
10294
10290
  const [key, value] = item;
10295
- const deleted = this.#deleteIfExpired(key, value);
10291
+ const deleted = this._deleteIfExpired(key, value);
10296
10292
  if (deleted === false) {
10297
10293
  yield [key, value.value];
10298
10294
  }
10299
10295
  }
10300
- items = [...this.#oldCache];
10296
+ items = [...this.oldCache];
10301
10297
  for (let i = items.length - 1; i >= 0; --i) {
10302
10298
  const item = items[i];
10303
10299
  const [key, value] = item;
10304
- if (!this.#cache.has(key)) {
10305
- const deleted = this.#deleteIfExpired(key, value);
10300
+ if (!this.cache.has(key)) {
10301
+ const deleted = this._deleteIfExpired(key, value);
10306
10302
  if (deleted === false) {
10307
10303
  yield [key, value.value];
10308
10304
  }
@@ -10310,24 +10306,21 @@ class QuickLRU extends Map {
10310
10306
  }
10311
10307
  }
10312
10308
  *entriesAscending() {
10313
- for (const [key, value] of this.#entriesAscending()) {
10309
+ for (const [key, value] of this._entriesAscending()) {
10314
10310
  yield [key, value.value];
10315
10311
  }
10316
10312
  }
10317
10313
  get size() {
10318
- if (!this.#size) {
10319
- return this.#oldCache.size;
10314
+ if (!this._size) {
10315
+ return this.oldCache.size;
10320
10316
  }
10321
10317
  let oldCacheSize = 0;
10322
- for (const key of this.#oldCache.keys()) {
10323
- if (!this.#cache.has(key)) {
10318
+ for (const key of this.oldCache.keys()) {
10319
+ if (!this.cache.has(key)) {
10324
10320
  oldCacheSize++;
10325
10321
  }
10326
10322
  }
10327
- return Math.min(this.#size + oldCacheSize, this.#maxSize);
10328
- }
10329
- get maxSize() {
10330
- return this.#maxSize;
10323
+ return Math.min(this._size + oldCacheSize, this.maxSize);
10331
10324
  }
10332
10325
  entries() {
10333
10326
  return this.entriesAscending();
@@ -10377,6 +10370,19 @@ class QuickLRU extends Map {
10377
10370
  const INCOMPLETE = 0;
10378
10371
  const REGULAR = 1;
10379
10372
  const COMPLETE = 2;
10373
+ function yearType(hyear) {
10374
+ const longC = HDate.longCheshvan(hyear);
10375
+ const shortK = HDate.shortKislev(hyear);
10376
+ if (longC && !shortK) {
10377
+ return COMPLETE;
10378
+ }
10379
+ else if (!longC && shortK) {
10380
+ return INCOMPLETE;
10381
+ }
10382
+ else {
10383
+ return REGULAR;
10384
+ }
10385
+ }
10380
10386
  /**
10381
10387
  * Represents Parashah HaShavua for an entire Hebrew year
10382
10388
  */
@@ -10388,11 +10394,6 @@ class Sedra {
10388
10394
  */
10389
10395
  constructor(hyear, il) {
10390
10396
  hyear = +hyear;
10391
- const longC = HDate.longCheshvan(hyear);
10392
- const shortK = HDate.shortKislev(hyear);
10393
- const type = (longC && !shortK) ? COMPLETE :
10394
- (!longC && shortK) ? INCOMPLETE :
10395
- REGULAR;
10396
10397
  this.year = hyear;
10397
10398
  const rh0 = new HDate(1, months.TISHREI, hyear);
10398
10399
  const rh = rh0.abs();
@@ -10401,6 +10402,7 @@ class Sedra {
10401
10402
  this.firstSaturday = HDate.dayOnOrBefore(6, rh + 6);
10402
10403
  const leap = +HDate.isLeapYear(hyear);
10403
10404
  this.il = Boolean(il);
10405
+ const type = yearType(hyear);
10404
10406
  let key = `${leap}${rhDay}${type}`;
10405
10407
  if (types[key]) {
10406
10408
  this.theSedraArray = types[key];
@@ -10653,7 +10655,6 @@ const YK = 'Yom Kippur'; // 1
10653
10655
  const SUKKOT = 'Sukkot'; // 0
10654
10656
  const CHMSUKOT = 'Sukkot Shabbat Chol ha-Moed'; // 0
10655
10657
  const SHMINI = 'Shmini Atzeret'; // 0
10656
- const EOY = CHMSUKOT; // always Sukkot day 3, 5 or 6
10657
10658
  const PESACH = 'Pesach'; // 25
10658
10659
  const PESACH1 = 'Pesach I';
10659
10660
  const CHMPESACH = 'Pesach Shabbat Chol ha-Moed'; // 25
@@ -10670,75 +10671,81 @@ const SHAVUOT$1 = 'Shavuot'; // 33
10670
10671
  function range$1(start, stop) {
10671
10672
  return Array.from({ length: stop - start + 1 }, (v, k) => k + start);
10672
10673
  }
10673
- const empty = [];
10674
+ const yearStartVayeilech = [51, 52, CHMSUKOT];
10675
+ const yearStartHaazinu = [52, YK, CHMSUKOT];
10676
+ const yearStartRH = [RH, 52, SUKKOT, SHMINI];
10677
+ const r020 = range$1(0, 20);
10678
+ const r027 = range$1(0, 27);
10679
+ const r3340 = range$1(33, 40);
10680
+ const r4349 = range$1(43, 49);
10681
+ const r4350 = range$1(43, 50);
10674
10682
  /**
10675
10683
  * The ordinary year types (keviot)
10676
10684
  * names are leap/nonleap - day - incomplete/regular/complete - diaspora/Israel
10677
10685
  * @private
10678
10686
  * @readonly
10679
- * @type {Object.<string, NumberOrString[]>}
10680
10687
  */
10681
10688
  const types = {
10682
10689
  /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and
10683
10690
  * Kislev each have 29 days), and has Passover start on Tuesday. */
10684
10691
  // e.g. 5753
10685
- '020': empty.concat(51, 52, EOY, range$1(0, 20), D(21), 23, 24, PESACH, 25, D(26), D(28), 30, D(31), range$1(33, 40), D(41), range$1(43, 49), D(50)),
10692
+ '020': yearStartVayeilech.concat(r020, D(21), 23, 24, PESACH, 25, D(26), D(28), 30, D(31), r3340, D(41), r4349, D(50)),
10686
10693
  /* Hebrew year that starts on Monday, is `complete' (Heshvan and
10687
10694
  * Kislev each have 30 days), and has Passover start on Thursday. */
10688
10695
  // e.g. 5756
10689
- '0220': empty.concat(51, 52, EOY, range$1(0, 20), D(21), 23, 24, PESACH, 25, D(26), D(28), 30, D(31), 33, SHAVUOT$1, range$1(34, 37), D(38), 40, D(41), range$1(43, 49), D(50)),
10696
+ '0220': yearStartVayeilech.concat(r020, D(21), 23, 24, PESACH, 25, D(26), D(28), 30, D(31), 33, SHAVUOT$1, range$1(34, 37), D(38), 40, D(41), r4349, D(50)),
10690
10697
  /* Hebrew year that starts on Thursday, is `regular' (Heshvan has 29
10691
10698
  * days and Kislev has 30 days), and has Passover start on Saturday. */
10692
10699
  // e.g. 5701
10693
- '0510': empty.concat(52, YK, EOY, range$1(0, 20), D(21), 23, 24, PESACH1, PESACH8, 25, D(26), D(28), 30, D(31), range$1(33, 40), D(41), range$1(43, 50)),
10700
+ '0510': yearStartHaazinu.concat(r020, D(21), 23, 24, PESACH1, PESACH8, 25, D(26), D(28), 30, D(31), r3340, D(41), r4350),
10694
10701
  /* Hebrew year that starts on Thursday, is `regular' (Heshvan has 29
10695
10702
  * days and Kislev has 30 days), and has Passover start on Saturday. */
10696
10703
  // e.g. 5745
10697
- '0511': empty.concat(52, YK, EOY, range$1(0, 20), D(21), 23, 24, PESACH, 25, D(26), D(28), range$1(30, 40), D(41), range$1(43, 50)),
10704
+ '0511': yearStartHaazinu.concat(r020, D(21), 23, 24, PESACH, 25, D(26), D(28), range$1(30, 40), D(41), r4350),
10698
10705
  /* Hebrew year that starts on Thursday, is `complete' (Heshvan and
10699
10706
  * Kislev each have 30 days), and has Passover start on Sunday. */
10700
10707
  // e.g. 5754
10701
- '052': empty.concat(52, YK, CHMSUKOT, range$1(0, 24), PESACH7, 25, D(26), D(28), 30, D(31), range$1(33, 40), D(41), range$1(43, 50)),
10708
+ '052': yearStartHaazinu.concat(range$1(0, 24), PESACH7, 25, D(26), D(28), 30, D(31), r3340, D(41), r4350),
10702
10709
  /* Hebrew year that starts on Saturday, is `incomplete' (Heshvan and Kislev
10703
10710
  * each have 29 days), and has Passover start on Sunday. */
10704
10711
  // e.g. 5761
10705
- '070': empty.concat(RH, 52, SUKKOT, SHMINI, range$1(0, 20), D(21), 23, 24, PESACH7, 25, D(26), D(28), 30, D(31), range$1(33, 40), D(41), range$1(43, 50)),
10712
+ '070': yearStartRH.concat(r020, D(21), 23, 24, PESACH7, 25, D(26), D(28), 30, D(31), r3340, D(41), r4350),
10706
10713
  /* Hebrew year that starts on Saturday, is `complete' (Heshvan and
10707
10714
  * Kislev each have 30 days), and has Passover start on Tuesday. */
10708
10715
  // e.g. 5716
10709
- '072': empty.concat(RH, 52, SUKKOT, SHMINI, range$1(0, 20), D(21), 23, 24, CHMPESACH, 25, D(26), D(28), 30, D(31), range$1(33, 40), D(41), range$1(43, 49), D(50)),
10716
+ '072': yearStartRH.concat(r020, D(21), 23, 24, CHMPESACH, 25, D(26), D(28), 30, D(31), r3340, D(41), r4349, D(50)),
10710
10717
  /* -- The leap year types (keviot) -- */
10711
10718
  /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and
10712
10719
  * Kislev each have 29 days), and has Passover start on Thursday. */
10713
10720
  // e.g. 5746
10714
- '1200': empty.concat(51, 52, CHMSUKOT, range$1(0, 27), CHMPESACH, range$1(28, 33), SHAVUOT$1, range$1(34, 37), D(38), 40, D(41), range$1(43, 49), D(50)),
10721
+ '1200': yearStartVayeilech.concat(r027, CHMPESACH, range$1(28, 33), SHAVUOT$1, range$1(34, 37), D(38), 40, D(41), r4349, D(50)),
10715
10722
  /* Hebrew year that starts on Monday, is `incomplete' (Heshvan and
10716
10723
  * Kislev each have 29 days), and has Passover start on Thursday. */
10717
10724
  // e.g. 5746
10718
- '1201': empty.concat(51, 52, CHMSUKOT, range$1(0, 27), CHMPESACH, range$1(28, 40), D(41), range$1(43, 49), D(50)),
10725
+ '1201': yearStartVayeilech.concat(r027, CHMPESACH, range$1(28, 40), D(41), r4349, D(50)),
10719
10726
  /* Hebrew year that starts on Monday, is `complete' (Heshvan and
10720
10727
  * Kislev each have 30 days), and has Passover start on Saturday. */
10721
10728
  // e.g.5752
10722
- '1220': empty.concat(51, 52, CHMSUKOT, range$1(0, 27), PESACH1, PESACH8, range$1(28, 40), D(41), range$1(43, 50)),
10729
+ '1220': yearStartVayeilech.concat(r027, PESACH1, PESACH8, range$1(28, 40), D(41), r4350),
10723
10730
  /* Hebrew year that starts on Monday, is `complete' (Heshvan and
10724
10731
  * Kislev each have 30 days), and has Passover start on Saturday. */
10725
10732
  // e.g.5752
10726
- '1221': empty.concat(51, 52, CHMSUKOT, range$1(0, 27), PESACH, range$1(28, 50)),
10733
+ '1221': yearStartVayeilech.concat(r027, PESACH, range$1(28, 50)),
10727
10734
  /* Hebrew year that starts on Thursday, is `incomplete' (Heshvan and
10728
10735
  * Kislev both have 29 days), and has Passover start on Sunday. */
10729
10736
  // e.g. 5768
10730
- '150': empty.concat(52, YK, CHMSUKOT, range$1(0, 28), PESACH7, range$1(29, 50)),
10737
+ '150': yearStartHaazinu.concat(range$1(0, 28), PESACH7, range$1(29, 50)),
10731
10738
  /* Hebrew year that starts on Thursday, is `complete' (Heshvan and
10732
10739
  * Kislev both have 30 days), and has Passover start on Tuesday. */
10733
10740
  // eg. 5771
10734
- '152': empty.concat(52, YK, CHMSUKOT, range$1(0, 28), CHMPESACH, range$1(29, 49), D(50)),
10741
+ '152': yearStartHaazinu.concat(range$1(0, 28), CHMPESACH, range$1(29, 49), D(50)),
10735
10742
  /* Hebrew year that starts on Saturday, is `incomplete' (Heshvan and
10736
10743
  * Kislev each have 29 days), and has Passover start on Tuesday. */
10737
10744
  // e.g.5757
10738
- '170': empty.concat(RH, 52, SUKKOT, SHMINI, range$1(0, 27), CHMPESACH, range$1(28, 40), D(41), range$1(43, 49), D(50)),
10745
+ '170': yearStartRH.concat(r027, CHMPESACH, range$1(28, 40), D(41), r4349, D(50)),
10739
10746
  /* Hebrew year that starts on Saturday, is `complete' (Heshvan and
10740
10747
  * Kislev each have 30 days), and has Passover start on Thursday. */
10741
- '1720': empty.concat(RH, 52, SUKKOT, SHMINI, range$1(0, 27), CHMPESACH, range$1(28, 33), SHAVUOT$1, range$1(34, 37), D(38), 40, D(41), range$1(43, 49), D(50)),
10748
+ '1720': yearStartRH.concat(r027, CHMPESACH, range$1(28, 33), SHAVUOT$1, range$1(34, 37), D(38), 40, D(41), r4349, D(50)),
10742
10749
  };
10743
10750
  /* Hebrew year that starts on Monday, is `complete' (Heshvan and
10744
10751
  * Kislev each have 30 days), and has Passover start on Thursday. */
@@ -10762,6 +10769,8 @@ types['1311'] = types['1221'];
10762
10769
  types['1721'] = types['170'];
10763
10770
  const sedraCache = new QuickLRU({ maxSize: 400 });
10764
10771
  /**
10772
+ * Convenience function to create an instance of `Sedra` or reuse a previously
10773
+ * created and cached instance.
10765
10774
  * @private
10766
10775
  * @param {number} hyear
10767
10776
  * @param {boolean} il
@@ -11426,7 +11435,7 @@ class DailyLearning {
11426
11435
  }
11427
11436
 
11428
11437
  /** DO NOT EDIT THIS AUTO-GENERATED FILE! */
11429
- const version = '5.4.4';
11438
+ const version = '5.4.5';
11430
11439
 
11431
11440
  /* eslint-disable max-len */
11432
11441
  /**