@hebcal/rest-api 3.8.5 → 3.10.0

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/README.md CHANGED
@@ -66,6 +66,9 @@ Converts to lowercase and replaces non-word characters with hyphen ('-')
66
66
  <dt><a href="#makeTorahMemoText">makeTorahMemoText(ev, il)</a> ⇒ <code>string</code></dt>
67
67
  <dd><p>Makes mulit-line text that summarizes Torah &amp; Haftarah</p>
68
68
  </dd>
69
+ <dt><a href="#appendIsraelAndTracking">appendIsraelAndTracking(url, il, utmSource, utmMedium, utmCampaign)</a> ⇒ <code>string</code></dt>
70
+ <dd><p>Appends utm_source and utm_medium parameters to a URL</p>
71
+ </dd>
69
72
  <dt><a href="#eventToCsv">eventToCsv(e, options)</a> ⇒ <code>string</code></dt>
70
73
  <dd><p>Renders an Event as a string</p>
71
74
  </dd>
@@ -83,6 +86,8 @@ Converts to lowercase and replaces non-word characters with hyphen (&#39;-&#39;)
83
86
  <dd></dd>
84
87
  <dt><a href="#eventsToRss">eventsToRss(events, location, mainUrl, selfUrl, [lang], [evPubDate])</a> ⇒ <code>string</code></dt>
85
88
  <dd></dd>
89
+ <dt><a href="#eventsToRss2">eventsToRss2(events, options)</a> ⇒ <code>string</code></dt>
90
+ <dd></dd>
86
91
  <dt><a href="#eventToRssItem">eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl)</a> ⇒ <code>string</code></dt>
87
92
  <dd></dd>
88
93
  <dt><a href="#eventToFullCalendar">eventToFullCalendar(ev, tzid, il)</a> ⇒ <code>Object</code></dt>
@@ -231,6 +236,21 @@ Makes mulit-line text that summarizes Torah & Haftarah
231
236
  | ev | <code>Event</code> |
232
237
  | il | <code>boolean</code> |
233
238
 
239
+ <a name="appendIsraelAndTracking"></a>
240
+
241
+ ## appendIsraelAndTracking(url, il, utmSource, utmMedium, utmCampaign) ⇒ <code>string</code>
242
+ Appends utm_source and utm_medium parameters to a URL
243
+
244
+ **Kind**: global function
245
+
246
+ | Param | Type |
247
+ | --- | --- |
248
+ | url | <code>string</code> |
249
+ | il | <code>boolean</code> |
250
+ | utmSource | <code>string</code> |
251
+ | utmMedium | <code>string</code> |
252
+ | utmCampaign | <code>string</code> |
253
+
234
254
  <a name="eventToCsv"></a>
235
255
 
236
256
  ## eventToCsv(e, options) ⇒ <code>string</code>
@@ -241,7 +261,7 @@ Renders an Event as a string
241
261
  | Param | Type |
242
262
  | --- | --- |
243
263
  | e | <code>Event</code> |
244
- | options | <code>HebcalOptions</code> |
264
+ | options | <code>HebrewCalendar.Options</code> |
245
265
 
246
266
  <a name="eventsToCsv"></a>
247
267
 
@@ -312,6 +332,16 @@ Converts a Hebcal event to a classic Hebcal.com JSON API object
312
332
  | [lang] | <code>string</code> | <code>&quot;en-US&quot;</code> | language such as 'he' (default 'en-US') |
313
333
  | [evPubDate] | <code>boolean</code> | <code>true</code> | if true, use event time as pubDate (false uses lastBuildDate) |
314
334
 
335
+ <a name="eventsToRss2"></a>
336
+
337
+ ## eventsToRss2(events, options) ⇒ <code>string</code>
338
+ **Kind**: global function
339
+
340
+ | Param | Type |
341
+ | --- | --- |
342
+ | events | <code>Array.&lt;Event&gt;</code> |
343
+ | options | <code>HebrewCalendar.Options</code> |
344
+
315
345
  <a name="eventToRssItem"></a>
316
346
 
317
347
  ## eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl) ⇒ <code>string</code>
