@hebcal/rest-api 3.8.7 → 3.10.2

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.7 */
1
+ /*! @hebcal/rest-api v3.10.2 */
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.1',
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 {
@@ -1907,10 +1920,12 @@ function formatLeyningResult(reading) {
1907
1920
  * @param {boolean} il
1908
1921
  * @param {string} tzid
1909
1922
  * @param {string} mainUrl
1923
+ * @param {string} utmSource
1924
+ * @param {string} utmMedium
1910
1925
  * @return {string[]}
1911
1926
  */
1912
1927
 
1913
- function getLinkAndGuid(ev, il, tzid, mainUrl) {
1928
+ function getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium) {
1914
1929
  let link;
1915
1930
  let guid;
1916
1931
  const dt = ev.eventTime || ev.getDate().greg();
@@ -1922,11 +1937,11 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
1922
1937
  const url0 = ev.url();
1923
1938
 
1924
1939
  if (url0) {
1925
- link = appendIsraelAndTracking(url0, il, 'shabbat1c', 'rss').replace(/&/g, '&amp;');
1940
+ link = appendIsraelAndTracking(url0, il, utmSource, utmMedium).replace(/&/g, '&amp;');
1926
1941
  guid = "".concat(url0, "#").concat(anchor);
1927
1942
  } else {
1928
1943
  const url1 = "".concat(mainUrl, "&dt=").concat(dtStr);
1929
- const url = appendIsraelAndTracking(url1, il, 'shabbat1c', 'rss').replace(/&/g, '&amp;');
1944
+ const url = appendIsraelAndTracking(url1, il, utmSource, utmMedium).replace(/&/g, '&amp;');
1930
1945
  guid = url1.replace(/&/g, '&amp;') + "#".concat(anchor);
1931
1946
  link = "".concat(url, "#").concat(anchor);
1932
1947
  }
@@ -1948,20 +1963,55 @@ function eventsToRss(events, location, mainUrl, selfUrl) {
1948
1963
  let lang = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'en-US';
1949
1964
  let evPubDate = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
1950
1965
  const cityDescr = location.getName();
1951
- const thisYear = new Date().getFullYear();
1952
- const title = core.Locale.gettext('Shabbat') + ' Times for ' + cityDescr;
1953
- const lastBuildDate = new Date().toUTCString();
1954
- const dayFormat = new Intl.DateTimeFormat('en-US', {
1966
+ const options = {
1967
+ location,
1968
+ mainUrl,
1969
+ selfUrl,
1970
+ lang,
1971
+ evPubDate,
1972
+ title: core.Locale.gettext('Shabbat') + " Times for ".concat(cityDescr),
1973
+ description: "Weekly Shabbat candle lighting times for ".concat(cityDescr),
1974
+ utmSource: 'shabbat1c',
1975
+ utmMedium: 'rss'
1976
+ };
1977
+ return eventsToRss2(events, options);
1978
+ }
1979
+ const localeToLg = {
1980
+ 's': 'en',
1981
+ 'a': 'en',
1982
+ 'he-x-NoNikud': 'he',
1983
+ 'h': 'he',
1984
+ 'ah': 'en',
1985
+ 'sh': 'en'
1986
+ };
1987
+ /**
1988
+ * @param {Event[]} events
1989
+ * @param {HebrewCalendar.Options} options
1990
+ * @return {string}
1991
+ */
1992
+
1993
+ function eventsToRss2(events, options) {
1994
+ options.dayFormat = new Intl.DateTimeFormat('en-US', {
1955
1995
  weekday: 'long',
1956
1996
  day: '2-digit',
1957
1997
  month: 'long',
1958
1998
  year: 'numeric'
1959
1999
  });
1960
- const mainUrlEsc = appendIsraelAndTracking(mainUrl, location.getIsrael(), 'shabbat1c', 'rss').replace(/&/g, '&amp;');
1961
- selfUrl = selfUrl.replace(/&/g, '&amp;');
1962
- 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");
2000
+ const location = options.location;
2001
+ const mainUrl = options.mainUrl;
2002
+ const buildDate = options.buildDate = options.buildDate || new Date();
2003
+ const thisYear = buildDate.getFullYear();
2004
+ const lastBuildDate = options.lastBuildDate = buildDate.toUTCString();
2005
+ const title = options.title || getCalendarTitle(events, options);
2006
+ const description = options.description || title;
2007
+ const utmSource = options.utmSource || 'shabbat1c';
2008
+ const utmMedium = options.utmMedium || 'rss';
2009
+ const mainUrlEsc = appendIsraelAndTracking(mainUrl, location && location.getIsrael(), utmSource, utmMedium, options.utmCampaign).replace(/&/g, '&amp;');
2010
+ const selfUrlEsc = options.selfUrl.replace(/&/g, '&amp;');
2011
+ const lang = options.lang || localeToLg[options.locale] || options.locale || 'en-US';
2012
+ 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(description, "</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");
1963
2013
  events.forEach(ev => {
1964
- str += eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl);
2014
+ str += eventToRssItem2(ev, options);
1965
2015
  });
1966
2016
  str += '</channel>\n</rss>\n';
1967
2017
  return str;
@@ -1988,6 +2038,16 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
1988
2038
 
1989
2039
  return lastBuildDate;
1990
2040
  }
2041
+ /**
2042
+ * @param {Event} ev
2043
+ * @param {HebrewCalendar.Options} options
2044
+ * @return {string}
2045
+ */
2046
+
2047
+
2048
+ function eventToRssItem2(ev, options) {
2049
+ return eventToRssItem(ev, options.evPubDate, options.lastBuildDate, options.dayFormat, options.location, options.mainUrl, options);
2050
+ }
1991
2051
  /**
1992
2052
  * @param {Event} ev
1993
2053
  * @param {boolean} evPubDate
@@ -1995,17 +2055,19 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
1995
2055
  * @param {Intl.DateTimeFormat} dayFormat
1996
2056
  * @param {Location} location
1997
2057
  * @param {string} mainUrl
2058
+ * @param {HebrewCalendar.Options} [options]
1998
2059
  * @return {string}
1999
2060
  */
2000
2061
 
2001
-
2002
- function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl) {
2062
+ function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl, options) {
2003
2063
  let subj = ev.render();
2004
2064
  const evDate = ev.getDate().greg();
2005
2065
  const pubDate = getPubDate(ev, evPubDate, evDate, lastBuildDate);
2006
2066
  const il = location ? location.getIsrael() : false;
2007
2067
  const tzid = location ? location.getTzid() : 'UTC';
2008
- const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl);
2068
+ const utmSource = options && options.utmSource || 'shabbat1c';
2069
+ const utmMedium = options && options.utmMedium || 'rss';
2070
+ const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium);
2009
2071
  const link = linkGuid[0];
2010
2072
  const guid = linkGuid[1];
2011
2073
  const categories = getEventCategories(ev);
@@ -2094,9 +2156,11 @@ exports.eventToClassicApiObject = eventToClassicApiObject;
2094
2156
  exports.eventToCsv = eventToCsv;
2095
2157
  exports.eventToFullCalendar = eventToFullCalendar;
2096
2158
  exports.eventToRssItem = eventToRssItem;
2159
+ exports.eventToRssItem2 = eventToRssItem2;
2097
2160
  exports.eventsToClassicApi = eventsToClassicApi;
2098
2161
  exports.eventsToCsv = eventsToCsv;
2099
2162
  exports.eventsToRss = eventsToRss;
2163
+ exports.eventsToRss2 = eventsToRss2;
2100
2164
  exports.getCalendarTitle = getCalendarTitle;
2101
2165
  exports.getDownloadFilename = getDownloadFilename;
2102
2166
  exports.getEventCategories = getEventCategories;
@@ -1,2 +1,2 @@
1
- /*! @hebcal/rest-api v3.8.7 */
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,v=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},S=Function.prototype,w=S.bind,A=S.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,ve={exports:{}},Se=s,we=Object.defineProperty,Ae=function(e,t){try{we(Se,e,{value:t,configurable:!0,writable:!0})}catch(a){Se[e]=t}return t},He=Ae,Te="__core-js_shared__",Ce=s[Te]||He(Te,{}),Ie=Ce;(ve.exports=function(e,t){return Ie[e]||(Ie[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.19.1",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=ve.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=v,gt=G,bt=rt,yt=Be,pt=lt,vt=Object.getOwnPropertyDescriptor;h.f=ut?vt:function(e,t){if(e=gt(e),t=bt(t),pt)try{return vt(e,t)}catch(e){}if(yt(e,t))return mt(!dt(ft.f,e,t),e[t])};var St={},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;St.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=St,Dt=v,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=ve.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,va=ba&&Object.getOwnPropertyDescriptor,Sa=ya(pa,"name"),wa=Sa&&"something"===function(){}.name,Aa=Sa&&(!ba||ba&&va(pa,"name").configurable),Ha=s,Ta=j,Ca=Be,Ia=Ft,Ra=Ae,Oa=_t,Ea={EXISTS:Sa,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=St,gn=c,bn=j,yn=/#|\.prototype\./,pn=function(e,t){var a=Sn[vn(e)];return a==An||a!=wn&&(bn(t)?gn(t):!!t)},vn=pn.normalize=function(e){return String(e).replace(yn,".").toLowerCase()},Sn=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,Yn=Ct,_n={},zn=c,Un=s.RegExp;_n.UNSUPPORTED_Y=zn((function(){var e=Un("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),_n.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=St,$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,vr=s.RegExp,Sr=pr((function(){var e=vr("(?<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=Yn(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=_n,Ir=ve.exports,Rr=mr,Or=ga.get,Er=yr,Mr=Sr,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 Yr={"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 _r(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=Yr[e.getDesc()]||Yr[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):"")}function Qr(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 Xr='"Subject","Start Date","Start Time","End Date","End Time","All day event","Description","Show time as","Location"',eo={dafyomi:"Daf Yomi",hebdate:"Hebrew Date",holiday:"Jewish Holidays",mevarchim:null,molad:null,omer:null,parashat:"Torah Reading",roshchodesh:"Jewish Holidays",user:"Personal"};function to(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=Qr(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=eo[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(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 ao={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 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=Qr(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=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||Yr[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=_r(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||Yr[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=qr,e.countryNames=ao,e.eventToClassicApiObject=no,e.eventToCsv=to,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:Qr(e)?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||Yr[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:ao[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[Xr].concat(e.map((e=>to(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+="_"+_r(e.location.zip||e.location.asciiname||e.location.getShortName()).replace(/[-]/g,"_")}return t},e.getEventCategories=Jr,e.getHolidayDescription=Wr,e.holidayDescription=Yr,e.makeAnchor=_r,e.makeTorahMemoText=$r,e.pad2=zr,e.pad4=Ur,e.renderTitleWithoutTime=function(e){return void 0===e.eventTime?e.render():e.renderBrief()},e.shouldRenderBrief=Qr,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.2 */
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,T=w&&w.bind(A),H=w?function(e){return e&&T(A,e)}:function(e){return e&&function(){return A.apply(e,arguments)}},C=H,I=C({}.toString),R=C("".slice),O=function(e){return R(I(e),8,-1)},M=H,E=c,D=O,B=s.Object,P=M("".split),F=E((function(){return!B("z").propertyIsEnumerable(0)}))?function(e){return"String"==D(e)?P(e,""):B(e)}:B,k=s.TypeError,N=function(e){if(null==e)throw k("Can't call method on "+e);return e},x=F,L=N,G=function(e){return x(L(e))},j=function(e){return"function"==typeof e},Y=j,_=function(e){return"object"==typeof e?null!==e:Y(e)},U=s,z=j,K=function(e){return z(e)?e:void 0},J=function(e,t){return arguments.length<2?K(U[e]):U[e]&&U[e][t]},Z=H({}.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},Te=Ae,He="__core-js_shared__",Ce=s[He]||Te(He,{}),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,Me=function(e){return Oe(Re(e))},Ee=H({}.hasOwnProperty),De=Object.hasOwn||function(e,t){return Ee(Me(e),t)},Be=H,Pe=0,Fe=Math.random(),ke=Be(1..toString),Ne=function(e){return"Symbol("+(void 0===e?"":e)+")_"+ke(++Pe+Fe,36)},xe=s,Le=Se.exports,Ge=De,je=Ne,Ye=ae,_e=ne,Ue=Le("wks"),ze=xe.Symbol,Ke=ze&&ze.for,Je=_e?ze:ze&&ze.withoutSetter||je,Ze=function(e){if(!Ge(Ue,e)||!Ye&&"string"!=typeof Ue[e]){var t="Symbol."+e;Ye&&Ge(ze,e)?Ue[e]=ze[e]:Ue[e]=_e&&Ke?Ke(t):Je(t)}return Ue[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=De,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=_,Tt=wt.String,Ht=wt.TypeError,Ct=function(e){if(At(e))return e;throw Ht(Tt(e)+" is not an object")},It=l,Rt=lt,Ot=Ct,Mt=rt,Et=s.TypeError,Dt=Object.defineProperty;vt.f=It?Dt:function(e,t,a){if(Ot(e),t=Mt(t),Ot(a),Rt)try{return Dt(e,t,a)}catch(e){}if("get"in a||"set"in a)throw Et("Accessors not supported");return"value"in a&&(e[t]=a.value),e};var Bt=vt,Pt=S,Ft=l?function(e,t,a){return Bt.f(e,t,Pt(1,a))}:function(e,t,a){return e[t]=a,e},kt={exports:{}},Nt=j,xt=Ce,Lt=H(Function.toString);Nt(xt.inspectSource)||(xt.inspectSource=function(e){return Lt(e)});var Gt,jt,Yt,_t=xt.inspectSource,Ut=j,zt=_t,Kt=s.WeakMap,Jt=Ut(Kt)&&/native code/.test(zt(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=H,ta=_,aa=Ft,na=De,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=De,pa=Function.prototype,Sa=ba&&Object.getOwnPropertyDescriptor,va=ya(pa,"name"),wa=va&&"something"===function(){}.name,Aa=va&&(!ba||ba&&Sa(pa,"name").configurable),Ta=s,Ha=j,Ca=De,Ia=Ft,Ra=Ae,Oa=_t,Ma={EXISTS:va,PROPER:wa,CONFIGURABLE:Aa}.CONFIGURABLE,Ea=ga.get,Da=ga.enforce,Ba=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;Ha(a)&&("Symbol("===String(h).slice(0,7)&&(h="["+String(h).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),(!Ca(a,"name")||Ma&&a.name!==h)&&Ia(a,"name",h),(r=Da(a)).source||(r.source=Ba.join("string"==typeof h?h:""))),e!==Ta?(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 Ha(this)&&Ea(this).source||Oa(this)}));var Pa={},Fa=Math.ceil,ka=Math.floor,Na=function(e){var t=+e;return t!=t||0===t?0:(t>0?ka:Fa)(t)},xa=Na,La=Math.max,Ga=Math.min,ja=Na,Ya=Math.min,_a=function(e){return e>0?Ya(ja(e),9007199254740991):0},Ua=G,za=function(e,t){var a=xa(e);return a<0?La(a+t,0):Ga(a,t)},Ka=function(e){return _a(e.length)},Ja=function(e){return function(t,a,n){var r,o=Ua(t),i=Ka(o),s=za(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=De,Va=G,$a=Za.indexOf,qa=qt,Qa=H([].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");Pa.f=Object.getOwnPropertyNames||function(e){return tn(e,an)};var nn={};nn.f=Object.getOwnPropertySymbols;var rn=J,on=Pa,sn=nn,hn=Ct,cn=H([].concat),ln=rn("Reflect","ownKeys")||function(e){var t=on.f(hn(e)),a=sn.f;return a?cn(t,a(e)):t},un=De,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",Tn=pn,Hn=s,Cn=h.f,In=Ft,Rn=kt.exports,On=Ae,Mn=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))}},En=Tn,Dn={};Dn[Ze("toStringTag")]="z";var Bn,Pn=s,Fn="[object z]"===String(Dn),kn=j,Nn=O,xn=Ze("toStringTag"),Ln=Pn.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=Ln(e),xn))?a:Gn?Nn(t):"Object"==(n=Nn(t))&&kn(t.callee)?"Arguments":n},Yn=s.String,_n=Ct,Un=c,zn=s.RegExp,Kn=Un((function(){var e=zn("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),Jn=Kn||Un((function(){return!zn("a","y").sticky})),Zn={BROKEN_CARET:Kn||Un((function(){var e=zn("^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{Bn=new ActiveXObject("htmlfile")}catch(e){}var e,t;fr="undefined"!=typeof document?document.domain&&Bn?dr(Bn):((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(Bn);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")})),Tr=d,Hr=H,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,Mr=br,Er=ga.get,Dr=Sr,Br=Ar,Pr=Or("native-string-replace",String.prototype.replace),Fr=RegExp.prototype.exec,kr=Fr,Nr=Hr("".charAt),xr=Hr("".indexOf),Lr=Hr("".replace),Gr=Hr("".slice),jr=(gr=/b*/g,Tr(Fr,mr=/a/,"a"),Tr(Fr,gr,"a"),0!==mr.lastIndex||0!==gr.lastIndex),Yr=Rr.BROKEN_CARET,_r=void 0!==/()??/.exec("")[1];(jr||_r||Yr||Dr||Br)&&(kr=function(e){var t,a,n,r,o,i,s,h=this,c=Er(h),l=Cr(e),u=c.raw;if(u)return u.lastIndex=h.lastIndex,t=Tr(kr,u,l),h.lastIndex=u.lastIndex,t;var d=c.groups,f=Yr&&h.sticky,m=Tr(Ir,h),g=h.source,b=0,y=l;if(f&&(m=Lr(m,"y",""),-1===xr(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=Tr(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&&Tr(Pr,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=Mr(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?Hn:c?Hn[s]||On(s,{}):(Hn[s]||{}).prototype)for(n in t){if(o=t[n],r=e.noTargetGet?(i=Cn(a,n))&&i.value:a[n],!En(h?n:s+(c?".":"#")+n,e.forced)&&void 0!==r){if(typeof o==typeof r)continue;Mn(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 Ur={"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 zr(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=Ur[e.getDesc()]||Ur[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||Ur[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}const ho={s:"en",a:"en","he-x-NoNikud":"he",h:"he",ah:"en",sh:"en"};function co(e,t){t.dayFormat=new Intl.DateTimeFormat("en-US",{weekday:"long",day:"2-digit",month:"long",year:"numeric"});const a=t.location,n=t.mainUrl,r=t.buildDate=t.buildDate||new Date,o=r.getFullYear(),i=t.lastBuildDate=r.toUTCString(),s=t.title||Vr(e,t),h=t.description||s,c=t.utmSource||"shabbat1c",l=t.utmMedium||"rss",u=Xr(n,a&&a.getIsrael(),c,l,t.utmCampaign).replace(/&/g,"&amp;"),d=t.selfUrl.replace(/&/g,"&amp;"),f=t.lang||ho[t.locale]||t.locale||"en-US";let m='<?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(s,"</title>\n<link>").concat(u,'</link>\n<atom:link href="').concat(d,'" rel="self" type="application/rss+xml" />\n<description>').concat(h,"</description>\n<language>").concat(f,"</language>\n<copyright>Copyright (c) ").concat(o," Michael J. Radwin. All rights reserved.</copyright>\n<lastBuildDate>").concat(i,"</lastBuildDate>\n");return e.forEach((e=>{m+=lo(e,t)})),m+="</channel>\n</rss>\n",m}function lo(e,t){return uo(e,t.evPubDate,t.lastBuildDate,t.dayFormat,t.location,t.mainUrl,t)}function uo(e,a,n,r,o,i,s){let h=e.render();const c=e.getDate().greg(),l=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,c,n),u=!!o&&o.getIsrael(),d=function(e,a,n,r,o,i){let s,h;const c=e.eventTime||e.getDate().greg(),l=t.Zmanim.formatISOWithTimeZone(n,c),u=l.substring(0,l.indexOf("T")),d=u.replace(/-/g,""),f=zr(e.getDesc()),m="".concat(d,"-").concat(f),g=e.url();if(g)s=Xr(g,a,o,i).replace(/&/g,"&amp;"),h="".concat(g,"#").concat(m);else{const e="".concat(r,"&dt=").concat(u),t=Xr(e,a,o,i).replace(/&/g,"&amp;");h=e.replace(/&/g,"&amp;")+"#".concat(m),s="".concat(t,"#").concat(m)}return[s,h]}(e,u,o?o.getTzid():"UTC",i,s&&s.utmSource||"shabbat1c",s&&s.utmMedium||"rss"),f=d[0],m=d[1],g=Wr(e)[0],b=e.getDesc();let y;if("Havdalah"===b||"Candle lighting"===b){const a=h.indexOf(": ");if(-1!=a){const n={location:o,il:u,locale:t.Locale.getLocaleName()},r=t.HebrewCalendar.reformatTimeStr(e.eventTimeStr,"pm",n);h=h.substring(0,a)+": "+r}}else y=e.getFlags()&t.flags.PARSHA_HASHAVUA?Qr(e,u):e.memo||Ur[e.basename()];const p=y||r.format(c),S="candles"==g?"<geo:lat>".concat(o.getLatitude(),"</geo:lat>\n<geo:long>").concat(o.getLongitude(),"</geo:long>\n"):"";return"<item>\n<title>".concat(h,"</title>\n<link>").concat(f,'</link>\n<guid isPermaLink="false">').concat(m,"</guid>\n<description>").concat(p,"</description>\n<category>").concat(g,"</category>\n<pubDate>").concat(l,"</pubDate>\n").concat(S,"</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||Ur[e.basename()];a?s.description=a:void 0!==e.linkedEvent&&(s.description=e.linkedEvent.render())}return s},e.eventToRssItem=uo,e.eventToRssItem2=lo,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 co(e,h)},e.eventsToRss2=co,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+="_"+zr(e.location.zip||e.location.asciiname||e.location.getShortName()).replace(/[-]/g,"_")}return t},e.getEventCategories=Wr,e.getHolidayDescription=$r,e.holidayDescription=Ur,e.makeAnchor=zr,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.7 */
1
+ /*! @hebcal/rest-api v3.10.2 */
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 {
@@ -654,10 +658,12 @@ function formatLeyningResult(reading) {
654
658
  * @param {boolean} il
655
659
  * @param {string} tzid
656
660
  * @param {string} mainUrl
661
+ * @param {string} utmSource
662
+ * @param {string} utmMedium
657
663
  * @return {string[]}
658
664
  */
659
665
 
660
- function getLinkAndGuid(ev, il, tzid, mainUrl) {
666
+ function getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium) {
661
667
  let link;
662
668
  let guid;
663
669
  const dt = ev.eventTime || ev.getDate().greg();
@@ -669,11 +675,11 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
669
675
  const url0 = ev.url();
670
676
 
671
677
  if (url0) {
672
- link = appendIsraelAndTracking(url0, il, 'shabbat1c', 'rss').replace(/&/g, '&amp;');
678
+ link = appendIsraelAndTracking(url0, il, utmSource, utmMedium).replace(/&/g, '&amp;');
673
679
  guid = `${url0}#${anchor}`;
674
680
  } else {
675
681
  const url1 = `${mainUrl}&dt=${dtStr}`;
676
- const url = appendIsraelAndTracking(url1, il, 'shabbat1c', 'rss').replace(/&/g, '&amp;');
682
+ const url = appendIsraelAndTracking(url1, il, utmSource, utmMedium).replace(/&/g, '&amp;');
677
683
  guid = url1.replace(/&/g, '&amp;') + `#${anchor}`;
678
684
  link = `${url}#${anchor}`;
679
685
  }
@@ -693,30 +699,65 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
693
699
 
694
700
  function eventsToRss(events, location, mainUrl, selfUrl, lang = 'en-US', evPubDate = true) {
695
701
  const cityDescr = location.getName();
696
- const thisYear = new Date().getFullYear();
697
- const title = core.Locale.gettext('Shabbat') + ' Times for ' + cityDescr;
698
- const lastBuildDate = new Date().toUTCString();
699
- const dayFormat = new Intl.DateTimeFormat('en-US', {
702
+ const options = {
703
+ location,
704
+ mainUrl,
705
+ selfUrl,
706
+ lang,
707
+ evPubDate,
708
+ title: core.Locale.gettext('Shabbat') + ` Times for ${cityDescr}`,
709
+ description: `Weekly Shabbat candle lighting times for ${cityDescr}`,
710
+ utmSource: 'shabbat1c',
711
+ utmMedium: 'rss'
712
+ };
713
+ return eventsToRss2(events, options);
714
+ }
715
+ const localeToLg = {
716
+ 's': 'en',
717
+ 'a': 'en',
718
+ 'he-x-NoNikud': 'he',
719
+ 'h': 'he',
720
+ 'ah': 'en',
721
+ 'sh': 'en'
722
+ };
723
+ /**
724
+ * @param {Event[]} events
725
+ * @param {HebrewCalendar.Options} options
726
+ * @return {string}
727
+ */
728
+
729
+ function eventsToRss2(events, options) {
730
+ options.dayFormat = new Intl.DateTimeFormat('en-US', {
700
731
  weekday: 'long',
701
732
  day: '2-digit',
702
733
  month: 'long',
703
734
  year: 'numeric'
704
735
  });
705
- const mainUrlEsc = appendIsraelAndTracking(mainUrl, location.getIsrael(), 'shabbat1c', 'rss').replace(/&/g, '&amp;');
706
- selfUrl = selfUrl.replace(/&/g, '&amp;');
736
+ const location = options.location;
737
+ const mainUrl = options.mainUrl;
738
+ const buildDate = options.buildDate = options.buildDate || new Date();
739
+ const thisYear = buildDate.getFullYear();
740
+ const lastBuildDate = options.lastBuildDate = buildDate.toUTCString();
741
+ const title = options.title || getCalendarTitle(events, options);
742
+ const description = options.description || title;
743
+ const utmSource = options.utmSource || 'shabbat1c';
744
+ const utmMedium = options.utmMedium || 'rss';
745
+ const mainUrlEsc = appendIsraelAndTracking(mainUrl, location && location.getIsrael(), utmSource, utmMedium, options.utmCampaign).replace(/&/g, '&amp;');
746
+ const selfUrlEsc = options.selfUrl.replace(/&/g, '&amp;');
747
+ const lang = options.lang || localeToLg[options.locale] || options.locale || 'en-US';
707
748
  let str = `<?xml version="1.0" encoding="UTF-8"?>
708
749
  <rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom">
709
750
  <channel>
710
751
  <title>${title}</title>
711
752
  <link>${mainUrlEsc}</link>
712
- <atom:link href="${selfUrl}" rel="self" type="application/rss+xml" />
713
- <description>Weekly Shabbat candle lighting times for ${cityDescr}</description>
753
+ <atom:link href="${selfUrlEsc}" rel="self" type="application/rss+xml" />
754
+ <description>${description}</description>
714
755
  <language>${lang}</language>
715
756
  <copyright>Copyright (c) ${thisYear} Michael J. Radwin. All rights reserved.</copyright>
716
757
  <lastBuildDate>${lastBuildDate}</lastBuildDate>
717
758
  `;
718
759
  events.forEach(ev => {
719
- str += eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl);
760
+ str += eventToRssItem2(ev, options);
720
761
  });
721
762
  str += '</channel>\n</rss>\n';
722
763
  return str;
@@ -743,6 +784,16 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
743
784
 
744
785
  return lastBuildDate;
745
786
  }
787
+ /**
788
+ * @param {Event} ev
789
+ * @param {HebrewCalendar.Options} options
790
+ * @return {string}
791
+ */
792
+
793
+
794
+ function eventToRssItem2(ev, options) {
795
+ return eventToRssItem(ev, options.evPubDate, options.lastBuildDate, options.dayFormat, options.location, options.mainUrl, options);
796
+ }
746
797
  /**
747
798
  * @param {Event} ev
748
799
  * @param {boolean} evPubDate
@@ -750,17 +801,19 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
750
801
  * @param {Intl.DateTimeFormat} dayFormat
751
802
  * @param {Location} location
752
803
  * @param {string} mainUrl
804
+ * @param {HebrewCalendar.Options} [options]
753
805
  * @return {string}
754
806
  */
755
807
 
756
-
757
- function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl) {
808
+ function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl, options) {
758
809
  let subj = ev.render();
759
810
  const evDate = ev.getDate().greg();
760
811
  const pubDate = getPubDate(ev, evPubDate, evDate, lastBuildDate);
761
812
  const il = location ? location.getIsrael() : false;
762
813
  const tzid = location ? location.getTzid() : 'UTC';
763
- const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl);
814
+ const utmSource = options && options.utmSource || 'shabbat1c';
815
+ const utmMedium = options && options.utmMedium || 'rss';
816
+ const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium);
764
817
  const link = linkGuid[0];
765
818
  const guid = linkGuid[1];
766
819
  const categories = getEventCategories(ev);
@@ -857,9 +910,11 @@ exports.eventToClassicApiObject = eventToClassicApiObject;
857
910
  exports.eventToCsv = eventToCsv;
858
911
  exports.eventToFullCalendar = eventToFullCalendar;
859
912
  exports.eventToRssItem = eventToRssItem;
913
+ exports.eventToRssItem2 = eventToRssItem2;
860
914
  exports.eventsToClassicApi = eventsToClassicApi;
861
915
  exports.eventsToCsv = eventsToCsv;
862
916
  exports.eventsToRss = eventsToRss;
917
+ exports.eventsToRss2 = eventsToRss2;
863
918
  exports.getCalendarTitle = getCalendarTitle;
864
919
  exports.getDownloadFilename = getDownloadFilename;
865
920
  exports.getEventCategories = getEventCategories;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! @hebcal/rest-api v3.8.7 */
1
+ /*! @hebcal/rest-api v3.10.2 */
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 {
@@ -630,10 +634,12 @@ function formatLeyningResult(reading) {
630
634
  * @param {boolean} il
631
635
  * @param {string} tzid
632
636
  * @param {string} mainUrl
637
+ * @param {string} utmSource
638
+ * @param {string} utmMedium
633
639
  * @return {string[]}
634
640
  */
635
641
 
636
- function getLinkAndGuid(ev, il, tzid, mainUrl) {
642
+ function getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium) {
637
643
  let link;
638
644
  let guid;
639
645
  const dt = ev.eventTime || ev.getDate().greg();
@@ -645,11 +651,11 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
645
651
  const url0 = ev.url();
646
652
 
647
653
  if (url0) {
648
- link = appendIsraelAndTracking(url0, il, 'shabbat1c', 'rss').replace(/&/g, '&amp;');
654
+ link = appendIsraelAndTracking(url0, il, utmSource, utmMedium).replace(/&/g, '&amp;');
649
655
  guid = `${url0}#${anchor}`;
650
656
  } else {
651
657
  const url1 = `${mainUrl}&dt=${dtStr}`;
652
- const url = appendIsraelAndTracking(url1, il, 'shabbat1c', 'rss').replace(/&/g, '&amp;');
658
+ const url = appendIsraelAndTracking(url1, il, utmSource, utmMedium).replace(/&/g, '&amp;');
653
659
  guid = url1.replace(/&/g, '&amp;') + `#${anchor}`;
654
660
  link = `${url}#${anchor}`;
655
661
  }
@@ -669,30 +675,65 @@ function getLinkAndGuid(ev, il, tzid, mainUrl) {
669
675
 
670
676
  function eventsToRss(events, location, mainUrl, selfUrl, lang = 'en-US', evPubDate = true) {
671
677
  const cityDescr = location.getName();
672
- const thisYear = new Date().getFullYear();
673
- const title = Locale.gettext('Shabbat') + ' Times for ' + cityDescr;
674
- const lastBuildDate = new Date().toUTCString();
675
- const dayFormat = new Intl.DateTimeFormat('en-US', {
678
+ const options = {
679
+ location,
680
+ mainUrl,
681
+ selfUrl,
682
+ lang,
683
+ evPubDate,
684
+ title: Locale.gettext('Shabbat') + ` Times for ${cityDescr}`,
685
+ description: `Weekly Shabbat candle lighting times for ${cityDescr}`,
686
+ utmSource: 'shabbat1c',
687
+ utmMedium: 'rss'
688
+ };
689
+ return eventsToRss2(events, options);
690
+ }
691
+ const localeToLg = {
692
+ 's': 'en',
693
+ 'a': 'en',
694
+ 'he-x-NoNikud': 'he',
695
+ 'h': 'he',
696
+ 'ah': 'en',
697
+ 'sh': 'en'
698
+ };
699
+ /**
700
+ * @param {Event[]} events
701
+ * @param {HebrewCalendar.Options} options
702
+ * @return {string}
703
+ */
704
+
705
+ function eventsToRss2(events, options) {
706
+ options.dayFormat = new Intl.DateTimeFormat('en-US', {
676
707
  weekday: 'long',
677
708
  day: '2-digit',
678
709
  month: 'long',
679
710
  year: 'numeric'
680
711
  });
681
- const mainUrlEsc = appendIsraelAndTracking(mainUrl, location.getIsrael(), 'shabbat1c', 'rss').replace(/&/g, '&amp;');
682
- selfUrl = selfUrl.replace(/&/g, '&amp;');
712
+ const location = options.location;
713
+ const mainUrl = options.mainUrl;
714
+ const buildDate = options.buildDate = options.buildDate || new Date();
715
+ const thisYear = buildDate.getFullYear();
716
+ const lastBuildDate = options.lastBuildDate = buildDate.toUTCString();
717
+ const title = options.title || getCalendarTitle(events, options);
718
+ const description = options.description || title;
719
+ const utmSource = options.utmSource || 'shabbat1c';
720
+ const utmMedium = options.utmMedium || 'rss';
721
+ const mainUrlEsc = appendIsraelAndTracking(mainUrl, location && location.getIsrael(), utmSource, utmMedium, options.utmCampaign).replace(/&/g, '&amp;');
722
+ const selfUrlEsc = options.selfUrl.replace(/&/g, '&amp;');
723
+ const lang = options.lang || localeToLg[options.locale] || options.locale || 'en-US';
683
724
  let str = `<?xml version="1.0" encoding="UTF-8"?>
684
725
  <rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:atom="http://www.w3.org/2005/Atom">
685
726
  <channel>
686
727
  <title>${title}</title>
687
728
  <link>${mainUrlEsc}</link>
688
- <atom:link href="${selfUrl}" rel="self" type="application/rss+xml" />
689
- <description>Weekly Shabbat candle lighting times for ${cityDescr}</description>
729
+ <atom:link href="${selfUrlEsc}" rel="self" type="application/rss+xml" />
730
+ <description>${description}</description>
690
731
  <language>${lang}</language>
691
732
  <copyright>Copyright (c) ${thisYear} Michael J. Radwin. All rights reserved.</copyright>
692
733
  <lastBuildDate>${lastBuildDate}</lastBuildDate>
693
734
  `;
694
735
  events.forEach(ev => {
695
- str += eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl);
736
+ str += eventToRssItem2(ev, options);
696
737
  });
697
738
  str += '</channel>\n</rss>\n';
698
739
  return str;
@@ -719,6 +760,16 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
719
760
 
720
761
  return lastBuildDate;
721
762
  }
763
+ /**
764
+ * @param {Event} ev
765
+ * @param {HebrewCalendar.Options} options
766
+ * @return {string}
767
+ */
768
+
769
+
770
+ function eventToRssItem2(ev, options) {
771
+ return eventToRssItem(ev, options.evPubDate, options.lastBuildDate, options.dayFormat, options.location, options.mainUrl, options);
772
+ }
722
773
  /**
723
774
  * @param {Event} ev
724
775
  * @param {boolean} evPubDate
@@ -726,17 +777,19 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
726
777
  * @param {Intl.DateTimeFormat} dayFormat
727
778
  * @param {Location} location
728
779
  * @param {string} mainUrl
780
+ * @param {HebrewCalendar.Options} [options]
729
781
  * @return {string}
730
782
  */
731
783
 
732
-
733
- function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl) {
784
+ function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl, options) {
734
785
  let subj = ev.render();
735
786
  const evDate = ev.getDate().greg();
736
787
  const pubDate = getPubDate(ev, evPubDate, evDate, lastBuildDate);
737
788
  const il = location ? location.getIsrael() : false;
738
789
  const tzid = location ? location.getTzid() : 'UTC';
739
- const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl);
790
+ const utmSource = options && options.utmSource || 'shabbat1c';
791
+ const utmMedium = options && options.utmMedium || 'rss';
792
+ const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium);
740
793
  const link = linkGuid[0];
741
794
  const guid = linkGuid[1];
742
795
  const categories = getEventCategories(ev);
@@ -827,4 +880,4 @@ function eventToFullCalendar(ev, tzid, il) {
827
880
  return result;
828
881
  }
829
882
 
830
- export { appendIsraelAndTracking, countryNames, eventToClassicApiObject, eventToCsv, eventToFullCalendar, eventToRssItem, eventsToClassicApi, eventsToCsv, eventsToRss, getCalendarTitle, getDownloadFilename, getEventCategories, getHolidayDescription, holidayDescription, makeAnchor, makeTorahMemoText, pad2, pad4, renderTitleWithoutTime, shouldRenderBrief, timeZoneOffsetStr, toISOString, toISOStringWithTimezone };
883
+ export { appendIsraelAndTracking, countryNames, eventToClassicApiObject, eventToCsv, eventToFullCalendar, eventToRssItem, eventToRssItem2, 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.7",
3
+ "version": "3.10.2",
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.28.1",
25
- "@hebcal/leyning": "^4.10.2"
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.16.0",
55
- "@babel/preset-env": "^7.16.0",
56
- "@babel/register": "^7.16.0",
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.1",
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.59.0",
67
+ "rollup": "^2.61.1",
68
68
  "rollup-plugin-terser": "^7.0.2"
69
69
  }
70
70
  }
package/rest-api.d.ts CHANGED
@@ -39,7 +39,9 @@ declare module '@hebcal/rest-api' {
39
39
  * @param [evPubDate] - if true, use event time as pubDate (false uses lastBuildDate)
40
40
  */
41
41
  export function eventsToRss(events: Event[], location: Location, mainUrl: string, selfUrl: string, lang?: string, evPubDate?: boolean): string;
42
- export function eventToRssItem(ev: Event, evPubDate: boolean, lastBuildDate: string, dayFormat: Intl.DateTimeFormat, location: Location, baseUrl: string): string;
42
+ export function eventsToRss2(events: Event[], options: HebrewCalendar.Options): string;
43
+ export function eventToRssItem(ev: Event, evPubDate: boolean, lastBuildDate: string, dayFormat: Intl.DateTimeFormat, location: Location, baseUrl: string, options?: HebrewCalendar.Options): string;
44
+ export function eventToRssItem2(ev: Event, options: HebrewCalendar.Options): string;
43
45
  export function getDownloadFilename(options: HebrewCalendar.Options): string;
44
46
  export function pad2(number: number): string;
45
47
  export function pad4(number: number): string;