@hebcal/icalendar
Advanced tools
Comparing version 2.0.2 to 2.1.0
/// <reference types="node"/> | ||
import {hebcal, Event} from '@hebcal/core'; | ||
import {HebrewCalendar, Event} from '@hebcal/core'; | ||
import stream from 'stream'; | ||
declare module '@hebcal/icalendar' { | ||
@@ -7,3 +8,3 @@ /** | ||
*/ | ||
export function eventToIcal(e: Event, options: hebcal.HebcalOptions): string; | ||
export function eventToIcal(e: Event, options: HebrewCalendar.Options): string; | ||
/** | ||
@@ -13,55 +14,7 @@ * Renders an array of events as a full RFC 2445 iCalendar string | ||
*/ | ||
export function eventsToIcalendar(events: Event[], options: hebcal.HebcalOptions): string; | ||
export function eventsToIcalendarStream(events: Event[], options: hebcal.HebcalOptions): string; | ||
export function eventsToIcalendar(events: Event[], options: HebrewCalendar.Options): string; | ||
/** | ||
* Renders an Event as a string | ||
* Generates an RFC 2445 iCalendar stream from an array of events | ||
*/ | ||
export function eventToCsv(e: Event, options: hebcal.HebcalOptions): string; | ||
export function eventsToCsv(events: Event[], options: hebcal.HebcalOptions): string; | ||
/** | ||
* Formats a list events for the classic Hebcal.com JSON API response | ||
*/ | ||
export function eventsToClassicApi(events: Event[], options: hebcal.HebcalOptions): any; | ||
/** | ||
* Converts a Hebcal event to a classic Hebcal.com JSON API object | ||
* @param tzid - timeZone identifier | ||
* @param il - true if Israel | ||
*/ | ||
export function eventToClassicApiObject(ev: Event, tzid: string, il: boolean): any; | ||
/** | ||
* Converts a Hebcal event to a FullCalendar.io object | ||
* @param tzid - timeZone identifier | ||
* @param il - true if Israel | ||
*/ | ||
export function eventToFullCalendar(ev: Event, tzid: string, il: boolean): any; | ||
/** | ||
* @param [lang] - language such as 'he' (default 'en-US') | ||
* @param [evPubDate] - if true, use event time as pubDate (false uses lastBuildDate) | ||
*/ | ||
export function eventsToRss(events: Event[], location: Location, lang?: string, evPubDate?: boolean): string; | ||
export function eventToRssItem(ev: Event, evPubDate: boolean, lastBuildDate: string, dayFormat: Intl.DateTimeFormat, location: Location): string; | ||
export function getDownloadFilename(options: hebcal.HebcalOptions): string; | ||
export function pad2(number: number): string; | ||
/** | ||
* Get offset string (like "+05:00" or "-08:00") from tzid (like "Europe/Moscow") | ||
*/ | ||
export function timeZoneOffsetStr(tzid: string, date: Date): string; | ||
/** | ||
* Returns just the date portion as YYYY-MM-DD | ||
*/ | ||
export function toISOString(d: Date): string; | ||
/** | ||
* Returns a string like "2018-09-01T12:30:00-05:00'" | ||
* @param timeStr - must be formatted with only hours and minutes, like "17:12" | ||
* @param tzid - like "America/New_York" | ||
*/ | ||
export function toISOStringWithTimezone(date: Date, timeStr: string, tzid: string): string; | ||
/** | ||
* Returns a category and subcategory name | ||
*/ | ||
export function getEventCategories(ev: Event): string[]; | ||
/** | ||
* Generates a title like "Hebcal 2020 Israel" or "Hebcal May 1993 Providence" | ||
*/ | ||
export function getCalendarTitle(events: Event[], options: hebcal.HebcalOptions): string; | ||
export function eventsToIcalendarStream(readable: stream.Readable, events: Event[], options: HebrewCalendar.Options): string; | ||
} |
{ | ||
"name": "@hebcal/icalendar", | ||
"version": "2.0.2", | ||
"version": "2.1.0", | ||
"author": "Michael J. Radwin (https://github.com/mjradwin)", | ||
@@ -26,5 +26,6 @@ "keywords": [ | ||
"dependencies": { | ||
"@babel/polyfill": "^7.10.4", | ||
"@hebcal/core": "^2.0.1", | ||
"@hebcal/leyning": "^2.0.0" | ||
"@hebcal/leyning": "^2.0.0", | ||
"@hebcal/rest-api": "^2.1.0", | ||
"md5": "^2.2.1" | ||
}, | ||
@@ -60,2 +61,3 @@ "scripts": { | ||
"@babel/core": "^7.10.4", | ||
"@babel/polyfill": "^7.10.4", | ||
"@babel/preset-env": "^7.10.4", | ||
@@ -65,6 +67,4 @@ "@babel/register": "^7.10.4", | ||
"@rollup/plugin-commonjs": "^12.0.0", | ||
"@rollup/plugin-json": "^4.1.0", | ||
"@rollup/plugin-node-resolve": "^8.1.0", | ||
"ava": "^3.8.2", | ||
"core-js": "^3.6.5", | ||
"eslint": "^7.3.1", | ||
@@ -74,6 +74,4 @@ "eslint-config-google": "^0.14.0", | ||
"jsdoc-to-markdown": "^5.0.3", | ||
"md5": "^2.2.1", | ||
"rollup": "^1.29.0", | ||
"rollup-plugin-terser": "^6.1.0" | ||
"rollup": "^1.29.0" | ||
} | ||
} |
283
README.md
@@ -12,3 +12,3 @@ # hebcal-icalendar | ||
import {HebrewCalendar, Location} from '@hebcal/core'; | ||
import icalendar from '@hebcal/icalendar'; | ||
import {eventsToIcalendar} from '@hebcal/icalendar'; | ||
@@ -23,225 +23,24 @@ const options = { | ||
const events = HebrewCalendar.calendar(options); | ||
console.log(icalendar.eventsToIcalendar(ev, options)); | ||
console.log(await eventsToIcalendar(ev, options)); | ||
``` | ||
## Constants | ||
<dl> | ||
<dt><a href="#icalendar">icalendar</a></dt> | ||
<dd><p>Main interface to hebcal/icalendar</p> | ||
</dd> | ||
</dl> | ||
## Functions | ||
<dl> | ||
<dt><a href="#getFormatter">getFormatter(tzid)</a> ⇒ <code>Intl.DateTimeFormat</code></dt> | ||
<dd></dd> | ||
<dt><a href="#getPseudoISO">getPseudoISO(tzid, date)</a> ⇒ <code>string</code></dt> | ||
<dd></dd> | ||
<dt><a href="#getTimezoneOffset">getTimezoneOffset(tzid, date)</a> ⇒ <code>number</code></dt> | ||
<dd></dd> | ||
<dt><a href="#pad2">pad2(number)</a> ⇒ <code>string</code></dt> | ||
<dd></dd> | ||
<dt><a href="#timeZoneOffsetStr">timeZoneOffsetStr(tzid, date)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Get offset string (like "+05:00" or "-08:00") from tzid (like "Europe/Moscow")</p> | ||
<dt><a href="#eventToIcal">eventToIcal(e, options)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Transforms a single Event into a VEVENT string</p> | ||
</dd> | ||
<dt><a href="#toISOString">toISOString(d)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Returns just the date portion as YYYY-MM-DD</p> | ||
<dt><a href="#eventsToIcalendarStream">eventsToIcalendarStream(readable, events, options)</a> ⇒ <code>stream.Readable</code></dt> | ||
<dd><p>Generates an RFC 2445 iCalendar stream from an array of events</p> | ||
</dd> | ||
<dt><a href="#toISOStringWithTimezone">toISOStringWithTimezone(date, timeStr, tzid)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Returns a string like "2018-09-01T12:30:00-05:00'"</p> | ||
<dt><a href="#eventsToIcalendar">eventsToIcalendar(events, options)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Renders an array of events as a full RFC 2445 iCalendar string</p> | ||
</dd> | ||
<dt><a href="#getEventCategories">getEventCategories(ev)</a> ⇒ <code>Array.<string></code></dt> | ||
<dd><p>Returns a category and subcategory name</p> | ||
</dd> | ||
<dt><a href="#icalWriteLine">icalWriteLine(res, ...str)</a></dt> | ||
<dd></dd> | ||
<dt><a href="#formatYYYYMMDD">formatYYYYMMDD(d)</a> ⇒ <code>string</code></dt> | ||
<dd></dd> | ||
<dt><a href="#formatTime">formatTime(hour, min, sec)</a> ⇒ <code>string</code></dt> | ||
<dd></dd> | ||
<dt><a href="#makeDtstamp">makeDtstamp(dt)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Returns UTC string for iCalendar</p> | ||
</dd> | ||
<dt><a href="#icalWriteEvent">icalWriteEvent(res, e, dtstamp, options)</a></dt> | ||
<dd></dd> | ||
<dt><a href="#addOptional">addOptional(arr, key, val)</a></dt> | ||
<dd></dd> | ||
<dt><a href="#eventToIcal">eventToIcal(e, options)</a> ⇒ <code>string</code></dt> | ||
<dd></dd> | ||
<dt><a href="#exportHttpHeader">exportHttpHeader(res, mimeType, fileName)</a></dt> | ||
<dd></dd> | ||
<dt><a href="#icalWriteContents">icalWriteContents(res, events, options)</a></dt> | ||
<dd></dd> | ||
<dt><a href="#getDownloadFilename">getDownloadFilename(options)</a> ⇒ <code>string</code></dt> | ||
<dd></dd> | ||
<dt><a href="#eventToCsv">eventToCsv(e, options)</a> ⇒ <code>string</code></dt> | ||
<dd><p>Renders an Event as a string</p> | ||
</dd> | ||
<dt><a href="#csvWriteContents">csvWriteContents(res, events, options)</a></dt> | ||
<dd></dd> | ||
<dt><a href="#eventToFullCalendar">eventToFullCalendar(ev, tzid)</a> ⇒ <code>Object</code></dt> | ||
<dd><p>Converts a Hebcal event to a FullCalendar.io object</p> | ||
</dd> | ||
</dl> | ||
<a name="icalendar"></a> | ||
## icalendar | ||
Main interface to hebcal/icalendar | ||
**Kind**: global constant | ||
<a name="getFormatter"></a> | ||
## getFormatter(tzid) ⇒ <code>Intl.DateTimeFormat</code> | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| tzid | <code>string</code> | | ||
<a name="getPseudoISO"></a> | ||
## getPseudoISO(tzid, date) ⇒ <code>string</code> | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| tzid | <code>string</code> | | ||
| date | <code>Date</code> | | ||
<a name="getTimezoneOffset"></a> | ||
## getTimezoneOffset(tzid, date) ⇒ <code>number</code> | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| tzid | <code>string</code> | | ||
| date | <code>Date</code> | | ||
<a name="pad2"></a> | ||
## pad2(number) ⇒ <code>string</code> | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| number | <code>number</code> | | ||
<a name="timeZoneOffsetStr"></a> | ||
## timeZoneOffsetStr(tzid, date) ⇒ <code>string</code> | ||
Get offset string (like "+05:00" or "-08:00") from tzid (like "Europe/Moscow") | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| tzid | <code>string</code> | | ||
| date | <code>Date</code> | | ||
<a name="toISOString"></a> | ||
## toISOString(d) ⇒ <code>string</code> | ||
Returns just the date portion as YYYY-MM-DD | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| d | <code>Date</code> | | ||
<a name="toISOStringWithTimezone"></a> | ||
## toISOStringWithTimezone(date, timeStr, tzid) ⇒ <code>string</code> | ||
Returns a string like "2018-09-01T12:30:00-05:00'" | ||
**Kind**: global function | ||
| Param | Type | Description | | ||
| --- | --- | --- | | ||
| date | <code>Date</code> | | | ||
| timeStr | <code>string</code> | must be formatted with only hours and minutes, like "17:12" | | ||
| tzid | <code>string</code> | like "America/New_York" | | ||
<a name="getEventCategories"></a> | ||
## getEventCategories(ev) ⇒ <code>Array.<string></code> | ||
Returns a category and subcategory name | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| ev | <code>Event</code> | | ||
<a name="icalWriteLine"></a> | ||
## icalWriteLine(res, ...str) | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| res | <code>stream.Writable</code> | | ||
| ...str | <code>string</code> | | ||
<a name="formatYYYYMMDD"></a> | ||
## formatYYYYMMDD(d) ⇒ <code>string</code> | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| d | <code>Date</code> | | ||
<a name="formatTime"></a> | ||
## formatTime(hour, min, sec) ⇒ <code>string</code> | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| hour | <code>number</code> \| <code>string</code> | | ||
| min | <code>number</code> \| <code>string</code> | | ||
| sec | <code>number</code> \| <code>string</code> | | ||
<a name="makeDtstamp"></a> | ||
## makeDtstamp(dt) ⇒ <code>string</code> | ||
Returns UTC string for iCalendar | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| dt | <code>Date</code> | | ||
<a name="icalWriteEvent"></a> | ||
## icalWriteEvent(res, e, dtstamp, options) | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| res | <code>stream.Writable</code> | | ||
| e | <code>Event</code> | | ||
| dtstamp | <code>string</code> | | ||
| options | <code>hebcal.HebcalOptions</code> | | ||
<a name="addOptional"></a> | ||
## addOptional(arr, key, val) | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| arr | <code>Array.<string></code> | | ||
| key | <code>string</code> | | ||
| val | <code>string</code> | | ||
<a name="eventToIcal"></a> | ||
## eventToIcal(e, options) ⇒ <code>string</code> | ||
Transforms a single Event into a VEVENT string | ||
**Kind**: global function | ||
@@ -253,18 +52,9 @@ **Returns**: <code>string</code> - multi-line result, delimited by \r\n | ||
| e | <code>Event</code> | | ||
| options | <code>hebcal.HebcalOptions</code> | | ||
| options | <code>HebcalOptions</code> | | ||
<a name="exportHttpHeader"></a> | ||
<a name="eventsToIcalendarStream"></a> | ||
## exportHttpHeader(res, mimeType, fileName) | ||
**Kind**: global function | ||
## eventsToIcalendarStream(readable, events, options) ⇒ <code>stream.Readable</code> | ||
Generates an RFC 2445 iCalendar stream from an array of events | ||
| Param | Type | | ||
| --- | --- | | ||
| res | <code>stream.Writable</code> | | ||
| mimeType | <code>string</code> | | ||
| fileName | <code>string</code> | | ||
<a name="icalWriteContents"></a> | ||
## icalWriteContents(res, events, options) | ||
**Kind**: global function | ||
@@ -274,49 +64,18 @@ | ||
| --- | --- | | ||
| res | <code>stream.Writable</code> | | ||
| readable | <code>stream.Readable</code> | | ||
| events | <code>Array.<Event></code> | | ||
| options | <code>hebcal.HebcalOptions</code> | | ||
| options | <code>HebcalOptions</code> | | ||
<a name="getDownloadFilename"></a> | ||
<a name="eventsToIcalendar"></a> | ||
## getDownloadFilename(options) ⇒ <code>string</code> | ||
**Kind**: global function | ||
## eventsToIcalendar(events, options) ⇒ <code>string</code> | ||
Renders an array of events as a full RFC 2445 iCalendar string | ||
| Param | Type | | ||
| --- | --- | | ||
| options | <code>hebcal.HebcalOptions</code> | | ||
<a name="eventToCsv"></a> | ||
## eventToCsv(e, options) ⇒ <code>string</code> | ||
Renders an Event as a string | ||
**Kind**: global function | ||
**Returns**: <code>string</code> - multi-line result, delimited by \r\n | ||
| Param | Type | | ||
| --- | --- | | ||
| e | <code>Event</code> | | ||
| options | <code>hebcal.HebcalOptions</code> | | ||
<a name="csvWriteContents"></a> | ||
## csvWriteContents(res, events, options) | ||
**Kind**: global function | ||
| Param | Type | | ||
| --- | --- | | ||
| res | <code>stream.Writable</code> | | ||
| events | <code>Array.<Event></code> | | ||
| options | <code>hebcal.HebcalOptions</code> | | ||
| options | <code>HebcalOptions</code> | | ||
<a name="eventToFullCalendar"></a> | ||
## eventToFullCalendar(ev, tzid) ⇒ <code>Object</code> | ||
Converts a Hebcal event to a FullCalendar.io object | ||
**Kind**: global function | ||
| Param | Type | Description | | ||
| --- | --- | --- | | ||
| ev | <code>Event</code> | | | ||
| tzid | <code>string</code> | timeZone identifier | | ||
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
14
23
1
1
1
99667
4
5
2183
78
+ Added@hebcal/rest-api@^2.1.0
+ Addedmd5@^2.2.1
+ Added@hapi/bourne@2.1.0(transitive)
+ Added@hebcal/geo-sqlite@2.4.0(transitive)
+ Added@hebcal/leyning@3.5.0(transitive)
+ Added@hebcal/rest-api@2.8.1(transitive)
+ Addedansi-styles@3.2.14.3.0(transitive)
+ Addedargs@5.0.3(transitive)
+ Addedatomic-sleep@1.0.0(transitive)
+ Addedbase64-js@1.5.1(transitive)
+ Addedbetter-sqlite3@7.6.2(transitive)
+ Addedbindings@1.5.0(transitive)
+ Addedbl@4.1.0(transitive)
+ Addedbuffer@5.7.1(transitive)
+ Addedcamelcase@5.0.0(transitive)
+ Addedchalk@2.4.24.1.2(transitive)
+ Addedcharenc@0.0.2(transitive)
+ Addedchownr@1.1.4(transitive)
+ Addedcolor-convert@1.9.32.0.1(transitive)
+ Addedcolor-name@1.1.31.1.4(transitive)
+ Addedcrypt@0.0.2(transitive)
+ Addeddateformat@4.6.3(transitive)
+ Addeddecompress-response@6.0.0(transitive)
+ Addeddeep-extend@0.6.0(transitive)
+ Addeddetect-libc@2.0.3(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedexpand-template@2.0.3(transitive)
+ Addedfast-redact@3.5.0(transitive)
+ Addedfast-safe-stringify@2.1.1(transitive)
+ Addedfile-uri-to-path@1.0.0(transitive)
+ Addedflatstr@1.0.12(transitive)
+ Addedfs-constants@1.0.0(transitive)
+ Addedgithub-from-package@0.0.0(transitive)
+ Addedhas-flag@3.0.04.0.0(transitive)
+ Addedieee754@1.2.1(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedini@1.3.8(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedjmespath@0.15.0(transitive)
+ Addedjoycon@2.2.5(transitive)
+ Addedleven@2.1.0(transitive)
+ Addedmd5@2.3.0(transitive)
+ Addedmimic-response@3.1.0(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmkdirp-classic@0.5.3(transitive)
+ Addedmri@1.1.4(transitive)
+ Addednapi-build-utils@1.0.2(transitive)
+ Addednode-abi@3.68.0(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedpino@6.14.0(transitive)
+ Addedpino-pretty@4.8.0(transitive)
+ Addedpino-std-serializers@3.2.0(transitive)
+ Addedprebuild-install@7.1.2(transitive)
+ Addedprocess-warning@1.0.0(transitive)
+ Addedpump@3.0.2(transitive)
+ Addedquick-format-unescaped@4.0.4(transitive)
+ Addedrc@1.2.8(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedrfdc@1.4.1(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsemver@7.6.3(transitive)
+ Addedsimple-concat@1.0.1(transitive)
+ Addedsimple-get@4.0.1(transitive)
+ Addedsonic-boom@1.4.1(transitive)
+ Addedsplit2@3.2.2(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedstrip-json-comments@2.0.13.1.1(transitive)
+ Addedsupports-color@5.5.07.2.0(transitive)
+ Addedtar-fs@2.1.1(transitive)
+ Addedtar-stream@2.2.0(transitive)
+ Addedtunnel-agent@0.6.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedwrappy@1.0.2(transitive)
- Removed@babel/polyfill@^7.10.4
- Removed@babel/polyfill@7.12.1(transitive)
- Removedcore-js@2.6.12(transitive)
- Removedregenerator-runtime@0.13.11(transitive)