package/dist/bundle.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/rest-api v3.8.5 */
1
+ /*! @hebcal/rest-api v3.10.0 */
2
2
  var hebcal__rest_api = (function (exports, core, leyn) {
3
3
  'use strict';
4
4
 
@@ -321,7 +321,7 @@ var store$2 = sharedStore;
321
321
  (shared$4.exports = function (key, value) {
322
322
  return store$2[key] || (store$2[key] = value !== undefined ? value : {});
323
323
  })('versions', []).push({
324
- version: '3.19.0',
324
+ version: '3.19.3',
325
325
  mode: 'global',
326
326
  copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
327
327
  });
@@ -987,27 +987,37 @@ var regexpFlags$1 = function () {
987
987
  return result;
988
988
  };
989
989
 
990
- var regexpStickyHelpers = {};
991
-
992
990
  var fails$2 = fails$8;
993
991
  var global$3 = global$q;
994
992
 
995
993
  // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
996
994
  var $RegExp$2 = global$3.RegExp;
997
995
 
998
- regexpStickyHelpers.UNSUPPORTED_Y = fails$2(function () {
996
+ var UNSUPPORTED_Y$1 = fails$2(function () {
999
997
  var re = $RegExp$2('a', 'y');
1000
998
  re.lastIndex = 2;
1001
999
  return re.exec('abcd') != null;
1002
1000
  });
1003
1001
 
1004
- regexpStickyHelpers.BROKEN_CARET = fails$2(function () {
1002
+ // UC Browser bug
1003
+ // https://github.com/zloirock/core-js/issues/1008
1004
+ var MISSED_STICKY = UNSUPPORTED_Y$1 || fails$2(function () {
1005
+ return !$RegExp$2('a', 'y').sticky;
1006
+ });
1007
+
1008
+ var BROKEN_CARET = UNSUPPORTED_Y$1 || fails$2(function () {
1005
1009
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1006
1010
  var re = $RegExp$2('^r', 'gy');
1007
1011
  re.lastIndex = 2;
1008
1012
  return re.exec('str') != null;
1009
1013
  });
1010
1014
 
1015
+ var regexpStickyHelpers = {
1016
+ BROKEN_CARET: BROKEN_CARET,
1017
+ MISSED_STICKY: MISSED_STICKY,
1018
+ UNSUPPORTED_Y: UNSUPPORTED_Y$1
1019
+ };
1020
+
1011
1021
  var internalObjectKeys = objectKeysInternal;
1012
1022
  var enumBugKeys$1 = enumBugKeys$3;
1013
1023
 
@@ -1178,7 +1188,7 @@ var UPDATES_LAST_INDEX_WRONG = (function () {
1178
1188
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
1179
1189
  })();
1180
1190
 
1181
- var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
1191
+ var UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;
1182
1192
 
1183
1193
  // nonparticipating capturing group, copied from es5-shim's String#split patch.
1184
1194
  var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
@@ -1186,7 +1196,6 @@ var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1186
1196
  var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;
1187
1197
 
1188
1198
  if (PATCH) {
1189
- // eslint-disable-next-line max-statements -- TODO
1190
1199
  patchedExec = function exec(string) {
1191
1200
  var re = this;
1192
1201
  var state = getInternalState(re);
@@ -1494,6 +1503,10 @@ function getCalendarTitle(events, options) {
1494
1503
  title += ' Diaspora';
1495
1504
  }
1496
1505
 
1506
+ if (options.subscribe == '1') {
1507
+ return title;
1508
+ }
1509
+
1497
1510
  if (options.isHebrewYear || events.length == 0) {
1498
1511
  title += ' ' + options.year;
1499
1512
  } else {
@@ -1600,6 +1613,25 @@ function appendIsraelAndTracking(url, il, utmSource, utmMedium, utmCampaign) {
1600
1613
  const campaign = utmCampaign ? "&utm_campaign=".concat(utmCampaign) : '';
1601
1614
  return url + sep + utm + campaign;
1602
1615
  }
1616
+ /**
1617
+ * @private
1618
+ * @param {Event} ev
1619
+ * @return {boolean}
1620
+ */
1621
+
1622
+ function shouldRenderBrief(ev) {
1623
+ if (typeof ev.eventTime !== 'undefined') return true;
1624
+ const mask = ev.getFlags();
1625
+
1626
+ if (mask & core.flags.HEBREW_DATE) {
1627
+ const hd = ev.getDate();
1628
+ return hd.getDate() === 1 ? false : true;
1629
+ } else if (mask & core.flags.DAF_YOMI) {
1630
+ return true;
1631
+ } else {
1632
+ return false;
1633
+ }
1634
+ }
1603
1635
 
1604
1636
  const csvHeader = '"Subject","Start Date","Start Time","End Date","End Time","All day event","Description","Show time as","Location"';
1605
1637
  const CATEGORY = {
@@ -1616,7 +1648,7 @@ const CATEGORY = {
1616
1648
  /**
1617
1649
  * Renders an Event as a string
1618
1650
  * @param {Event} e
1619
- * @param {HebcalOptions} options
1651
+ * @param {HebrewCalendar.Options} options
1620
1652
  * @return {string}
1621
1653
  */
1622
1654
 
@@ -1631,7 +1663,7 @@ function eventToCsv(e, options) {
1631
1663
  let endDate = '';
1632
1664
  let allDay = '"true"';
1633
1665
  const timed = Boolean(e.eventTime);
1634
- let subj = timed ? e.renderBrief() : e.render();
1666
+ let subj = shouldRenderBrief(e) ? e.renderBrief(options.locale) : e.render(options.locale);
1635
1667
 
1636
1668
  if (e.eventTime) {
1637
1669
  const timeStr = core.HebrewCalendar.reformatTimeStr(e.eventTimeStr, ' PM', options);
@@ -1675,7 +1707,7 @@ function eventToCsv(e, options) {
1675
1707
  let memo0 = e.memo || getHolidayDescription(e, true);
1676
1708
 
1677
1709
  if (!memo0 && typeof e.linkedEvent !== 'undefined') {
1678
- memo0 = e.linkedEvent.render();
1710
+ memo0 = e.linkedEvent.render(options.locale);
1679
1711
  }
1680
1712
 
1681
1713
  const memo = memo0.replace(/,/g, ';').replace(/"/g, '\'\'');
@@ -1734,7 +1766,6 @@ function eventsToClassicApi(events, options) {
1734
1766
  result.items = events.map(ev => eventToClassicApiObject(ev, options, leyning));
1735
1767
  return result;
1736
1768
  }
1737
- const BRIEF_FLAGS$1 = core.flags.DAF_YOMI | core.flags.HEBREW_DATE;
1738
1769
  /**
1739
1770
  * Converts a Hebcal event to a classic Hebcal.com JSON API object
1740
1771
  * @param {Event} ev
@@ -1752,7 +1783,7 @@ function eventToClassicApiObject(ev, options) {
1752
1783
  const date = timed ? core.Zmanim.formatISOWithTimeZone(tzid, ev.eventTime) : toISOString(dt);
1753
1784
  const categories = getEventCategories(ev);
1754
1785
  const mask = ev.getFlags();
1755
- let title = timed || mask & BRIEF_FLAGS$1 ? ev.renderBrief(options.locale) : ev.render(options.locale);
1786
+ let title = shouldRenderBrief(ev) ? ev.renderBrief(options.locale) : ev.render(options.locale);
1756
1787
  const desc = ev.getDesc();
1757
1788
  const candles = desc === 'Havdalah' || desc === 'Candle lighting';
1758
1789
 
@@ -1930,18 +1961,42 @@ function eventsToRss(events, location, mainUrl, selfUrl) {
1930
1961
  let lang = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'en-US';
1931
1962
  let evPubDate = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
1932
1963
  const cityDescr = location.getName();
1933
- const thisYear = new Date().getFullYear();
1934
- const title = core.Locale.gettext('Shabbat') + ' Times for ' + cityDescr;
1935
- const lastBuildDate = new Date().toUTCString();
1964
+ const options = {
1965
+ location,
1966
+ mainUrl,
1967
+ selfUrl,
1968
+ lang,
1969
+ evPubDate,
1970
+ title: core.Locale.gettext('Shabbat') + " Times for ".concat(cityDescr),
1971
+ description: "Weekly Shabbat candle lighting times for ".concat(cityDescr),
1972
+ utmSource: 'shabbat1c',
1973
+ utmMedium: 'rss'
1974
+ };
1975
+ return eventsToRss2(events, options);
1976
+ }
1977
+ /**
1978
+ * @param {Event[]} events
1979
+ * @param {HebrewCalendar.Options} options
1980
+ * @return {string}
1981
+ */
1982
+
1983
+ function eventsToRss2(events, options) {
1984
+ const now = new Date();
1985
+ const thisYear = now.getFullYear();
1986
+ const lastBuildDate = now.toUTCString();
1936
1987
  const dayFormat = new Intl.DateTimeFormat('en-US', {
1937
1988
  weekday: 'long',
1938
1989
  day: '2-digit',
1939
1990
  month: 'long',
1940
1991
  year: 'numeric'
1941
1992
  });
1942
- const mainUrlEsc = appendIsraelAndTracking(mainUrl, location.getIsrael(), 'shabbat1c', 'rss').replace(/&/g, '&amp;');
1943
- selfUrl = selfUrl.replace(/&/g, '&amp;');
1944
- let str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:geo=\"http://www.w3.org/2003/01/geo/wgs84_pos#\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n<channel>\n<title>".concat(title, "</title>\n<link>").concat(mainUrlEsc, "</link>\n<atom:link href=\"").concat(selfUrl, "\" rel=\"self\" type=\"application/rss+xml\" />\n<description>Weekly Shabbat candle lighting times for ").concat(cityDescr, "</description>\n<language>").concat(lang, "</language>\n<copyright>Copyright (c) ").concat(thisYear, " Michael J. Radwin. All rights reserved.</copyright>\n<lastBuildDate>").concat(lastBuildDate, "</lastBuildDate>\n");
1993
+ const location = options.location;
1994
+ const mainUrl = options.mainUrl;
1995
+ const evPubDate = options.evPubDate;
1996
+ const title = options.title;
1997
+ const mainUrlEsc = appendIsraelAndTracking(mainUrl, location && location.getIsrael(), options.utmSource, options.utmMedium, options.utmCampaign).replace(/&/g, '&amp;');
1998
+ const selfUrlEsc = options.selfUrl.replace(/&/g, '&amp;');
1999
+ let str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:geo=\"http://www.w3.org/2003/01/geo/wgs84_pos#\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n<channel>\n<title>".concat(title, "</title>\n<link>").concat(mainUrlEsc, "</link>\n<atom:link href=\"").concat(selfUrlEsc, "\" rel=\"self\" type=\"application/rss+xml\" />\n<description>").concat(options.description, "</description>\n<language>").concat(options.lang, "</language>\n<copyright>Copyright (c) ").concat(thisYear, " Michael J. Radwin. All rights reserved.</copyright>\n<lastBuildDate>").concat(lastBuildDate, "</lastBuildDate>\n");
1945
2000
  events.forEach(ev => {
1946
2001
  str += eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl);
1947
2002
  });
@@ -2017,7 +2072,6 @@ function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainU
2017
2072
  return "<item>\n<title>".concat(subj, "</title>\n<link>").concat(link, "</link>\n<guid isPermaLink=\"false\">").concat(guid, "</guid>\n<description>").concat(description, "</description>\n<category>").concat(cat0, "</category>\n<pubDate>").concat(pubDate, "</pubDate>\n").concat(geoTags, "</item>\n");
2018
2073
  }
2019
2074
 
2020
- const BRIEF_FLAGS = core.flags.DAF_YOMI | core.flags.HEBREW_DATE;
2021
2075
  /**
2022
2076
  * Converts a Hebcal event to a FullCalendar.io object
2023
2077
  * @param {Event} ev
@@ -2035,7 +2089,7 @@ function eventToFullCalendar(ev, tzid, il) {
2035
2089
  }
2036
2090
 
2037
2091
  const timed = Boolean(ev.eventTime);
2038
- const title = timed || mask & BRIEF_FLAGS ? ev.renderBrief() : ev.render();
2092
+ const title = shouldRenderBrief(ev) ? ev.renderBrief() : ev.render();
2039
2093
  const start = timed ? core.Zmanim.formatISOWithTimeZone(tzid, ev.eventTime) : toISOString(ev.getDate().greg());
2040
2094
  const result = {
2041
2095
  title,
@@ -2080,6 +2134,7 @@ exports.eventToRssItem = eventToRssItem;
2080
2134
  exports.eventsToClassicApi = eventsToClassicApi;
2081
2135
  exports.eventsToCsv = eventsToCsv;
2082
2136
  exports.eventsToRss = eventsToRss;
2137
+ exports.eventsToRss2 = eventsToRss2;
2083
2138
  exports.getCalendarTitle = getCalendarTitle;
2084
2139
  exports.getDownloadFilename = getDownloadFilename;
2085
2140
  exports.getEventCategories = getEventCategories;
@@ -2090,6 +2145,7 @@ exports.makeTorahMemoText = makeTorahMemoText;
2090
2145
  exports.pad2 = pad2;
2091
2146
  exports.pad4 = pad4;
2092
2147
  exports.renderTitleWithoutTime = renderTitleWithoutTime;
2148
+ exports.shouldRenderBrief = shouldRenderBrief;
2093
2149
  exports.timeZoneOffsetStr = timeZoneOffsetStr;
2094
2150
  exports.toISOString = toISOString;
2095
2151
  exports.toISOStringWithTimezone = toISOStringWithTimezone;
@@ -1,2 +1,2 @@
1
- /*! @hebcal/rest-api v3.8.5 */
2
- var hebcal__rest_api=function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var r=n(hebcal__leyning),o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(e){return e&&e.Math==Math&&e},s=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof o&&o)||function(){return this}()||Function("return this")(),h={},c=function(e){try{return!!e()}catch(e){return!0}},l=!c((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u=Function.prototype.call,d=u.bind?u.bind(u):function(){return u.apply(u,arguments)},f={},m={}.propertyIsEnumerable,g=Object.getOwnPropertyDescriptor,b=g&&!m.call({1:2},1);f.f=b?function(e){var t=g(this,e);return!!t&&t.enumerable}:m;var y,p,S=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},v=Function.prototype,w=v.bind,A=v.call,H=w&&w.bind(A),T=w?function(e){return e&&H(A,e)}:function(e){return e&&function(){return A.apply(e,arguments)}},C=T,I=C({}.toString),R=C("".slice),O=function(e){return R(I(e),8,-1)},E=T,M=c,B=O,P=s.Object,D=E("".split),F=M((function(){return!P("z").propertyIsEnumerable(0)}))?function(e){return"String"==B(e)?D(e,""):P(e)}:P,k=s.TypeError,N=function(e){if(null==e)throw k("Can't call method on "+e);return e},L=F,x=N,G=function(e){return L(x(e))},j=function(e){return"function"==typeof e},_=j,Y=function(e){return"object"==typeof e?null!==e:_(e)},z=s,U=j,K=function(e){return U(e)?e:void 0},J=function(e,t){return arguments.length<2?K(z[e]):z[e]&&z[e][t]},Z=T({}.isPrototypeOf),W=s,V=J("navigator","userAgent")||"",$=W.process,q=W.Deno,Q=$&&$.versions||q&&q.version,X=Q&&Q.v8;X&&(p=(y=X.split("."))[0]>0&&y[0]<4?1:+(y[0]+y[1])),!p&&V&&(!(y=V.match(/Edge\/(\d+)/))||y[1]>=74)&&(y=V.match(/Chrome\/(\d+)/))&&(p=+y[1]);var ee=p,te=c,ae=!!Object.getOwnPropertySymbols&&!te((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ee&&ee<41})),ne=ae&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,re=J,oe=j,ie=Z,se=ne,he=s.Object,ce=se?function(e){return"symbol"==typeof e}:function(e){var t=re("Symbol");return oe(t)&&ie(t.prototype,he(e))},le=s.String,ue=j,de=function(e){try{return le(e)}catch(e){return"Object"}},fe=s.TypeError,me=function(e){if(ue(e))return e;throw fe(de(e)+" is not a function")},ge=d,be=j,ye=Y,pe=s.TypeError,Se={exports:{}},ve=s,we=Object.defineProperty,Ae=function(e,t){try{we(ve,e,{value:t,configurable:!0,writable:!0})}catch(a){ve[e]=t}return t},He=Ae,Te="__core-js_shared__",Ce=s[Te]||He(Te,{}),Ie=Ce;(Se.exports=function(e,t){return Ie[e]||(Ie[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.19.0",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Re=N,Oe=s.Object,Ee=function(e){return Oe(Re(e))},Me=T({}.hasOwnProperty),Be=Object.hasOwn||function(e,t){return Me(Ee(e),t)},Pe=T,De=0,Fe=Math.random(),ke=Pe(1..toString),Ne=function(e){return"Symbol("+(void 0===e?"":e)+")_"+ke(++De+Fe,36)},Le=s,xe=Se.exports,Ge=Be,je=Ne,_e=ae,Ye=ne,ze=xe("wks"),Ue=Le.Symbol,Ke=Ue&&Ue.for,Je=Ye?Ue:Ue&&Ue.withoutSetter||je,Ze=function(e){if(!Ge(ze,e)||!_e&&"string"!=typeof ze[e]){var t="Symbol."+e;_e&&Ge(Ue,e)?ze[e]=Ue[e]:ze[e]=Ye&&Ke?Ke(t):Je(t)}return ze[e]},We=d,Ve=Y,$e=ce,qe=function(e,t){var a=e[t];return null==a?void 0:me(a)},Qe=function(e,t){var a,n;if("string"===t&&be(a=e.toString)&&!ye(n=ge(a,e)))return n;if(be(a=e.valueOf)&&!ye(n=ge(a,e)))return n;if("string"!==t&&be(a=e.toString)&&!ye(n=ge(a,e)))return n;throw pe("Can't convert object to primitive value")},Xe=Ze,et=s.TypeError,tt=Xe("toPrimitive"),at=function(e,t){if(!Ve(e)||$e(e))return e;var a,n=qe(e,tt);if(n){if(void 0===t&&(t="default"),a=We(n,e,t),!Ve(a)||$e(a))return a;throw et("Can't convert object to primitive value")}return void 0===t&&(t="number"),Qe(e,t)},nt=ce,rt=function(e){var t=at(e,"string");return nt(t)?t:t+""},ot=Y,it=s.document,st=ot(it)&&ot(it.createElement),ht=function(e){return st?it.createElement(e):{}},ct=ht,lt=!l&&!c((function(){return 7!=Object.defineProperty(ct("div"),"a",{get:function(){return 7}}).a})),ut=l,dt=d,ft=f,mt=S,gt=G,bt=rt,yt=Be,pt=lt,St=Object.getOwnPropertyDescriptor;h.f=ut?St:function(e,t){if(e=gt(e),t=bt(t),pt)try{return St(e,t)}catch(e){}if(yt(e,t))return mt(!dt(ft.f,e,t),e[t])};var vt={},wt=s,At=Y,Ht=wt.String,Tt=wt.TypeError,Ct=function(e){if(At(e))return e;throw Tt(Ht(e)+" is not an object")},It=l,Rt=lt,Ot=Ct,Et=rt,Mt=s.TypeError,Bt=Object.defineProperty;vt.f=It?Bt:function(e,t,a){if(Ot(e),t=Et(t),Ot(a),Rt)try{return Bt(e,t,a)}catch(e){}if("get"in a||"set"in a)throw Mt("Accessors not supported");return"value"in a&&(e[t]=a.value),e};var Pt=vt,Dt=S,Ft=l?function(e,t,a){return Pt.f(e,t,Dt(1,a))}:function(e,t,a){return e[t]=a,e},kt={exports:{}},Nt=j,Lt=Ce,xt=T(Function.toString);Nt(Lt.inspectSource)||(Lt.inspectSource=function(e){return xt(e)});var Gt,jt,_t,Yt=Lt.inspectSource,zt=j,Ut=Yt,Kt=s.WeakMap,Jt=zt(Kt)&&/native code/.test(Ut(Kt)),Zt=Se.exports,Wt=Ne,Vt=Zt("keys"),$t=function(e){return Vt[e]||(Vt[e]=Wt(e))},qt={},Qt=Jt,Xt=s,ea=T,ta=Y,aa=Ft,na=Be,ra=Ce,oa=$t,ia=qt,sa="Object already initialized",ha=Xt.TypeError,ca=Xt.WeakMap;if(Qt||ra.state){var la=ra.state||(ra.state=new ca),ua=ea(la.get),da=ea(la.has),fa=ea(la.set);Gt=function(e,t){if(da(la,e))throw new ha(sa);return t.facade=e,fa(la,e,t),t},jt=function(e){return ua(la,e)||{}},_t=function(e){return da(la,e)}}else{var ma=oa("state");ia[ma]=!0,Gt=function(e,t){if(na(e,ma))throw new ha(sa);return t.facade=e,aa(e,ma,t),t},jt=function(e){return na(e,ma)?e[ma]:{}},_t=function(e){return na(e,ma)}}var ga={set:Gt,get:jt,has:_t,enforce:function(e){return _t(e)?jt(e):Gt(e,{})},getterFor:function(e){return function(t){var a;if(!ta(t)||(a=jt(t)).type!==e)throw ha("Incompatible receiver, "+e+" required");return a}}},ba=l,ya=Be,pa=Function.prototype,Sa=ba&&Object.getOwnPropertyDescriptor,va=ya(pa,"name"),wa=va&&"something"===function(){}.name,Aa=va&&(!ba||ba&&Sa(pa,"name").configurable),Ha=s,Ta=j,Ca=Be,Ia=Ft,Ra=Ae,Oa=Yt,Ea={EXISTS:va,PROPER:wa,CONFIGURABLE:Aa}.CONFIGURABLE,Ma=ga.get,Ba=ga.enforce,Pa=String(String).split("String");(kt.exports=function(e,t,a,n){var r,o=!!n&&!!n.unsafe,i=!!n&&!!n.enumerable,s=!!n&&!!n.noTargetGet,h=n&&void 0!==n.name?n.name:t;Ta(a)&&("Symbol("===String(h).slice(0,7)&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Ca(a,"name")||Ea&&a.name!==h)&&Ia(a,"name",h),(r=Ba(a)).source||(r.source=Pa.join("string"==typeof h?h:""))),e!==Ha?(o?!s&&e[t]&&(i=!0):delete e[t],i?e[t]=a:Ia(e,t,a)):i?e[t]=a:Ra(t,a)})(Function.prototype,"toString",(function(){return Ta(this)&&Ma(this).source||Oa(this)}));var Da={},Fa=Math.ceil,ka=Math.floor,Na=function(e){var t=+e;return t!=t||0===t?0:(t>0?ka:Fa)(t)},La=Na,xa=Math.max,Ga=Math.min,ja=Na,_a=Math.min,Ya=function(e){return e>0?_a(ja(e),9007199254740991):0},za=G,Ua=function(e,t){var a=La(e);return a<0?xa(a+t,0):Ga(a,t)},Ka=function(e){return Ya(e.length)},Ja=function(e){return function(t,a,n){var r,o=za(t),i=Ka(o),s=Ua(n,i);if(e&&a!=a){for(;i>s;)if((r=o[s++])!=r)return!0}else for(;i>s;s++)if((e||s in o)&&o[s]===a)return e||s||0;return!e&&-1}},Za={includes:Ja(!0),indexOf:Ja(!1)},Wa=Be,Va=G,$a=Za.indexOf,qa=qt,Qa=T([].push),Xa=function(e,t){var a,n=Va(e),r=0,o=[];for(a in n)!Wa(qa,a)&&Wa(n,a)&&Qa(o,a);for(;t.length>r;)Wa(n,a=t[r++])&&(~$a(o,a)||Qa(o,a));return o},en=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],tn=Xa,an=en.concat("length","prototype");Da.f=Object.getOwnPropertyNames||function(e){return tn(e,an)};var nn={};nn.f=Object.getOwnPropertySymbols;var rn=J,on=Da,sn=nn,hn=Ct,cn=T([].concat),ln=rn("Reflect","ownKeys")||function(e){var t=on.f(hn(e)),a=sn.f;return a?cn(t,a(e)):t},un=Be,dn=ln,fn=h,mn=vt,gn=c,bn=j,yn=/#|\.prototype\./,pn=function(e,t){var a=vn[Sn(e)];return a==An||a!=wn&&(bn(t)?gn(t):!!t)},Sn=pn.normalize=function(e){return String(e).replace(yn,".").toLowerCase()},vn=pn.data={},wn=pn.NATIVE="N",An=pn.POLYFILL="P",Hn=pn,Tn=s,Cn=h.f,In=Ft,Rn=kt.exports,On=Ae,En=function(e,t){for(var a=dn(t),n=mn.f,r=fn.f,o=0;o<a.length;o++){var i=a[o];un(e,i)||n(e,i,r(t,i))}},Mn=Hn,Bn={};Bn[Ze("toStringTag")]="z";var Pn=s,Dn="[object z]"===String(Bn),Fn=j,kn=O,Nn=Ze("toStringTag"),Ln=Pn.Object,xn="Arguments"==kn(function(){return arguments}()),Gn=Dn?kn:function(e){var t,a,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(a=function(e,t){try{return e[t]}catch(e){}}(t=Ln(e),Nn))?a:xn?kn(t):"Object"==(n=kn(t))&&Fn(t.callee)?"Arguments":n},jn=s.String,_n=Ct,Yn={},zn=c,Un=s.RegExp;Yn.UNSUPPORTED_Y=zn((function(){var e=Un("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),Yn.BROKEN_CARET=zn((function(){var e=Un("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var Kn,Jn=Xa,Zn=en,Wn=Object.keys||function(e){return Jn(e,Zn)},Vn=vt,$n=Ct,qn=G,Qn=Wn,Xn=l?Object.defineProperties:function(e,t){$n(e);for(var a,n=qn(t),r=Qn(t),o=r.length,i=0;o>i;)Vn.f(e,a=r[i++],n[a]);return e},er=J("document","documentElement"),tr=Ct,ar=Xn,nr=en,rr=qt,or=er,ir=ht,sr=$t("IE_PROTO"),hr=function(){},cr=function(e){return"<script>"+e+"</"+"script>"},lr=function(e){e.write(cr("")),e.close();var t=e.parentWindow.Object;return e=null,t},ur=function(){try{Kn=new ActiveXObject("htmlfile")}catch(e){}var e,t;ur="undefined"!=typeof document?document.domain&&Kn?lr(Kn):((t=ir("iframe")).style.display="none",or.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(cr("document.F=Object")),e.close(),e.F):lr(Kn);for(var a=nr.length;a--;)delete ur.prototype[nr[a]];return ur()};rr[sr]=!0;var dr,fr,mr=Object.create||function(e,t){var a;return null!==e?(hr.prototype=tr(e),a=new hr,hr.prototype=null,a[sr]=e):a=ur(),void 0===t?a:ar(a,t)},gr=c,br=s.RegExp,yr=gr((function(){var e=br(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)})),pr=c,Sr=s.RegExp,vr=pr((function(){var e=Sr("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),wr=d,Ar=T,Hr=function(e){if("Symbol"===Gn(e))throw TypeError("Cannot convert a Symbol value to a string");return jn(e)},Tr=function(){var e=_n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},Cr=Yn,Ir=Se.exports,Rr=mr,Or=ga.get,Er=yr,Mr=vr,Br=Ir("native-string-replace",String.prototype.replace),Pr=RegExp.prototype.exec,Dr=Pr,Fr=Ar("".charAt),kr=Ar("".indexOf),Nr=Ar("".replace),Lr=Ar("".slice),xr=(fr=/b*/g,wr(Pr,dr=/a/,"a"),wr(Pr,fr,"a"),0!==dr.lastIndex||0!==fr.lastIndex),Gr=Cr.UNSUPPORTED_Y||Cr.BROKEN_CARET,jr=void 0!==/()??/.exec("")[1];(xr||jr||Gr||Er||Mr)&&(Dr=function(e){var t,a,n,r,o,i,s,h=this,c=Or(h),l=Hr(e),u=c.raw;if(u)return u.lastIndex=h.lastIndex,t=wr(Dr,u,l),h.lastIndex=u.lastIndex,t;var d=c.groups,f=Gr&&h.sticky,m=wr(Tr,h),g=h.source,b=0,y=l;if(f&&(m=Nr(m,"y",""),-1===kr(m,"g")&&(m+="g"),y=Lr(l,h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&"\n"!==Fr(l,h.lastIndex-1))&&(g="(?: "+g+")",y=" "+y,b++),a=new RegExp("^(?:"+g+")",m)),jr&&(a=new RegExp("^"+g+"$(?!\\s)",m)),xr&&(n=h.lastIndex),r=wr(Pr,f?a:h,y),f?r?(r.input=Lr(r.input,b),r[0]=Lr(r[0],b),r.index=h.lastIndex,h.lastIndex+=r[0].length):h.lastIndex=0:xr&&r&&(h.lastIndex=h.global?r.index+r[0].length:n),jr&&r&&r.length>1&&wr(Br,r[0],a,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r&&d)for(r.groups=i=Rr(null),o=0;o<d.length;o++)i[(s=d[o])[0]]=r[s[1]];return r});(function(e,t){var a,n,r,o,i,s=e.target,h=e.global,c=e.stat;if(a=h?Tn:c?Tn[s]||On(s,{}):(Tn[s]||{}).prototype)for(n in t){if(o=t[n],r=e.noTargetGet?(i=Cn(a,n))&&i.value:a[n],!Mn(h?n:s+(c?".":"#")+n,e.forced)&&void 0!==r){if(typeof o==typeof r)continue;En(o,r)}(e.sham||r&&r.sham)&&In(o,"sham",!0),Rn(a,n,o,e)}})({target:"RegExp",proto:!0,forced:/./.exec!==Dr},{exec:Dr});var _r={"Asara B'Tevet":"Fast commemorating the siege of Jerusalem",Chanukah:"Hanukkah, the Jewish festival of rededication. Also known as the Festival of Lights","Days of the Omer":"7 weeks from the second night of Pesach to the day before Shavuot","Lag BaOmer":"33rd day of counting the Omer","Leil Selichot":"Prayers for forgiveness in preparation for the High Holidays","Pesach Sheni":"Second Passover, one month after Passover",Pesach:"Passover, the Feast of Unleavened Bread. Also called Chag HaMatzot (the Festival of Matzah), it commemorates the Exodus and freedom of the Israelites from ancient Egypt","Purim Katan":"Minor Purim celebration during Adar I on leap years",Purim:"Celebration of Jewish deliverance as told by Megilat Esther. It commemorates a time when the Jewish people living in Persia were saved from extermination","Rosh Chodesh Nisan":"Start of month of Nisan on the Hebrew calendar. נִיסָן (transliterated Nisan or Nissan) is the 1st month of the Hebrew year, has 30 days, and corresponds to March or April on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Iyyar":"Start of month of Iyyar on the Hebrew calendar. אִיָיר (transliterated Iyyar or Iyar) is the 2nd month of the Hebrew year, has 29 days, and corresponds to April or May on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Sivan":"Start of month of Sivan on the Hebrew calendar. Sivan (סִיוָן) is the 3rd month of the Hebrew year, has 30 days, and corresponds to May or June on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Tamuz":"Start of month of Tamuz on the Hebrew calendar. תַּמּוּז (transliterated Tamuz or Tammuz) is the 4th month of the Hebrew year, has 29 days, and corresponds to June or July on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Av":"Start of month of Av on the Hebrew calendar. Av (אָב) is the 5th month of the Hebrew year, has 30 days, and corresponds to July or August on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Elul":"Start of month of Elul on the Hebrew calendar. Elul (אֱלוּל) is the 6th month of the Hebrew year, has 29 days, and corresponds to August or September on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Cheshvan":"Start of month of Cheshvan on the Hebrew calendar. חֶשְׁוָן (transliterated Cheshvan or Heshvan) is the 8th month of the Hebrew year, has 29 or 30 days, and corresponds to October or November on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Kislev":"Start of month of Kislev on the Hebrew calendar. Kislev (כִּסְלֵו) is the 9th month of the Hebrew year, has 30 or 29 days, and corresponds to November or December on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Tevet":"Start of month of Tevet on the Hebrew calendar. Tevet (טֵבֵת) is the 10th month of the Hebrew year, has 29 days, and corresponds to December or January on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Sh'vat":"Start of month of Sh'vat on the Hebrew calendar. שְׁבָט (transliterated Sh'vat or Shevat) is the 11th month of the Hebrew year, has 30 days, and corresponds to January or February on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Adar":"Start of month of Adar on the Hebrew calendar. Adar (אַדָר) is the 12th month of the Hebrew year, has 29 days, and corresponds to February or March on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Adar I":"Start of month of Adar I (on leap years) on the Hebrew calendar. Adar I (אַדָר א׳) is the 12th month of the Hebrew year, occurs only on leap years, has 30 days, and corresponds to February or March on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Adar II":'Start of month of Adar II (on leap years) on the Hebrew calendar. Adar II (אַדָר ב׳), sometimes "Adar Bet" or "Adar Sheni", is the 13th month of the Hebrew year, has 29 days, occurs only on leap years, and corresponds to February or March on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon',"Rosh Hashana":"The Jewish New Year. Also spelled Rosh Hashanah","Rosh Hashana LaBehemot":"New Year for Tithing Animals","Shabbat Chazon":"Shabbat before Tish'a B'Av (Shabbat of Prophecy/Shabbat of Vision)","Shabbat HaChodesh":"Shabbat before Rosh Chodesh Nissan","Shabbat HaGadol":"Shabbat before Pesach","Shabbat Machar Chodesh":"When Shabbat falls the day before Rosh Chodesh","Shabbat Nachamu":"Shabbat after Tish'a B'Av (Shabbat of Consolation). The first of seven Shabbatot leading up to Rosh Hashanah. Named after the Haftarah (from Isaiah 40) which begins with the verse נַחֲמוּ נַחֲמוּ, עַמִּי (\"Comfort, oh comfort my people\")","Shabbat Parah":"Shabbat of the Red Heifer","Shabbat Rosh Chodesh":"When Shabbat falls on Rosh Chodesh","Shabbat Shekalim":"Shabbat before Rosh Chodesh Adar","Shabbat Shirah":"Shabbat of Song","Shabbat Shuva":"Shabbat that falls between Rosh Hashanah and Yom Kippur (Shabbat of Returning)","Shabbat Zachor":"Shabbat before Purim",Shavuot:"Festival of Weeks. Commemorates the giving of the Torah at Mount Sinai","Shmini Atzeret":"Eighth Day of Assembly","Shushan Purim":"Purim celebrated in Jerusalem and walled cities",Sigd:"Ethiopian Jewish holiday occurring 50 days after Yom Kippur","Simchat Torah":"Day of Celebrating the Torah",Sukkot:"Feast of Booths","Ta'anit Bechorot":"Fast of the First Born","Ta'anit Esther":"Fast of Esther","Tish'a B'Av":"The Ninth of Av. Fast commemorating the destruction of the two Temples","Tu B'Av":"Minor Jewish holiday of love. Observed on the 15th day of the Hebrew month of Av","Tu BiShvat":"New Year for Trees","Tzom Gedaliah":"Fast of the Seventh Month. Commemorates the assassination of the Jewish governor of Judah","Tzom Tammuz":"Fast commemorating breaching of the walls of Jerusalem before the destruction of the Second Temple","Yom HaAliyah":"Recognizes Aliyah, immigration to the Jewish State of Israel","Yom HaAliyah School Observance":"Aliyah Day observed in Israeli schools","Yom HaAtzma'ut":"Israeli Independence Day. Commemorates the declaration of independence of Israel in 1948. Note that Hebcal displays modern holidays like Yom HaAtzma'ut according to the Israeli schedule. Although Yom HaAtzma'ut is normally observed on the 5th of Iyyar, it may be moved earlier or postponed if observance of the holiday (or Yom HaZikaron, which always precedes it) would conflict with Shabbat","Yom HaShoah":"Holocaust Memorial Day","Yom HaZikaron":"Israeli Memorial Day. Note that Hebcal displays modern holidays like Yom HaZikaron according to the Israeli schedule. Although Yom Hazikaron is normally observed on the 4th of Iyyar, it may be moved earlier or postponed if observance of the holiday (or Yom HaAtzma'ut, which always follows it) would conflict with Shabbat","Yom Kippur":"Day of Atonement","Yom Yerushalayim":"Jerusalem Day. Commemorates the re-unification of Jerusalem in 1967"};function Yr(e){return e.toLowerCase().replace(/'/g,"").replace(/[^\w]/g,"-").replace(/-+/g,"-").replace(/^-/g,"").replace(/-$/g,"")}function zr(e){return e<10?"0"+e:String(e)}function Ur(e){return e<0?"-00"+Ur(-e):e<10?"000"+e:e<100?"00"+e:e<1e3?"0"+e:String(e)}function Kr(e){return Ur(e.getFullYear())+"-"+zr(e.getMonth()+1)+"-"+zr(e.getDate())}function Jr(e){const a=e.getDesc();if("Fast begins"===a||"Fast ends"===a)return["zmanim","fast"];switch(e.getFlags()){case t.flags.OMER_COUNT:return["omer"];case t.flags.HEBREW_DATE:return["hebdate"];case t.flags.PARSHA_HASHAVUA:return["parashat"];case t.flags.DAF_YOMI:return["dafyomi"];case t.flags.ROSH_CHODESH:return["roshchodesh"];case t.flags.SPECIAL_SHABBAT:return["holiday","shabbat"];case t.flags.MINOR_FAST:return["holiday","fast"];case t.flags.MAJOR_FAST:return["holiday","fast","major"];case t.flags.MODERN_HOLIDAY:return["holiday","modern"];case t.flags.SHABBAT_MEVARCHIM:return["mevarchim"];case t.flags.MOLAD:return["molad"];case t.flags.USER_EVENT:return["user"];case t.flags.MINOR_HOLIDAY:return["holiday","minor"]}if(e.cholHaMoedDay)return["holiday","major","cholhamoed"];switch(a){case"Havdalah":return["havdalah"];case"Candle lighting":return["candles"];case"Lag BaOmer":case"Leil Selichot":case"Pesach Sheni":case"Erev Purim":case"Purim Katan":case"Shushan Purim":case"Tu B'Av":case"Tu BiShvat":case"Rosh Hashana LaBehemot":return["holiday","minor"];case"Erev Tish'a B'Av":return["holiday","fast","major"];default:return["holiday","major"]}}function Zr(e,t){let a="Hebcal";const n=t.location;if(t.yahrzeit)a+=" Yahrzeits and Anniversaries";else if(n&&n.name){const e=n.name.indexOf(",");a+=" "+(-1==e?n.name:n.name.substring(0,e))}else t.il?a+=" Israel":a+=" Diaspora";if(t.isHebrewYear||0==e.length)a+=" "+t.year;else{const t=e[0].getDate().greg(),n=e[e.length-1].getDate().greg();if(t.getFullYear()!=n.getFullYear())a+=" "+t.getFullYear()+"-"+n.getFullYear();else if(t.getMonth()==n.getMonth()){a+=" "+new Intl.DateTimeFormat("en-US",{month:"long"}).format(t)+" "+t.getFullYear()}else a+=" "+t.getFullYear()}return a}function Wr(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a=_r[e.getDesc()]||_r[e.basename()]||"";if(t&&a){const e=a.indexOf(".");if(-1!=e)return a.substring(0,e)}return a}const Vr=t.flags.DAF_YOMI|t.flags.OMER_COUNT|t.flags.SHABBAT_MEVARCHIM|t.flags.MOLAD|t.flags.USER_EVENT|t.flags.HEBREW_DATE;function $r(e,a){const n=e.getFlags();if(n&Vr)return"";const o=n&t.flags.PARSHA_HASHAVUA?r.getLeyningForParshaHaShavua(e,a):r.getLeyningForHoliday(e,a);let i="";return o&&(o.summary||o.haftara)&&(o.summary&&(i+="Torah: ".concat(o.summary)),o.summary&&o.haftara&&(i+="\n"),o.haftara&&(i+="Haftarah: "+o.haftara,o.reason&&o.reason.haftara&&(i+=" | "+o.reason.haftara))),o&&o.sephardic&&(i+="\nHaftarah for Sephardim: "+o.sephardic),i}function qr(e,t,a,n,r){"https://www.hebcal.com"!==e.substring(0,22)?a="hebcal.com":t&&-1===e.indexOf("?")&&(e+="?i=on");const o=-1===e.indexOf("?")?"?":"&";return e+o+"utm_source=".concat(a,"&utm_medium=").concat(n)+(r?"&utm_campaign=".concat(r):"")}const Qr='"Subject","Start Date","Start Time","End Date","End Time","All day event","Description","Show time as","Location"',Xr={dafyomi:"Daf Yomi",hebdate:"Hebrew Date",holiday:"Jewish Holidays",mevarchim:null,molad:null,omer:null,parashat:"Torah Reading",roshchodesh:"Jewish Holidays",user:"Personal"};function eo(e,a){const n=e.getDate().greg(),r=n.getDate(),o=n.getMonth()+1,i=String(n.getFullYear()).padStart(4,"0"),s=a.euro?'"'.concat(r,"/").concat(o,"/").concat(i,'"'):'"'.concat(o,"/").concat(r,"/").concat(i,'"');let h="",c="",l="",u='"true"';const d=Boolean(e.eventTime);let f=d?e.renderBrief():e.render();if(e.eventTime){const n=t.HebrewCalendar.reformatTimeStr(e.eventTimeStr," PM",a);c=h='"'.concat(n,'"'),l=s,u='"false"'}let m="Jewish Holidays";const g=e.getFlags();if(d&&a.location&&a.location.name){const e=a.location.name,t=e.indexOf(",");m=-1===t?e:e.substring(0,t)}else if(g&t.flags.DAF_YOMI){const e=f.indexOf(": ");-1!=e&&(m=f.substring(0,e),f=f.substring(e+2))}else{const t=Xr[Jr(e)[0]];t&&(m=t)}if(f=f.replace(/,/g,"").replace(/"/g,"''"),a.appendHebrewToSubject){const t=e.renderBrief("he");t&&(f+=" / ".concat(t))}let b=e.memo||Wr(e,!0);b||void 0===e.linkedEvent||(b=e.linkedEvent.render());const y=b.replace(/,/g,";").replace(/"/g,"''"),p=d||g&t.flags.CHAG?4:3;return'"'.concat(f,'",').concat(s,",").concat(h,",").concat(l,",").concat(c,",").concat(u,',"').concat(y,'","').concat(p,'","').concat(m,'"')}var to={AD:"Andorra",AE:"United Arab Emirates",AF:"Afghanistan",AI:"Anguilla",AL:"Albania",AM:"Armenia",AO:"Angola",AR:"Argentina",AS:"American Samoa",AT:"Austria",AU:"Australia",AW:"Aruba",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BB:"Barbados",BD:"Bangladesh",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BM:"Bermuda",BN:"Brunei",BO:"Bolivia",BR:"Brazil",BS:"Bahamas",BT:"Bhutan",BW:"Botswana",BY:"Belarus",BZ:"Belize",CA:"Canada",CD:"Democratic Republic of the Congo",CF:"Central African Republic",CG:"Republic of the Congo",CH:"Switzerland",CI:"Ivory Coast",CK:"Cook Islands",CL:"Chile",CM:"Cameroon",CN:"China",CO:"Colombia",CR:"Costa Rica",CU:"Cuba",CV:"Cape Verde",CW:"Curacao",CY:"Cyprus",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",DM:"Dominica",DO:"Dominican Republic",DZ:"Algeria",EC:"Ecuador",EE:"Estonia",EG:"Egypt",ER:"Eritrea",ES:"Spain",ET:"Ethiopia",FI:"Finland",FJ:"Fiji",FK:"Falkland Islands",FO:"Faroe Islands",FR:"France",GA:"Gabon",GB:"United Kingdom",GE:"Georgia",GH:"Ghana",GI:"Gibraltar",GL:"Greenland",GM:"Gambia",GN:"Guinea",GQ:"Equatorial Guinea",GR:"Greece",GT:"Guatemala",GW:"Guinea-Bissau",GY:"Guyana",HK:"Hong Kong",HN:"Honduras",HR:"Croatia",HT:"Haiti",HU:"Hungary",ID:"Indonesia",IE:"Ireland",IL:"Israel",IM:"Isle of Man",IN:"India",IQ:"Iraq",IR:"Iran",IS:"Iceland",IT:"Italy",JM:"Jamaica",JO:"Jordan",JP:"Japan",KE:"Kenya",KG:"Kyrgyzstan",KH:"Cambodia",KM:"Comoros",KN:"Saint Kitts and Nevis",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KY:"Cayman Islands",KZ:"Kazakhstan",LA:"Laos",LB:"Lebanon",LC:"Saint Lucia",LI:"Liechtenstein",LR:"Liberia",LS:"Lesotho",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",LY:"Libya",MA:"Morocco",MD:"Moldova",ME:"Montenegro",MG:"Madagascar",MK:"Macedonia",ML:"Mali",MM:"Myanmar",MN:"Mongolia",MP:"Northern Mariana Islands",MR:"Mauritania",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MW:"Malawi",MX:"Mexico",MY:"Malaysia",MZ:"Mozambique",NA:"Namibia",NC:"New Caledonia",NE:"Niger",NG:"Nigeria",NI:"Nicaragua",NL:"Netherlands",NO:"Norway",NP:"Nepal",NU:"Niue",NZ:"New Zealand",OM:"Oman",PA:"Panama",PE:"Peru",PF:"French Polynesia",PG:"Papua New Guinea",PH:"Philippines",PK:"Pakistan",PL:"Poland",PR:"Puerto Rico",PT:"Portugal",PY:"Paraguay",QA:"Qatar",RO:"Romania",RS:"Serbia",RU:"Russia",RW:"Rwanda",SA:"Saudi Arabia",SB:"Solomon Islands",SC:"Seychelles",SD:"Sudan",SE:"Sweden",SG:"Singapore",SH:"Saint Helena",SI:"Slovenia",SK:"Slovakia",SL:"Sierra Leone",SN:"Senegal",SO:"Somalia",SR:"Suriname",ST:"Sao Tome and Principe",SV:"El Salvador",SY:"Syria",SZ:"Swaziland",TC:"Turks and Caicos Islands",TD:"Chad",TG:"Togo",TH:"Thailand",TJ:"Tajikistan",TM:"Turkmenistan",TN:"Tunisia",TR:"Turkey",TV:"Tuvalu",TW:"Taiwan",TZ:"Tanzania",UA:"Ukraine",UG:"Uganda",US:"United States",UY:"Uruguay",UZ:"Uzbekistan",VC:"Saint Vincent and the Grenadines",VE:"Venezuela",VG:"British Virgin Islands",VN:"Vietnam",WS:"Samoa",YE:"Yemen",YT:"Mayotte",ZA:"South Africa",ZM:"Zambia",ZW:"Zimbabwe"};const ao=t.flags.DAF_YOMI|t.flags.HEBREW_DATE;function no(e,a){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const o=Boolean(e.eventTime),i=e.getDate(),s=i.greg(),h="object"==typeof a.location?a.location.getTzid():"UTC",c=o?t.Zmanim.formatISOWithTimeZone(h,e.eventTime):Kr(s),l=Jr(e),u=e.getFlags();let d=o||u&ao?e.renderBrief(a.locale):e.render(a.locale);const f=e.getDesc(),m="Havdalah"===f||"Candle lighting"===f;if(m){d+=": "+t.HebrewCalendar.reformatTimeStr(e.eventTimeStr,"pm",a)}const g={title:d,date:c,category:l[0]};l.length>1&&(g.subcat=l[1]),"holiday"===l[0]&&u&t.flags.CHAG&&(g.yomtov=!0),d!=f&&(g.title_orig=f);const b=e.renderBrief("he");if(b&&(g.hebrew=t.Locale.hebrewStripNikkud(b)),!m){if(n){const n=a.il,o=u===t.flags.PARSHA_HASHAVUA,s=o?r.getLeyningForParshaHaShavua(e,n):r.getLeyningForHoliday(e,n);if(s){g.leyning=oo(s);const t=i.getFullYear();if(o&&!n&&t>=5745&&t<=5830){const t=r.getTriennialForParshaHaShavua(e);t&&(g.leyning.triennial=ro({},t))}}}const o=e.url();if(o){const e=a.utmSource||"js",t=a.utmMedium||"api",n=a.utmCampaign;g.link=qr(o,a.il,e,t,n)}}const y=e.memo||_r[e.basename()];return y?g.memo=y:void 0!==e.linkedEvent&&(g.memo=e.linkedEvent.render(a.locale)),g}function ro(e,t){return Object.keys(t).forEach((a=>{const n=t[a];if(void 0!==n){e["M"==a?"maftir":a]=r.formatAliyahWithBook(n)}})),e}function oo(e){const t={};return e.summary&&(t.torah=e.summary),e.haftara&&(t.haftarah=e.haftara),e.sephardic&&(t.haftarah_sephardic=e.sephardic),e.fullkriyah&&ro(t,e.fullkriyah),e.reason&&(["7","8","M"].forEach((a=>{if(e.reason[a]){t["M"==a?"maftir":a]+=" | "+e.reason[a]}})),e.reason.haftara&&(t.haftarah+=" | "+e.reason.haftara)),t}function io(e,a,n,r,o,i){let s=e.render();const h=e.getDate().greg(),c=function(e,t,a,n){if(t){const t=e.eventTime;return t?t.toUTCString():a.toUTCString().replace(/ \S+ GMT$/," 00:00:00 GMT")}return n}(e,a,h,n),l=!!o&&o.getIsrael(),u=function(e,a,n,r){let o,i;const s=e.eventTime||e.getDate().greg(),h=t.Zmanim.formatISOWithTimeZone(n,s),c=h.substring(0,h.indexOf("T")),l=c.replace(/-/g,""),u=Yr(e.getDesc()),d="".concat(l,"-").concat(u),f=e.url();if(f)o=qr(f,a,"shabbat1c","rss").replace(/&/g,"&amp;"),i="".concat(f,"#").concat(d);else{const e="".concat(r,"&dt=").concat(c),t=qr(e,a,"shabbat1c","rss").replace(/&/g,"&amp;");i=e.replace(/&/g,"&amp;")+"#".concat(d),o="".concat(t,"#").concat(d)}return[o,i]}(e,l,o?o.getTzid():"UTC",i),d=u[0],f=u[1],m=Jr(e)[0],g=e.getDesc();let b;if("Havdalah"===g||"Candle lighting"===g){const a=s.indexOf(": ");if(-1!=a){const n={location:o,il:l,locale:t.Locale.getLocaleName()},r=t.HebrewCalendar.reformatTimeStr(e.eventTimeStr,"pm",n);s=s.substring(0,a)+": "+r}}else b=e.getFlags()&t.flags.PARSHA_HASHAVUA?$r(e,l):e.memo||_r[e.basename()];const y=b||r.format(h),p="candles"==m?"<geo:lat>".concat(o.getLatitude(),"</geo:lat>\n<geo:long>").concat(o.getLongitude(),"</geo:long>\n"):"";return"<item>\n<title>".concat(s,"</title>\n<link>").concat(d,'</link>\n<guid isPermaLink="false">').concat(f,"</guid>\n<description>").concat(y,"</description>\n<category>").concat(m,"</category>\n<pubDate>").concat(c,"</pubDate>\n").concat(p,"</item>\n")}const so=t.flags.DAF_YOMI|t.flags.HEBREW_DATE;return e.appendIsraelAndTracking=qr,e.countryNames=to,e.eventToClassicApiObject=no,e.eventToCsv=eo,e.eventToFullCalendar=function(e,a,n){const r=Jr(e),o=e.getFlags();"holiday"==r[0]&&o&t.flags.CHAG&&r.push("yomtov");const i=Boolean(e.eventTime),s={title:i||o&so?e.renderBrief():e.render(),start:i?t.Zmanim.formatISOWithTimeZone(a,e.eventTime):Kr(e.getDate().greg()),allDay:!i,className:r.join(" ")},h=e.renderBrief("he");h&&(s.hebrew=t.Locale.hebrewStripNikkud(h));const c=e.url();c&&(s.url=qr(c,n,"js","fc"));const l=e.getDesc();if(!("Havdalah"===l||"Candle lighting"===l)){const a=o&t.flags.PARSHA_HASHAVUA?$r(e,n):e.memo||_r[e.basename()];a?s.description=a:void 0!==e.linkedEvent&&(s.description=e.linkedEvent.render())}return s},e.eventToRssItem=io,e.eventsToClassicApi=function(e,t){let a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const n={title:Zr(e,t),date:(new Date).toISOString()},r=t.location;return"object"==typeof r&&"string"==typeof r.name?(n.location={title:r.getName(),city:r.getShortName(),tzid:r.getTzid(),latitude:r.getLatitude(),longitude:r.getLongitude(),cc:r.getCountryCode(),country:to[r.getCountryCode()]},["admin1","asciiname","geo","zip","state","geonameid"].forEach((e=>{r[e]&&(n.location[e]=r[e])}))):n.location={geo:"none"},n.items=e.map((e=>no(e,t,a))),n},e.eventsToCsv=function(e,t){return[Qr].concat(e.map((e=>eo(e,t)))).join("\r\n")+"\r\n"},e.eventsToRss=function(e,a,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"en-US",i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];const s=a.getName(),h=(new Date).getFullYear(),c=t.Locale.gettext("Shabbat")+" Times for "+s,l=(new Date).toUTCString(),u=new Intl.DateTimeFormat("en-US",{weekday:"long",day:"2-digit",month:"long",year:"numeric"}),d=qr(n,a.getIsrael(),"shabbat1c","rss").replace(/&/g,"&amp;");r=r.replace(/&/g,"&amp;");let f='<?xml version="1.0" encoding="UTF-8"?>\n<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom">\n<channel>\n<title>'.concat(c,"</title>\n<link>").concat(d,'</link>\n<atom:link href="').concat(r,'" rel="self" type="application/rss+xml" />\n<description>Weekly Shabbat candle lighting times for ').concat(s,"</description>\n<language>").concat(o,"</language>\n<copyright>Copyright (c) ").concat(h," Michael J. Radwin. All rights reserved.</copyright>\n<lastBuildDate>").concat(l,"</lastBuildDate>\n");return e.forEach((e=>{f+=io(e,i,l,u,a,n)})),f+="</channel>\n</rss>\n",f},e.getCalendarTitle=Zr,e.getDownloadFilename=function(e){let t="hebcal_"+e.year;if(e.isHebrewYear&&(t+="h"),e.month&&(t+="_"+e.month),e.location){t+="_"+Yr(e.location.zip||e.location.asciiname||e.location.getShortName()).replace(/[-]/g,"_")}return t},e.getEventCategories=Jr,e.getHolidayDescription=Wr,e.holidayDescription=_r,e.makeAnchor=Yr,e.makeTorahMemoText=$r,e.pad2=zr,e.pad4=Ur,e.renderTitleWithoutTime=function(e){return void 0===e.eventTime?e.render():e.renderBrief()},e.timeZoneOffsetStr=function(e,a){return t.Zmanim.timeZoneOffset(e,a)},e.toISOString=Kr,e.toISOStringWithTimezone=function(e,a,n){const r=Kr(e);return a?r+"T"+a+":00"+t.Zmanim.timeZoneOffset(n,e):r},Object.defineProperty(e,"__esModule",{value:!0}),e}({},hebcal);
1
+ /*! @hebcal/rest-api v3.10.0 */
2
+ var hebcal__rest_api=function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var r=n(hebcal__leyning),o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(e){return e&&e.Math==Math&&e},s=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof o&&o)||function(){return this}()||Function("return this")(),h={},c=function(e){try{return!!e()}catch(e){return!0}},l=!c((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),u=Function.prototype.call,d=u.bind?u.bind(u):function(){return u.apply(u,arguments)},f={},m={}.propertyIsEnumerable,g=Object.getOwnPropertyDescriptor,b=g&&!m.call({1:2},1);f.f=b?function(e){var t=g(this,e);return!!t&&t.enumerable}:m;var y,p,S=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},v=Function.prototype,w=v.bind,A=v.call,H=w&&w.bind(A),T=w?function(e){return e&&H(A,e)}:function(e){return e&&function(){return A.apply(e,arguments)}},C=T,I=C({}.toString),R=C("".slice),O=function(e){return R(I(e),8,-1)},E=T,M=c,B=O,P=s.Object,D=E("".split),F=M((function(){return!P("z").propertyIsEnumerable(0)}))?function(e){return"String"==B(e)?D(e,""):P(e)}:P,k=s.TypeError,N=function(e){if(null==e)throw k("Can't call method on "+e);return e},L=F,x=N,G=function(e){return L(x(e))},j=function(e){return"function"==typeof e},Y=j,_=function(e){return"object"==typeof e?null!==e:Y(e)},z=s,U=j,K=function(e){return U(e)?e:void 0},J=function(e,t){return arguments.length<2?K(z[e]):z[e]&&z[e][t]},Z=T({}.isPrototypeOf),W=s,V=J("navigator","userAgent")||"",$=W.process,q=W.Deno,Q=$&&$.versions||q&&q.version,X=Q&&Q.v8;X&&(p=(y=X.split("."))[0]>0&&y[0]<4?1:+(y[0]+y[1])),!p&&V&&(!(y=V.match(/Edge\/(\d+)/))||y[1]>=74)&&(y=V.match(/Chrome\/(\d+)/))&&(p=+y[1]);var ee=p,te=c,ae=!!Object.getOwnPropertySymbols&&!te((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&ee&&ee<41})),ne=ae&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,re=J,oe=j,ie=Z,se=ne,he=s.Object,ce=se?function(e){return"symbol"==typeof e}:function(e){var t=re("Symbol");return oe(t)&&ie(t.prototype,he(e))},le=s.String,ue=j,de=function(e){try{return le(e)}catch(e){return"Object"}},fe=s.TypeError,me=function(e){if(ue(e))return e;throw fe(de(e)+" is not a function")},ge=d,be=j,ye=_,pe=s.TypeError,Se={exports:{}},ve=s,we=Object.defineProperty,Ae=function(e,t){try{we(ve,e,{value:t,configurable:!0,writable:!0})}catch(a){ve[e]=t}return t},He=Ae,Te="__core-js_shared__",Ce=s[Te]||He(Te,{}),Ie=Ce;(Se.exports=function(e,t){return Ie[e]||(Ie[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.19.3",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Re=N,Oe=s.Object,Ee=function(e){return Oe(Re(e))},Me=T({}.hasOwnProperty),Be=Object.hasOwn||function(e,t){return Me(Ee(e),t)},Pe=T,De=0,Fe=Math.random(),ke=Pe(1..toString),Ne=function(e){return"Symbol("+(void 0===e?"":e)+")_"+ke(++De+Fe,36)},Le=s,xe=Se.exports,Ge=Be,je=Ne,Ye=ae,_e=ne,ze=xe("wks"),Ue=Le.Symbol,Ke=Ue&&Ue.for,Je=_e?Ue:Ue&&Ue.withoutSetter||je,Ze=function(e){if(!Ge(ze,e)||!Ye&&"string"!=typeof ze[e]){var t="Symbol."+e;Ye&&Ge(Ue,e)?ze[e]=Ue[e]:ze[e]=_e&&Ke?Ke(t):Je(t)}return ze[e]},We=d,Ve=_,$e=ce,qe=function(e,t){var a=e[t];return null==a?void 0:me(a)},Qe=function(e,t){var a,n;if("string"===t&&be(a=e.toString)&&!ye(n=ge(a,e)))return n;if(be(a=e.valueOf)&&!ye(n=ge(a,e)))return n;if("string"!==t&&be(a=e.toString)&&!ye(n=ge(a,e)))return n;throw pe("Can't convert object to primitive value")},Xe=Ze,et=s.TypeError,tt=Xe("toPrimitive"),at=function(e,t){if(!Ve(e)||$e(e))return e;var a,n=qe(e,tt);if(n){if(void 0===t&&(t="default"),a=We(n,e,t),!Ve(a)||$e(a))return a;throw et("Can't convert object to primitive value")}return void 0===t&&(t="number"),Qe(e,t)},nt=ce,rt=function(e){var t=at(e,"string");return nt(t)?t:t+""},ot=_,it=s.document,st=ot(it)&&ot(it.createElement),ht=function(e){return st?it.createElement(e):{}},ct=ht,lt=!l&&!c((function(){return 7!=Object.defineProperty(ct("div"),"a",{get:function(){return 7}}).a})),ut=l,dt=d,ft=f,mt=S,gt=G,bt=rt,yt=Be,pt=lt,St=Object.getOwnPropertyDescriptor;h.f=ut?St:function(e,t){if(e=gt(e),t=bt(t),pt)try{return St(e,t)}catch(e){}if(yt(e,t))return mt(!dt(ft.f,e,t),e[t])};var vt={},wt=s,At=_,Ht=wt.String,Tt=wt.TypeError,Ct=function(e){if(At(e))return e;throw Tt(Ht(e)+" is not an object")},It=l,Rt=lt,Ot=Ct,Et=rt,Mt=s.TypeError,Bt=Object.defineProperty;vt.f=It?Bt:function(e,t,a){if(Ot(e),t=Et(t),Ot(a),Rt)try{return Bt(e,t,a)}catch(e){}if("get"in a||"set"in a)throw Mt("Accessors not supported");return"value"in a&&(e[t]=a.value),e};var Pt=vt,Dt=S,Ft=l?function(e,t,a){return Pt.f(e,t,Dt(1,a))}:function(e,t,a){return e[t]=a,e},kt={exports:{}},Nt=j,Lt=Ce,xt=T(Function.toString);Nt(Lt.inspectSource)||(Lt.inspectSource=function(e){return xt(e)});var Gt,jt,Yt,_t=Lt.inspectSource,zt=j,Ut=_t,Kt=s.WeakMap,Jt=zt(Kt)&&/native code/.test(Ut(Kt)),Zt=Se.exports,Wt=Ne,Vt=Zt("keys"),$t=function(e){return Vt[e]||(Vt[e]=Wt(e))},qt={},Qt=Jt,Xt=s,ea=T,ta=_,aa=Ft,na=Be,ra=Ce,oa=$t,ia=qt,sa="Object already initialized",ha=Xt.TypeError,ca=Xt.WeakMap;if(Qt||ra.state){var la=ra.state||(ra.state=new ca),ua=ea(la.get),da=ea(la.has),fa=ea(la.set);Gt=function(e,t){if(da(la,e))throw new ha(sa);return t.facade=e,fa(la,e,t),t},jt=function(e){return ua(la,e)||{}},Yt=function(e){return da(la,e)}}else{var ma=oa("state");ia[ma]=!0,Gt=function(e,t){if(na(e,ma))throw new ha(sa);return t.facade=e,aa(e,ma,t),t},jt=function(e){return na(e,ma)?e[ma]:{}},Yt=function(e){return na(e,ma)}}var ga={set:Gt,get:jt,has:Yt,enforce:function(e){return Yt(e)?jt(e):Gt(e,{})},getterFor:function(e){return function(t){var a;if(!ta(t)||(a=jt(t)).type!==e)throw ha("Incompatible receiver, "+e+" required");return a}}},ba=l,ya=Be,pa=Function.prototype,Sa=ba&&Object.getOwnPropertyDescriptor,va=ya(pa,"name"),wa=va&&"something"===function(){}.name,Aa=va&&(!ba||ba&&Sa(pa,"name").configurable),Ha=s,Ta=j,Ca=Be,Ia=Ft,Ra=Ae,Oa=_t,Ea={EXISTS:va,PROPER:wa,CONFIGURABLE:Aa}.CONFIGURABLE,Ma=ga.get,Ba=ga.enforce,Pa=String(String).split("String");(kt.exports=function(e,t,a,n){var r,o=!!n&&!!n.unsafe,i=!!n&&!!n.enumerable,s=!!n&&!!n.noTargetGet,h=n&&void 0!==n.name?n.name:t;Ta(a)&&("Symbol("===String(h).slice(0,7)&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Ca(a,"name")||Ea&&a.name!==h)&&Ia(a,"name",h),(r=Ba(a)).source||(r.source=Pa.join("string"==typeof h?h:""))),e!==Ha?(o?!s&&e[t]&&(i=!0):delete e[t],i?e[t]=a:Ia(e,t,a)):i?e[t]=a:Ra(t,a)})(Function.prototype,"toString",(function(){return Ta(this)&&Ma(this).source||Oa(this)}));var Da={},Fa=Math.ceil,ka=Math.floor,Na=function(e){var t=+e;return t!=t||0===t?0:(t>0?ka:Fa)(t)},La=Na,xa=Math.max,Ga=Math.min,ja=Na,Ya=Math.min,_a=function(e){return e>0?Ya(ja(e),9007199254740991):0},za=G,Ua=function(e,t){var a=La(e);return a<0?xa(a+t,0):Ga(a,t)},Ka=function(e){return _a(e.length)},Ja=function(e){return function(t,a,n){var r,o=za(t),i=Ka(o),s=Ua(n,i);if(e&&a!=a){for(;i>s;)if((r=o[s++])!=r)return!0}else for(;i>s;s++)if((e||s in o)&&o[s]===a)return e||s||0;return!e&&-1}},Za={includes:Ja(!0),indexOf:Ja(!1)},Wa=Be,Va=G,$a=Za.indexOf,qa=qt,Qa=T([].push),Xa=function(e,t){var a,n=Va(e),r=0,o=[];for(a in n)!Wa(qa,a)&&Wa(n,a)&&Qa(o,a);for(;t.length>r;)Wa(n,a=t[r++])&&(~$a(o,a)||Qa(o,a));return o},en=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],tn=Xa,an=en.concat("length","prototype");Da.f=Object.getOwnPropertyNames||function(e){return tn(e,an)};var nn={};nn.f=Object.getOwnPropertySymbols;var rn=J,on=Da,sn=nn,hn=Ct,cn=T([].concat),ln=rn("Reflect","ownKeys")||function(e){var t=on.f(hn(e)),a=sn.f;return a?cn(t,a(e)):t},un=Be,dn=ln,fn=h,mn=vt,gn=c,bn=j,yn=/#|\.prototype\./,pn=function(e,t){var a=vn[Sn(e)];return a==An||a!=wn&&(bn(t)?gn(t):!!t)},Sn=pn.normalize=function(e){return String(e).replace(yn,".").toLowerCase()},vn=pn.data={},wn=pn.NATIVE="N",An=pn.POLYFILL="P",Hn=pn,Tn=s,Cn=h.f,In=Ft,Rn=kt.exports,On=Ae,En=function(e,t){for(var a=dn(t),n=mn.f,r=fn.f,o=0;o<a.length;o++){var i=a[o];un(e,i)||n(e,i,r(t,i))}},Mn=Hn,Bn={};Bn[Ze("toStringTag")]="z";var Pn,Dn=s,Fn="[object z]"===String(Bn),kn=j,Nn=O,Ln=Ze("toStringTag"),xn=Dn.Object,Gn="Arguments"==Nn(function(){return arguments}()),jn=Fn?Nn:function(e){var t,a,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(a=function(e,t){try{return e[t]}catch(e){}}(t=xn(e),Ln))?a:Gn?Nn(t):"Object"==(n=Nn(t))&&kn(t.callee)?"Arguments":n},Yn=s.String,_n=Ct,zn=c,Un=s.RegExp,Kn=zn((function(){var e=Un("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),Jn=Kn||zn((function(){return!Un("a","y").sticky})),Zn={BROKEN_CARET:Kn||zn((function(){var e=Un("^r","gy");return e.lastIndex=2,null!=e.exec("str")})),MISSED_STICKY:Jn,UNSUPPORTED_Y:Kn},Wn=Xa,Vn=en,$n=Object.keys||function(e){return Wn(e,Vn)},qn=vt,Qn=Ct,Xn=G,er=$n,tr=l?Object.defineProperties:function(e,t){Qn(e);for(var a,n=Xn(t),r=er(t),o=r.length,i=0;o>i;)qn.f(e,a=r[i++],n[a]);return e},ar=J("document","documentElement"),nr=Ct,rr=tr,or=en,ir=qt,sr=ar,hr=ht,cr=$t("IE_PROTO"),lr=function(){},ur=function(e){return"<script>"+e+"</"+"script>"},dr=function(e){e.write(ur("")),e.close();var t=e.parentWindow.Object;return e=null,t},fr=function(){try{Pn=new ActiveXObject("htmlfile")}catch(e){}var e,t;fr="undefined"!=typeof document?document.domain&&Pn?dr(Pn):((t=hr("iframe")).style.display="none",sr.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(ur("document.F=Object")),e.close(),e.F):dr(Pn);for(var a=or.length;a--;)delete fr.prototype[or[a]];return fr()};ir[cr]=!0;var mr,gr,br=Object.create||function(e,t){var a;return null!==e?(lr.prototype=nr(e),a=new lr,lr.prototype=null,a[cr]=e):a=fr(),void 0===t?a:rr(a,t)},yr=c,pr=s.RegExp,Sr=yr((function(){var e=pr(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)})),vr=c,wr=s.RegExp,Ar=vr((function(){var e=wr("(?<a>b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$<a>c")})),Hr=d,Tr=T,Cr=function(e){if("Symbol"===jn(e))throw TypeError("Cannot convert a Symbol value to a string");return Yn(e)},Ir=function(){var e=_n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},Rr=Zn,Or=Se.exports,Er=br,Mr=ga.get,Br=Sr,Pr=Ar,Dr=Or("native-string-replace",String.prototype.replace),Fr=RegExp.prototype.exec,kr=Fr,Nr=Tr("".charAt),Lr=Tr("".indexOf),xr=Tr("".replace),Gr=Tr("".slice),jr=(gr=/b*/g,Hr(Fr,mr=/a/,"a"),Hr(Fr,gr,"a"),0!==mr.lastIndex||0!==gr.lastIndex),Yr=Rr.BROKEN_CARET,_r=void 0!==/()??/.exec("")[1];(jr||_r||Yr||Br||Pr)&&(kr=function(e){var t,a,n,r,o,i,s,h=this,c=Mr(h),l=Cr(e),u=c.raw;if(u)return u.lastIndex=h.lastIndex,t=Hr(kr,u,l),h.lastIndex=u.lastIndex,t;var d=c.groups,f=Yr&&h.sticky,m=Hr(Ir,h),g=h.source,b=0,y=l;if(f&&(m=xr(m,"y",""),-1===Lr(m,"g")&&(m+="g"),y=Gr(l,h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&"\n"!==Nr(l,h.lastIndex-1))&&(g="(?: "+g+")",y=" "+y,b++),a=new RegExp("^(?:"+g+")",m)),_r&&(a=new RegExp("^"+g+"$(?!\\s)",m)),jr&&(n=h.lastIndex),r=Hr(Fr,f?a:h,y),f?r?(r.input=Gr(r.input,b),r[0]=Gr(r[0],b),r.index=h.lastIndex,h.lastIndex+=r[0].length):h.lastIndex=0:jr&&r&&(h.lastIndex=h.global?r.index+r[0].length:n),_r&&r&&r.length>1&&Hr(Dr,r[0],a,(function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)})),r&&d)for(r.groups=i=Er(null),o=0;o<d.length;o++)i[(s=d[o])[0]]=r[s[1]];return r});(function(e,t){var a,n,r,o,i,s=e.target,h=e.global,c=e.stat;if(a=h?Tn:c?Tn[s]||On(s,{}):(Tn[s]||{}).prototype)for(n in t){if(o=t[n],r=e.noTargetGet?(i=Cn(a,n))&&i.value:a[n],!Mn(h?n:s+(c?".":"#")+n,e.forced)&&void 0!==r){if(typeof o==typeof r)continue;En(o,r)}(e.sham||r&&r.sham)&&In(o,"sham",!0),Rn(a,n,o,e)}})({target:"RegExp",proto:!0,forced:/./.exec!==kr},{exec:kr});var zr={"Asara B'Tevet":"Fast commemorating the siege of Jerusalem",Chanukah:"Hanukkah, the Jewish festival of rededication. Also known as the Festival of Lights","Days of the Omer":"7 weeks from the second night of Pesach to the day before Shavuot","Lag BaOmer":"33rd day of counting the Omer","Leil Selichot":"Prayers for forgiveness in preparation for the High Holidays","Pesach Sheni":"Second Passover, one month after Passover",Pesach:"Passover, the Feast of Unleavened Bread. Also called Chag HaMatzot (the Festival of Matzah), it commemorates the Exodus and freedom of the Israelites from ancient Egypt","Purim Katan":"Minor Purim celebration during Adar I on leap years",Purim:"Celebration of Jewish deliverance as told by Megilat Esther. It commemorates a time when the Jewish people living in Persia were saved from extermination","Rosh Chodesh Nisan":"Start of month of Nisan on the Hebrew calendar. נִיסָן (transliterated Nisan or Nissan) is the 1st month of the Hebrew year, has 30 days, and corresponds to March or April on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Iyyar":"Start of month of Iyyar on the Hebrew calendar. אִיָיר (transliterated Iyyar or Iyar) is the 2nd month of the Hebrew year, has 29 days, and corresponds to April or May on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Sivan":"Start of month of Sivan on the Hebrew calendar. Sivan (סִיוָן) is the 3rd month of the Hebrew year, has 30 days, and corresponds to May or June on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Tamuz":"Start of month of Tamuz on the Hebrew calendar. תַּמּוּז (transliterated Tamuz or Tammuz) is the 4th month of the Hebrew year, has 29 days, and corresponds to June or July on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Av":"Start of month of Av on the Hebrew calendar. Av (אָב) is the 5th month of the Hebrew year, has 30 days, and corresponds to July or August on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Elul":"Start of month of Elul on the Hebrew calendar. Elul (אֱלוּל) is the 6th month of the Hebrew year, has 29 days, and corresponds to August or September on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Cheshvan":"Start of month of Cheshvan on the Hebrew calendar. חֶשְׁוָן (transliterated Cheshvan or Heshvan) is the 8th month of the Hebrew year, has 29 or 30 days, and corresponds to October or November on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Kislev":"Start of month of Kislev on the Hebrew calendar. Kislev (כִּסְלֵו) is the 9th month of the Hebrew year, has 30 or 29 days, and corresponds to November or December on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Tevet":"Start of month of Tevet on the Hebrew calendar. Tevet (טֵבֵת) is the 10th month of the Hebrew year, has 29 days, and corresponds to December or January on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Sh'vat":"Start of month of Sh'vat on the Hebrew calendar. שְׁבָט (transliterated Sh'vat or Shevat) is the 11th month of the Hebrew year, has 30 days, and corresponds to January or February on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Adar":"Start of month of Adar on the Hebrew calendar. Adar (אַדָר) is the 12th month of the Hebrew year, has 29 days, and corresponds to February or March on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Adar I":"Start of month of Adar I (on leap years) on the Hebrew calendar. Adar I (אַדָר א׳) is the 12th month of the Hebrew year, occurs only on leap years, has 30 days, and corresponds to February or March on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon","Rosh Chodesh Adar II":'Start of month of Adar II (on leap years) on the Hebrew calendar. Adar II (אַדָר ב׳), sometimes "Adar Bet" or "Adar Sheni", is the 13th month of the Hebrew year, has 29 days, occurs only on leap years, and corresponds to February or March on the Gregorian calendar. רֹאשׁ חוֹדֶשׁ, transliterated Rosh Chodesh or Rosh Hodesh, is a minor holiday that occurs at the beginning of every month in the Hebrew calendar. It is marked by the birth of a new moon',"Rosh Hashana":"The Jewish New Year. Also spelled Rosh Hashanah","Rosh Hashana LaBehemot":"New Year for Tithing Animals","Shabbat Chazon":"Shabbat before Tish'a B'Av (Shabbat of Prophecy/Shabbat of Vision)","Shabbat HaChodesh":"Shabbat before Rosh Chodesh Nissan","Shabbat HaGadol":"Shabbat before Pesach","Shabbat Machar Chodesh":"When Shabbat falls the day before Rosh Chodesh","Shabbat Nachamu":"Shabbat after Tish'a B'Av (Shabbat of Consolation). The first of seven Shabbatot leading up to Rosh Hashanah. Named after the Haftarah (from Isaiah 40) which begins with the verse נַחֲמוּ נַחֲמוּ, עַמִּי (\"Comfort, oh comfort my people\")","Shabbat Parah":"Shabbat of the Red Heifer","Shabbat Rosh Chodesh":"When Shabbat falls on Rosh Chodesh","Shabbat Shekalim":"Shabbat before Rosh Chodesh Adar","Shabbat Shirah":"Shabbat of Song","Shabbat Shuva":"Shabbat that falls between Rosh Hashanah and Yom Kippur (Shabbat of Returning)","Shabbat Zachor":"Shabbat before Purim",Shavuot:"Festival of Weeks. Commemorates the giving of the Torah at Mount Sinai","Shmini Atzeret":"Eighth Day of Assembly","Shushan Purim":"Purim celebrated in Jerusalem and walled cities",Sigd:"Ethiopian Jewish holiday occurring 50 days after Yom Kippur","Simchat Torah":"Day of Celebrating the Torah",Sukkot:"Feast of Booths","Ta'anit Bechorot":"Fast of the First Born","Ta'anit Esther":"Fast of Esther","Tish'a B'Av":"The Ninth of Av. Fast commemorating the destruction of the two Temples","Tu B'Av":"Minor Jewish holiday of love. Observed on the 15th day of the Hebrew month of Av","Tu BiShvat":"New Year for Trees","Tzom Gedaliah":"Fast of the Seventh Month. Commemorates the assassination of the Jewish governor of Judah","Tzom Tammuz":"Fast commemorating breaching of the walls of Jerusalem before the destruction of the Second Temple","Yom HaAliyah":"Recognizes Aliyah, immigration to the Jewish State of Israel","Yom HaAliyah School Observance":"Aliyah Day observed in Israeli schools","Yom HaAtzma'ut":"Israeli Independence Day. Commemorates the declaration of independence of Israel in 1948. Note that Hebcal displays modern holidays like Yom HaAtzma'ut according to the Israeli schedule. Although Yom HaAtzma'ut is normally observed on the 5th of Iyyar, it may be moved earlier or postponed if observance of the holiday (or Yom HaZikaron, which always precedes it) would conflict with Shabbat","Yom HaShoah":"Holocaust Memorial Day","Yom HaZikaron":"Israeli Memorial Day. Note that Hebcal displays modern holidays like Yom HaZikaron according to the Israeli schedule. Although Yom Hazikaron is normally observed on the 4th of Iyyar, it may be moved earlier or postponed if observance of the holiday (or Yom HaAtzma'ut, which always follows it) would conflict with Shabbat","Yom Kippur":"Day of Atonement","Yom Yerushalayim":"Jerusalem Day. Commemorates the re-unification of Jerusalem in 1967"};function Ur(e){return e.toLowerCase().replace(/'/g,"").replace(/[^\w]/g,"-").replace(/-+/g,"-").replace(/^-/g,"").replace(/-$/g,"")}function Kr(e){return e<10?"0"+e:String(e)}function Jr(e){return e<0?"-00"+Jr(-e):e<10?"000"+e:e<100?"00"+e:e<1e3?"0"+e:String(e)}function Zr(e){return Jr(e.getFullYear())+"-"+Kr(e.getMonth()+1)+"-"+Kr(e.getDate())}function Wr(e){const a=e.getDesc();if("Fast begins"===a||"Fast ends"===a)return["zmanim","fast"];switch(e.getFlags()){case t.flags.OMER_COUNT:return["omer"];case t.flags.HEBREW_DATE:return["hebdate"];case t.flags.PARSHA_HASHAVUA:return["parashat"];case t.flags.DAF_YOMI:return["dafyomi"];case t.flags.ROSH_CHODESH:return["roshchodesh"];case t.flags.SPECIAL_SHABBAT:return["holiday","shabbat"];case t.flags.MINOR_FAST:return["holiday","fast"];case t.flags.MAJOR_FAST:return["holiday","fast","major"];case t.flags.MODERN_HOLIDAY:return["holiday","modern"];case t.flags.SHABBAT_MEVARCHIM:return["mevarchim"];case t.flags.MOLAD:return["molad"];case t.flags.USER_EVENT:return["user"];case t.flags.MINOR_HOLIDAY:return["holiday","minor"]}if(e.cholHaMoedDay)return["holiday","major","cholhamoed"];switch(a){case"Havdalah":return["havdalah"];case"Candle lighting":return["candles"];case"Lag BaOmer":case"Leil Selichot":case"Pesach Sheni":case"Erev Purim":case"Purim Katan":case"Shushan Purim":case"Tu B'Av":case"Tu BiShvat":case"Rosh Hashana LaBehemot":return["holiday","minor"];case"Erev Tish'a B'Av":return["holiday","fast","major"];default:return["holiday","major"]}}function Vr(e,t){let a="Hebcal";const n=t.location;if(t.yahrzeit)a+=" Yahrzeits and Anniversaries";else if(n&&n.name){const e=n.name.indexOf(",");a+=" "+(-1==e?n.name:n.name.substring(0,e))}else t.il?a+=" Israel":a+=" Diaspora";if("1"==t.subscribe)return a;if(t.isHebrewYear||0==e.length)a+=" "+t.year;else{const t=e[0].getDate().greg(),n=e[e.length-1].getDate().greg();if(t.getFullYear()!=n.getFullYear())a+=" "+t.getFullYear()+"-"+n.getFullYear();else if(t.getMonth()==n.getMonth()){a+=" "+new Intl.DateTimeFormat("en-US",{month:"long"}).format(t)+" "+t.getFullYear()}else a+=" "+t.getFullYear()}return a}function $r(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const a=zr[e.getDesc()]||zr[e.basename()]||"";if(t&&a){const e=a.indexOf(".");if(-1!=e)return a.substring(0,e)}return a}const qr=t.flags.DAF_YOMI|t.flags.OMER_COUNT|t.flags.SHABBAT_MEVARCHIM|t.flags.MOLAD|t.flags.USER_EVENT|t.flags.HEBREW_DATE;function Qr(e,a){const n=e.getFlags();if(n&qr)return"";const o=n&t.flags.PARSHA_HASHAVUA?r.getLeyningForParshaHaShavua(e,a):r.getLeyningForHoliday(e,a);let i="";return o&&(o.summary||o.haftara)&&(o.summary&&(i+="Torah: ".concat(o.summary)),o.summary&&o.haftara&&(i+="\n"),o.haftara&&(i+="Haftarah: "+o.haftara,o.reason&&o.reason.haftara&&(i+=" | "+o.reason.haftara))),o&&o.sephardic&&(i+="\nHaftarah for Sephardim: "+o.sephardic),i}function Xr(e,t,a,n,r){"https://www.hebcal.com"!==e.substring(0,22)?a="hebcal.com":t&&-1===e.indexOf("?")&&(e+="?i=on");const o=-1===e.indexOf("?")?"?":"&";return e+o+"utm_source=".concat(a,"&utm_medium=").concat(n)+(r?"&utm_campaign=".concat(r):"")}function eo(e){if(void 0!==e.eventTime)return!0;const a=e.getFlags();if(a&t.flags.HEBREW_DATE){return 1!==e.getDate().getDate()}return!!(a&t.flags.DAF_YOMI)}const to='"Subject","Start Date","Start Time","End Date","End Time","All day event","Description","Show time as","Location"',ao={dafyomi:"Daf Yomi",hebdate:"Hebrew Date",holiday:"Jewish Holidays",mevarchim:null,molad:null,omer:null,parashat:"Torah Reading",roshchodesh:"Jewish Holidays",user:"Personal"};function no(e,a){const n=e.getDate().greg(),r=n.getDate(),o=n.getMonth()+1,i=String(n.getFullYear()).padStart(4,"0"),s=a.euro?'"'.concat(r,"/").concat(o,"/").concat(i,'"'):'"'.concat(o,"/").concat(r,"/").concat(i,'"');let h="",c="",l="",u='"true"';const d=Boolean(e.eventTime);let f=eo(e)?e.renderBrief(a.locale):e.render(a.locale);if(e.eventTime){const n=t.HebrewCalendar.reformatTimeStr(e.eventTimeStr," PM",a);c=h='"'.concat(n,'"'),l=s,u='"false"'}let m="Jewish Holidays";const g=e.getFlags();if(d&&a.location&&a.location.name){const e=a.location.name,t=e.indexOf(",");m=-1===t?e:e.substring(0,t)}else if(g&t.flags.DAF_YOMI){const e=f.indexOf(": ");-1!=e&&(m=f.substring(0,e),f=f.substring(e+2))}else{const t=ao[Wr(e)[0]];t&&(m=t)}if(f=f.replace(/,/g,"").replace(/"/g,"''"),a.appendHebrewToSubject){const t=e.renderBrief("he");t&&(f+=" / ".concat(t))}let b=e.memo||$r(e,!0);b||void 0===e.linkedEvent||(b=e.linkedEvent.render(a.locale));const y=b.replace(/,/g,";").replace(/"/g,"''"),p=d||g&t.flags.CHAG?4:3;return'"'.concat(f,'",').concat(s,",").concat(h,",").concat(l,",").concat(c,",").concat(u,',"').concat(y,'","').concat(p,'","').concat(m,'"')}var ro={AD:"Andorra",AE:"United Arab Emirates",AF:"Afghanistan",AI:"Anguilla",AL:"Albania",AM:"Armenia",AO:"Angola",AR:"Argentina",AS:"American Samoa",AT:"Austria",AU:"Australia",AW:"Aruba",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BB:"Barbados",BD:"Bangladesh",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BM:"Bermuda",BN:"Brunei",BO:"Bolivia",BR:"Brazil",BS:"Bahamas",BT:"Bhutan",BW:"Botswana",BY:"Belarus",BZ:"Belize",CA:"Canada",CD:"Democratic Republic of the Congo",CF:"Central African Republic",CG:"Republic of the Congo",CH:"Switzerland",CI:"Ivory Coast",CK:"Cook Islands",CL:"Chile",CM:"Cameroon",CN:"China",CO:"Colombia",CR:"Costa Rica",CU:"Cuba",CV:"Cape Verde",CW:"Curacao",CY:"Cyprus",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",DM:"Dominica",DO:"Dominican Republic",DZ:"Algeria",EC:"Ecuador",EE:"Estonia",EG:"Egypt",ER:"Eritrea",ES:"Spain",ET:"Ethiopia",FI:"Finland",FJ:"Fiji",FK:"Falkland Islands",FO:"Faroe Islands",FR:"France",GA:"Gabon",GB:"United Kingdom",GE:"Georgia",GH:"Ghana",GI:"Gibraltar",GL:"Greenland",GM:"Gambia",GN:"Guinea",GQ:"Equatorial Guinea",GR:"Greece",GT:"Guatemala",GW:"Guinea-Bissau",GY:"Guyana",HK:"Hong Kong",HN:"Honduras",HR:"Croatia",HT:"Haiti",HU:"Hungary",ID:"Indonesia",IE:"Ireland",IL:"Israel",IM:"Isle of Man",IN:"India",IQ:"Iraq",IR:"Iran",IS:"Iceland",IT:"Italy",JM:"Jamaica",JO:"Jordan",JP:"Japan",KE:"Kenya",KG:"Kyrgyzstan",KH:"Cambodia",KM:"Comoros",KN:"Saint Kitts and Nevis",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KY:"Cayman Islands",KZ:"Kazakhstan",LA:"Laos",LB:"Lebanon",LC:"Saint Lucia",LI:"Liechtenstein",LR:"Liberia",LS:"Lesotho",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",LY:"Libya",MA:"Morocco",MD:"Moldova",ME:"Montenegro",MG:"Madagascar",MK:"Macedonia",ML:"Mali",MM:"Myanmar",MN:"Mongolia",MP:"Northern Mariana Islands",MR:"Mauritania",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MW:"Malawi",MX:"Mexico",MY:"Malaysia",MZ:"Mozambique",NA:"Namibia",NC:"New Caledonia",NE:"Niger",NG:"Nigeria",NI:"Nicaragua",NL:"Netherlands",NO:"Norway",NP:"Nepal",NU:"Niue",NZ:"New Zealand",OM:"Oman",PA:"Panama",PE:"Peru",PF:"French Polynesia",PG:"Papua New Guinea",PH:"Philippines",PK:"Pakistan",PL:"Poland",PR:"Puerto Rico",PT:"Portugal",PY:"Paraguay",QA:"Qatar",RO:"Romania",RS:"Serbia",RU:"Russia",RW:"Rwanda",SA:"Saudi Arabia",SB:"Solomon Islands",SC:"Seychelles",SD:"Sudan",SE:"Sweden",SG:"Singapore",SH:"Saint Helena",SI:"Slovenia",SK:"Slovakia",SL:"Sierra Leone",SN:"Senegal",SO:"Somalia",SR:"Suriname",ST:"Sao Tome and Principe",SV:"El Salvador",SY:"Syria",SZ:"Swaziland",TC:"Turks and Caicos Islands",TD:"Chad",TG:"Togo",TH:"Thailand",TJ:"Tajikistan",TM:"Turkmenistan",TN:"Tunisia",TR:"Turkey",TV:"Tuvalu",TW:"Taiwan",TZ:"Tanzania",UA:"Ukraine",UG:"Uganda",US:"United States",UY:"Uruguay",UZ:"Uzbekistan",VC:"Saint Vincent and the Grenadines",VE:"Venezuela",VG:"British Virgin Islands",VN:"Vietnam",WS:"Samoa",YE:"Yemen",YT:"Mayotte",ZA:"South Africa",ZM:"Zambia",ZW:"Zimbabwe"};function oo(e,a){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const o=Boolean(e.eventTime),i=e.getDate(),s=i.greg(),h="object"==typeof a.location?a.location.getTzid():"UTC",c=o?t.Zmanim.formatISOWithTimeZone(h,e.eventTime):Zr(s),l=Wr(e),u=e.getFlags();let d=eo(e)?e.renderBrief(a.locale):e.render(a.locale);const f=e.getDesc(),m="Havdalah"===f||"Candle lighting"===f;if(m){d+=": "+t.HebrewCalendar.reformatTimeStr(e.eventTimeStr,"pm",a)}const g={title:d,date:c,category:l[0]};l.length>1&&(g.subcat=l[1]),"holiday"===l[0]&&u&t.flags.CHAG&&(g.yomtov=!0),d!=f&&(g.title_orig=f);const b=e.renderBrief("he");if(b&&(g.hebrew=t.Locale.hebrewStripNikkud(b)),!m){if(n){const n=a.il,o=u===t.flags.PARSHA_HASHAVUA,s=o?r.getLeyningForParshaHaShavua(e,n):r.getLeyningForHoliday(e,n);if(s){g.leyning=so(s);const t=i.getFullYear();if(o&&!n&&t>=5745&&t<=5830){const t=r.getTriennialForParshaHaShavua(e);t&&(g.leyning.triennial=io({},t))}}}const o=e.url();if(o){const e=a.utmSource||"js",t=a.utmMedium||"api",n=a.utmCampaign;g.link=Xr(o,a.il,e,t,n)}}const y=e.memo||zr[e.basename()];return y?g.memo=y:void 0!==e.linkedEvent&&(g.memo=e.linkedEvent.render(a.locale)),g}function io(e,t){return Object.keys(t).forEach((a=>{const n=t[a];if(void 0!==n){e["M"==a?"maftir":a]=r.formatAliyahWithBook(n)}})),e}function so(e){const t={};return e.summary&&(t.torah=e.summary),e.haftara&&(t.haftarah=e.haftara),e.sephardic&&(t.haftarah_sephardic=e.sephardic),e.fullkriyah&&io(t,e.fullkriyah),e.reason&&(["7","8","M"].forEach((a=>{if(e.reason[a]){t["M"==a?"maftir":a]+=" | "+e.reason[a]}})),e.reason.haftara&&(t.haftarah+=" | "+e.reason.haftara)),t}function ho(e,t){const a=new Date,n=a.getFullYear(),r=a.toUTCString(),o=new Intl.DateTimeFormat("en-US",{weekday:"long",day:"2-digit",month:"long",year:"numeric"}),i=t.location,s=t.mainUrl,h=t.evPubDate,c=t.title,l=Xr(s,i&&i.getIsrael(),t.utmSource,t.utmMedium,t.utmCampaign).replace(/&/g,"&amp;"),u=t.selfUrl.replace(/&/g,"&amp;");let d='<?xml version="1.0" encoding="UTF-8"?>\n<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom">\n<channel>\n<title>'.concat(c,"</title>\n<link>").concat(l,'</link>\n<atom:link href="').concat(u,'" rel="self" type="application/rss+xml" />\n<description>').concat(t.description,"</description>\n<language>").concat(t.lang,"</language>\n<copyright>Copyright (c) ").concat(n," Michael J. Radwin. All rights reserved.</copyright>\n<lastBuildDate>").concat(r,"</lastBuildDate>\n");return e.forEach((e=>{d+=co(e,h,r,o,i,s)})),d+="</channel>\n</rss>\n",d}function co(e,a,n,r,o,i){let s=e.render();const h=e.getDate().greg(),c=function(e,t,a,n){if(t){const t=e.eventTime;return t?t.toUTCString():a.toUTCString().replace(/ \S+ GMT$/," 00:00:00 GMT")}return n}(e,a,h,n),l=!!o&&o.getIsrael(),u=function(e,a,n,r){let o,i;const s=e.eventTime||e.getDate().greg(),h=t.Zmanim.formatISOWithTimeZone(n,s),c=h.substring(0,h.indexOf("T")),l=c.replace(/-/g,""),u=Ur(e.getDesc()),d="".concat(l,"-").concat(u),f=e.url();if(f)o=Xr(f,a,"shabbat1c","rss").replace(/&/g,"&amp;"),i="".concat(f,"#").concat(d);else{const e="".concat(r,"&dt=").concat(c),t=Xr(e,a,"shabbat1c","rss").replace(/&/g,"&amp;");i=e.replace(/&/g,"&amp;")+"#".concat(d),o="".concat(t,"#").concat(d)}return[o,i]}(e,l,o?o.getTzid():"UTC",i),d=u[0],f=u[1],m=Wr(e)[0],g=e.getDesc();let b;if("Havdalah"===g||"Candle lighting"===g){const a=s.indexOf(": ");if(-1!=a){const n={location:o,il:l,locale:t.Locale.getLocaleName()},r=t.HebrewCalendar.reformatTimeStr(e.eventTimeStr,"pm",n);s=s.substring(0,a)+": "+r}}else b=e.getFlags()&t.flags.PARSHA_HASHAVUA?Qr(e,l):e.memo||zr[e.basename()];const y=b||r.format(h),p="candles"==m?"<geo:lat>".concat(o.getLatitude(),"</geo:lat>\n<geo:long>").concat(o.getLongitude(),"</geo:long>\n"):"";return"<item>\n<title>".concat(s,"</title>\n<link>").concat(d,'</link>\n<guid isPermaLink="false">').concat(f,"</guid>\n<description>").concat(y,"</description>\n<category>").concat(m,"</category>\n<pubDate>").concat(c,"</pubDate>\n").concat(p,"</item>\n")}return e.appendIsraelAndTracking=Xr,e.countryNames=ro,e.eventToClassicApiObject=oo,e.eventToCsv=no,e.eventToFullCalendar=function(e,a,n){const r=Wr(e),o=e.getFlags();"holiday"==r[0]&&o&t.flags.CHAG&&r.push("yomtov");const i=Boolean(e.eventTime),s={title:eo(e)?e.renderBrief():e.render(),start:i?t.Zmanim.formatISOWithTimeZone(a,e.eventTime):Zr(e.getDate().greg()),allDay:!i,className:r.join(" ")},h=e.renderBrief("he");h&&(s.hebrew=t.Locale.hebrewStripNikkud(h));const c=e.url();c&&(s.url=Xr(c,n,"js","fc"));const l=e.getDesc();if(!("Havdalah"===l||"Candle lighting"===l)){const a=o&t.flags.PARSHA_HASHAVUA?Qr(e,n):e.memo||zr[e.basename()];a?s.description=a:void 0!==e.linkedEvent&&(s.description=e.linkedEvent.render())}return s},e.eventToRssItem=co,e.eventsToClassicApi=function(e,t){let a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const n={title:Vr(e,t),date:(new Date).toISOString()},r=t.location;return"object"==typeof r&&"string"==typeof r.name?(n.location={title:r.getName(),city:r.getShortName(),tzid:r.getTzid(),latitude:r.getLatitude(),longitude:r.getLongitude(),cc:r.getCountryCode(),country:ro[r.getCountryCode()]},["admin1","asciiname","geo","zip","state","geonameid"].forEach((e=>{r[e]&&(n.location[e]=r[e])}))):n.location={geo:"none"},n.items=e.map((e=>oo(e,t,a))),n},e.eventsToCsv=function(e,t){return[to].concat(e.map((e=>no(e,t)))).join("\r\n")+"\r\n"},e.eventsToRss=function(e,a,n,r){let o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"en-US",i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];const s=a.getName(),h={location:a,mainUrl:n,selfUrl:r,lang:o,evPubDate:i,title:t.Locale.gettext("Shabbat")+" Times for ".concat(s),description:"Weekly Shabbat candle lighting times for ".concat(s),utmSource:"shabbat1c",utmMedium:"rss"};return ho(e,h)},e.eventsToRss2=ho,e.getCalendarTitle=Vr,e.getDownloadFilename=function(e){let t="hebcal_"+e.year;if(e.isHebrewYear&&(t+="h"),e.month&&(t+="_"+e.month),e.location){t+="_"+Ur(e.location.zip||e.location.asciiname||e.location.getShortName()).replace(/[-]/g,"_")}return t},e.getEventCategories=Wr,e.getHolidayDescription=$r,e.holidayDescription=zr,e.makeAnchor=Ur,e.makeTorahMemoText=Qr,e.pad2=Kr,e.pad4=Jr,e.renderTitleWithoutTime=function(e){return void 0===e.eventTime?e.render():e.renderBrief()},e.shouldRenderBrief=eo,e.timeZoneOffsetStr=function(e,a){return t.Zmanim.timeZoneOffset(e,a)},e.toISOString=Zr,e.toISOStringWithTimezone=function(e,a,n){const r=Zr(e);return a?r+"T"+a+":00"+t.Zmanim.timeZoneOffset(n,e):r},Object.defineProperty(e,"__esModule",{value:!0}),e}({},hebcal);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/rest-api v3.8.5 */
1
+ /*! @hebcal/rest-api v3.10.0 */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -244,6 +244,10 @@ function getCalendarTitle(events, options) {
244
244
  title += ' Diaspora';
245
245
  }
246
246
 
247
+ if (options.subscribe == '1') {
248
+ return title;
249
+ }
250
+
247
251
  if (options.isHebrewYear || events.length == 0) {
248
252
  title += ' ' + options.year;
249
253
  } else {
@@ -349,6 +353,25 @@ function appendIsraelAndTracking(url, il, utmSource, utmMedium, utmCampaign) {
349
353
  const campaign = utmCampaign ? `&utm_campaign=${utmCampaign}` : '';
350
354
  return url + sep + utm + campaign;
351
355
  }
356
+ /**
357
+ * @private
358
+ * @param {Event} ev
359
+ * @return {boolean}
360
+ */
361
+
362
+ function shouldRenderBrief(ev) {
363
+ if (typeof ev.eventTime !== 'undefined') return true;
364
+ const mask = ev.getFlags();
365
+
366
+ if (mask & core.flags.HEBREW_DATE) {
367
+ const hd = ev.getDate();
368
+ return hd.getDate() === 1 ? false : true;
369
+ } else if (mask & core.flags.DAF_YOMI) {
370
+ return true;
371
+ } else {
372
+ return false;
373
+ }
374
+ }
352
375
 
353
376
  const csvHeader = '"Subject","Start Date","Start Time","End Date","End Time","All day event","Description","Show time as","Location"';
354
377
  const CATEGORY = {
@@ -365,7 +388,7 @@ const CATEGORY = {
365
388
  /**
366
389
  * Renders an Event as a string
367
390
  * @param {Event} e
368
- * @param {HebcalOptions} options
391
+ * @param {HebrewCalendar.Options} options
369
392
  * @return {string}
370
393
  */
371
394
 
@@ -380,7 +403,7 @@ function eventToCsv(e, options) {
380
403
  let endDate = '';
381
404
  let allDay = '"true"';
382
405
  const timed = Boolean(e.eventTime);
383
- let subj = timed ? e.renderBrief() : e.render();
406
+ let subj = shouldRenderBrief(e) ? e.renderBrief(options.locale) : e.render(options.locale);
384
407
 
385
408
  if (e.eventTime) {
386
409
  const timeStr = core.HebrewCalendar.reformatTimeStr(e.eventTimeStr, ' PM', options);
@@ -424,7 +447,7 @@ function eventToCsv(e, options) {
424
447
  let memo0 = e.memo || getHolidayDescription(e, true);
425
448
 
426
449
  if (!memo0 && typeof e.linkedEvent !== 'undefined') {
427
- memo0 = e.linkedEvent.render();
450
+ memo0 = e.linkedEvent.render(options.locale);
428
451
  }
429
452
 
430
453
  const memo = memo0.replace(/,/g, ';').replace(/"/g, '\'\'');
@@ -482,7 +505,6 @@ function eventsToClassicApi(events, options, leyning = true) {
482
505
  result.items = events.map(ev => eventToClassicApiObject(ev, options, leyning));
483
506
  return result;
484
507
  }
485
- const BRIEF_FLAGS$1 = core.flags.DAF_YOMI | core.flags.HEBREW_DATE;
486
508
  /**
487
509
  * Converts a Hebcal event to a classic Hebcal.com JSON API object
488
510
  * @param {Event} ev
@@ -499,7 +521,7 @@ function eventToClassicApiObject(ev, options, leyning = true) {
499
521
  const date = timed ? core.Zmanim.formatISOWithTimeZone(tzid, ev.eventTime) : toISOString(dt);
500
522
  const categories = getEventCategories(ev);
501
523
  const mask = ev.getFlags();
502
- let title = timed || mask & BRIEF_FLAGS$1 ? ev.renderBrief(options.locale) : ev.render(options.locale);
524
+ let title = shouldRenderBrief(ev) ? ev.renderBrief(options.locale) : ev.render(options.locale);
503
525
  const desc = ev.getDesc();
504
526
  const candles = desc === 'Havdalah' || desc === 'Candle lighting';
505
527
 
@@ -675,25 +697,49 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
675
697
 
676
698
  function eventsToRss(events, location, mainUrl, selfUrl, lang = 'en-US', evPubDate = true) {
677
699
  const cityDescr = location.getName();
678
- const thisYear = new Date().getFullYear();
679
- const title = core.Locale.gettext('Shabbat') + ' Times for ' + cityDescr;
680
- const lastBuildDate = new Date().toUTCString();
700
+ const options = {
701
+ location,
702
+ mainUrl,
703
+ selfUrl,
704
+ lang,
705
+ evPubDate,
706
+ title: core.Locale.gettext('Shabbat') + ` Times for ${cityDescr}`,
707
+ description: `Weekly Shabbat candle lighting times for ${cityDescr}`,
708
+ utmSource: 'shabbat1c',
709
+ utmMedium: 'rss'
710
+ };
711
+ return eventsToRss2(events, options);
712
+ }
713
+ /**
714
+ * @param {Event[]} events
715
+ * @param {HebrewCalendar.Options} options
716
+ * @return {string}
717
+ */
718
+
719
+ function eventsToRss2(events, options) {
720
+ const now = new Date();
721
+ const thisYear = now.getFullYear();
722
+ const lastBuildDate = now.toUTCString();
681
723
  const dayFormat = new Intl.DateTimeFormat('en-US', {
682
724
  weekday: 'long',
683
725
  day: '2-digit',
684
726
  month: 'long',
685
727
  year: 'numeric'
686
728
  });
687
- const mainUrlEsc = appendIsraelAndTracking(mainUrl, location.getIsrael(), 'shabbat1c', 'rss').replace(/&/g, '&amp;');
688
- selfUrl = selfUrl.replace(/&/g, '&amp;');
729
+ const location = options.location;
730
+ const mainUrl = options.mainUrl;
731
+ const evPubDate = options.evPubDate;
732
+ const title = options.title;
733
+ const mainUrlEsc = appendIsraelAndTracking(mainUrl, location && location.getIsrael(), options.utmSource, options.utmMedium, options.utmCampaign).replace(/&/g, '&amp;');
734
+ const selfUrlEsc = options.selfUrl.replace(/&/g, '&amp;');
689
735
  let str = `<?xml version="1.0" encoding="UTF-8"?>
690
736
  <rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom">
691
737
  <channel>
692
738
  <title>${title}</title>
693
739
  <link>${mainUrlEsc}</link>
694
- <atom:link href="${selfUrl}" rel="self" type="application/rss+xml" />
695
- <description>Weekly Shabbat candle lighting times for ${cityDescr}</description>
696
- <language>${lang}</language>
740
+ <atom:link href="${selfUrlEsc}" rel="self" type="application/rss+xml" />
741
+ <description>${options.description}</description>
742
+ <language>${options.lang}</language>
697
743
  <copyright>Copyright (c) ${thisYear} Michael J. Radwin. All rights reserved.</copyright>
698
744
  <lastBuildDate>${lastBuildDate}</lastBuildDate>
699
745
  `;
@@ -780,7 +826,6 @@ ${geoTags}</item>
780
826
  `;
781
827
  }
782
828
 
783
- const BRIEF_FLAGS = core.flags.DAF_YOMI | core.flags.HEBREW_DATE;
784
829
  /**
785
830
  * Converts a Hebcal event to a FullCalendar.io object
786
831
  * @param {Event} ev
@@ -798,7 +843,7 @@ function eventToFullCalendar(ev, tzid, il) {
798
843
  }
799
844
 
800
845
  const timed = Boolean(ev.eventTime);
801
- const title = timed || mask & BRIEF_FLAGS ? ev.renderBrief() : ev.render();
846
+ const title = shouldRenderBrief(ev) ? ev.renderBrief() : ev.render();
802
847
  const start = timed ? core.Zmanim.formatISOWithTimeZone(tzid, ev.eventTime) : toISOString(ev.getDate().greg());
803
848
  const result = {
804
849
  title,
@@ -843,6 +888,7 @@ exports.eventToRssItem = eventToRssItem;
843
888
  exports.eventsToClassicApi = eventsToClassicApi;
844
889
  exports.eventsToCsv = eventsToCsv;
845
890
  exports.eventsToRss = eventsToRss;
891
+ exports.eventsToRss2 = eventsToRss2;
846
892
  exports.getCalendarTitle = getCalendarTitle;
847
893
  exports.getDownloadFilename = getDownloadFilename;
848
894
  exports.getEventCategories = getEventCategories;
@@ -853,6 +899,7 @@ exports.makeTorahMemoText = makeTorahMemoText;
853
899
  exports.pad2 = pad2;
854
900
  exports.pad4 = pad4;
855
901
  exports.renderTitleWithoutTime = renderTitleWithoutTime;
902
+ exports.shouldRenderBrief = shouldRenderBrief;
856
903
  exports.timeZoneOffsetStr = timeZoneOffsetStr;
857
904
  exports.toISOString = toISOString;
858
905
  exports.toISOStringWithTimezone = toISOStringWithTimezone;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/rest-api v3.8.5 */
1
+ /*! @hebcal/rest-api v3.10.0 */
2
2
  import { flags, Zmanim, HebrewCalendar, Locale } from '@hebcal/core';
3
3
  import * as leyn from '@hebcal/leyning';
4
4
 
@@ -220,6 +220,10 @@ function getCalendarTitle(events, options) {
220
220
  title += ' Diaspora';
221
221
  }
222
222
 
223
+ if (options.subscribe == '1') {
224
+ return title;
225
+ }
226
+
223
227
  if (options.isHebrewYear || events.length == 0) {
224
228
  title += ' ' + options.year;
225
229
  } else {
@@ -325,6 +329,25 @@ function appendIsraelAndTracking(url, il, utmSource, utmMedium, utmCampaign) {
325
329
  const campaign = utmCampaign ? `&utm_campaign=${utmCampaign}` : '';
326
330
  return url + sep + utm + campaign;
327
331
  }
332
+ /**
333
+ * @private
334
+ * @param {Event} ev
335
+ * @return {boolean}
336
+ */
337
+
338
+ function shouldRenderBrief(ev) {
339
+ if (typeof ev.eventTime !== 'undefined') return true;
340
+ const mask = ev.getFlags();
341
+
342
+ if (mask & flags.HEBREW_DATE) {
343
+ const hd = ev.getDate();
344
+ return hd.getDate() === 1 ? false : true;
345
+ } else if (mask & flags.DAF_YOMI) {
346
+ return true;
347
+ } else {
348
+ return false;
349
+ }
350
+ }
328
351
 
329
352
  const csvHeader = '"Subject","Start Date","Start Time","End Date","End Time","All day event","Description","Show time as","Location"';
330
353
  const CATEGORY = {
@@ -341,7 +364,7 @@ const CATEGORY = {
341
364
  /**
342
365
  * Renders an Event as a string
343
366
  * @param {Event} e
344
- * @param {HebcalOptions} options
367
+ * @param {HebrewCalendar.Options} options
345
368
  * @return {string}
346
369
  */
347
370
 
@@ -356,7 +379,7 @@ function eventToCsv(e, options) {
356
379
  let endDate = '';
357
380
  let allDay = '"true"';
358
381
  const timed = Boolean(e.eventTime);
359
- let subj = timed ? e.renderBrief() : e.render();
382
+ let subj = shouldRenderBrief(e) ? e.renderBrief(options.locale) : e.render(options.locale);
360
383
 
361
384
  if (e.eventTime) {
362
385
  const timeStr = HebrewCalendar.reformatTimeStr(e.eventTimeStr, ' PM', options);
@@ -400,7 +423,7 @@ function eventToCsv(e, options) {
400
423
  let memo0 = e.memo || getHolidayDescription(e, true);
401
424
 
402
425
  if (!memo0 && typeof e.linkedEvent !== 'undefined') {
403
- memo0 = e.linkedEvent.render();
426
+ memo0 = e.linkedEvent.render(options.locale);
404
427
  }
405
428
 
406
429
  const memo = memo0.replace(/,/g, ';').replace(/"/g, '\'\'');
@@ -458,7 +481,6 @@ function eventsToClassicApi(events, options, leyning = true) {
458
481
  result.items = events.map(ev => eventToClassicApiObject(ev, options, leyning));
459
482
  return result;
460
483
  }
461
- const BRIEF_FLAGS$1 = flags.DAF_YOMI | flags.HEBREW_DATE;
462
484
  /**
463
485
  * Converts a Hebcal event to a classic Hebcal.com JSON API object
464
486
  * @param {Event} ev
@@ -475,7 +497,7 @@ function eventToClassicApiObject(ev, options, leyning = true) {
475
497
  const date = timed ? Zmanim.formatISOWithTimeZone(tzid, ev.eventTime) : toISOString(dt);
476
498
  const categories = getEventCategories(ev);
477
499
  const mask = ev.getFlags();
478
- let title = timed || mask & BRIEF_FLAGS$1 ? ev.renderBrief(options.locale) : ev.render(options.locale);
500
+ let title = shouldRenderBrief(ev) ? ev.renderBrief(options.locale) : ev.render(options.locale);
479
501
  const desc = ev.getDesc();
480
502
  const candles = desc === 'Havdalah' || desc === 'Candle lighting';
481
503
 
@@ -651,25 +673,49 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
651
673
 
652
674
  function eventsToRss(events, location, mainUrl, selfUrl, lang = 'en-US', evPubDate = true) {
653
675
  const cityDescr = location.getName();
654
- const thisYear = new Date().getFullYear();
655
- const title = Locale.gettext('Shabbat') + ' Times for ' + cityDescr;
656
- const lastBuildDate = new Date().toUTCString();
676
+ const options = {
677
+ location,
678
+ mainUrl,
679
+ selfUrl,
680
+ lang,
681
+ evPubDate,
682
+ title: Locale.gettext('Shabbat') + ` Times for ${cityDescr}`,
683
+ description: `Weekly Shabbat candle lighting times for ${cityDescr}`,
684
+ utmSource: 'shabbat1c',
685
+ utmMedium: 'rss'
686
+ };
687
+ return eventsToRss2(events, options);
688
+ }
689
+ /**
690
+ * @param {Event[]} events
691
+ * @param {HebrewCalendar.Options} options
692
+ * @return {string}
693
+ */
694
+
695
+ function eventsToRss2(events, options) {
696
+ const now = new Date();
697
+ const thisYear = now.getFullYear();
698
+ const lastBuildDate = now.toUTCString();
657
699
  const dayFormat = new Intl.DateTimeFormat('en-US', {
658
700
  weekday: 'long',
659
701
  day: '2-digit',
660
702
  month: 'long',
661
703
  year: 'numeric'
662
704
  });
663
- const mainUrlEsc = appendIsraelAndTracking(mainUrl, location.getIsrael(), 'shabbat1c', 'rss').replace(/&/g, '&amp;');
664
- selfUrl = selfUrl.replace(/&/g, '&amp;');
705
+ const location = options.location;
706
+ const mainUrl = options.mainUrl;
707
+ const evPubDate = options.evPubDate;
708
+ const title = options.title;
709
+ const mainUrlEsc = appendIsraelAndTracking(mainUrl, location && location.getIsrael(), options.utmSource, options.utmMedium, options.utmCampaign).replace(/&/g, '&amp;');
710
+ const selfUrlEsc = options.selfUrl.replace(/&/g, '&amp;');
665
711
  let str = `<?xml version="1.0" encoding="UTF-8"?>
666
712
  <rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom">
667
713
  <channel>
668
714
  <title>${title}</title>
669
715
  <link>${mainUrlEsc}</link>
670
- <atom:link href="${selfUrl}" rel="self" type="application/rss+xml" />
671
- <description>Weekly Shabbat candle lighting times for ${cityDescr}</description>
672
- <language>${lang}</language>
716
+ <atom:link href="${selfUrlEsc}" rel="self" type="application/rss+xml" />
717
+ <description>${options.description}</description>
718
+ <language>${options.lang}</language>
673
719
  <copyright>Copyright (c) ${thisYear} Michael J. Radwin. All rights reserved.</copyright>
674
720
  <lastBuildDate>${lastBuildDate}</lastBuildDate>
675
721
  `;
@@ -756,7 +802,6 @@ ${geoTags}</item>
756
802
  `;
757
803
  }
758
804
 
759
- const BRIEF_FLAGS = flags.DAF_YOMI | flags.HEBREW_DATE;
760
805
  /**
761
806
  * Converts a Hebcal event to a FullCalendar.io object
762
807
  * @param {Event} ev
@@ -774,7 +819,7 @@ function eventToFullCalendar(ev, tzid, il) {
774
819
  }
775
820
 
776
821
  const timed = Boolean(ev.eventTime);
777
- const title = timed || mask & BRIEF_FLAGS ? ev.renderBrief() : ev.render();
822
+ const title = shouldRenderBrief(ev) ? ev.renderBrief() : ev.render();
778
823
  const start = timed ? Zmanim.formatISOWithTimeZone(tzid, ev.eventTime) : toISOString(ev.getDate().greg());
779
824
  const result = {
780
825
  title,
@@ -810,4 +855,4 @@ function eventToFullCalendar(ev, tzid, il) {
810
855
  return result;
811
856
  }
812
857
 
813
- export { appendIsraelAndTracking, countryNames, eventToClassicApiObject, eventToCsv, eventToFullCalendar, eventToRssItem, eventsToClassicApi, eventsToCsv, eventsToRss, getCalendarTitle, getDownloadFilename, getEventCategories, getHolidayDescription, holidayDescription, makeAnchor, makeTorahMemoText, pad2, pad4, renderTitleWithoutTime, timeZoneOffsetStr, toISOString, toISOStringWithTimezone };
858
+ export { appendIsraelAndTracking, countryNames, eventToClassicApiObject, eventToCsv, eventToFullCalendar, eventToRssItem, eventsToClassicApi, eventsToCsv, eventsToRss, eventsToRss2, getCalendarTitle, getDownloadFilename, getEventCategories, getHolidayDescription, holidayDescription, makeAnchor, makeTorahMemoText, pad2, pad4, renderTitleWithoutTime, shouldRenderBrief, timeZoneOffsetStr, toISOString, toISOStringWithTimezone };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hebcal/rest-api",
3
- "version": "3.8.5",
3
+ "version": "3.10.0",
4
4
  "author": "Michael J. Radwin (https://github.com/mjradwin)",
5
5
  "keywords": [
6
6
  "hebcal"
@@ -21,8 +21,8 @@
21
21
  "url": "https://github.com/hebcal/hebcal-rest-api/issues"
22
22
  },
23
23
  "dependencies": {
24
- "@hebcal/core": "^3.26.7",
25
- "@hebcal/leyning": "^4.10.0"
24
+ "@hebcal/core": "^3.30.0",
25
+ "@hebcal/leyning": "^4.12.1"
26
26
  },
27
27
  "scripts": {
28
28
  "build": "rollup -c",
@@ -51,20 +51,20 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@ava/babel": "^2.0.0",
54
- "@babel/core": "^7.15.8",
55
- "@babel/preset-env": "^7.15.8",
56
- "@babel/register": "^7.15.3",
54
+ "@babel/core": "^7.16.5",
55
+ "@babel/preset-env": "^7.16.5",
56
+ "@babel/register": "^7.16.5",
57
57
  "@rollup/plugin-babel": "^5.3.0",
58
58
  "@rollup/plugin-commonjs": "^21.0.1",
59
59
  "@rollup/plugin-json": "^4.1.0",
60
- "@rollup/plugin-node-resolve": "^13.0.6",
60
+ "@rollup/plugin-node-resolve": "^13.1.1",
61
61
  "ava": "^3.15.0",
62
- "core-js": "^3.19.0",
63
- "eslint": "^8.1.0",
62
+ "core-js": "^3.19.3",
63
+ "eslint": "^8.4.1",
64
64
  "eslint-config-google": "^0.14.0",
65
65
  "jsdoc": "^3.6.7",
66
66
  "jsdoc-to-markdown": "^7.1.0",
67
- "rollup": "^2.58.3",
67
+ "rollup": "^2.61.1",
68
68
  "rollup-plugin-terser": "^7.0.2"
69
69
  }
70
70
  }
package/rest-api.d.ts CHANGED
@@ -30,11 +30,16 @@ declare module '@hebcal/rest-api' {
30
30
  * Appends utm_source and utm_medium parameters to a URL
31
31
  */
32
32
  export function appendIsraelAndTracking(url: string, il: boolean, utmSource: string, utmMedium: string, utmCampaign?: string): string;
33
+ /**
34
+ * @private
35
+ */
36
+ export function shouldRenderBrief(ev: Event): boolean;
33
37
  /**
34
38
  * @param [lang] - language such as 'he' (default 'en-US')
35
39
  * @param [evPubDate] - if true, use event time as pubDate (false uses lastBuildDate)
36
40
  */
37
41
  export function eventsToRss(events: Event[], location: Location, mainUrl: string, selfUrl: string, lang?: string, evPubDate?: boolean): string;
42
+ export function eventsToRss2(events: Event[], options: HebrewCalendar.Options): string;
38
43
  export function eventToRssItem(ev: Event, evPubDate: boolean, lastBuildDate: string, dayFormat: Intl.DateTimeFormat, location: Location, baseUrl: string): string;
39
44
  export function getDownloadFilename(options: HebrewCalendar.Options): string;
40
45
  export function pad2(number: number): string;